Talismans

Discussion in 'Archived: Plugin Requests' started by darkon12, Aug 27, 2014.

  1. Offline

    darkon12

    Suggested name: Talismans

    What I want: The idea is to add talismans (like those in D2). If player has one in his inventory, he gains buffs/debuffs.
    - it should be able to set drop rate from mobs (may be set for all mobs, or for each other separately),
    - they should consisct of unique, colored name and short lore,
    - it would be awesome to be able to made them via config file (set item ID to be seen, emerald for example, set name, lore, buffs/debuffs),
    - player can have up to 4 talismans in his inventory (to prevent OP),
    - buffs should not stack, neither should talismans,
    - buffs are status effects, active till



    Ideas for commands: /talisman give <talisman_name> - gives you specified talisman

    Ideas for permissions: talisman.give - permission for command

    When I'd like it by: asap
     
  2. Offline

    Marten Mooij

    darkon12 I like the idea, can you specify the buffs that are given and the names of the talisman(s)? I may take a look at this tonight.
    EDIT: I'll just make it configurable.
     
    gdude2002 likes this.
  3. Offline

    darkon12

    Marten Mooij
    Yeah, It would be really awesome if it were possible to create talismans in config file, using all available status effecs, set name and lore for them.
     
  4. Offline

    Marten Mooij

    darkon12 I am sorry I can no longer make this plugin high school is getting in the way and unfortunately that goes first. The plugin needs working on but is close to done I believe, for any developers that want to take over this project here is everything I have worked on in my free time:
    Main class:
    Code:java
    1. package me.MartenMooij.Talismans;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.Material;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.inventory.meta.ItemMeta;
    14. import org.bukkit.plugin.java.JavaPlugin;
    15.  
    16. public class Main extends JavaPlugin{
    17. public void onEnable(){
    18. Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.DARK_GREEN + "[Talismans] Is Now Enabled!");
    19.  
    20. this.getServer().getPluginManager().registerEvents(new Second(this), this);
    21. getConfig().options().copyDefaults(true);
    22. saveDefaultConfig();
    23. }
    24. public void onDisable(){
    25. Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.DARK_RED + "[Talismans] Is Now Disabled!");
    26. }
    27. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    28. if(label.equalsIgnoreCase("tm")){
    29. if(!(sender instanceof Player)){
    30. sender.sendMessage(ChatColor.DARK_RED + "[Talismans] Only players can perform this command.");
    31. return true;
    32. }
    33. if(args.length == 0){
    34. Player player = (Player) sender;
    35.  
    36. player.sendMessage(ChatColor.AQUA + "[" + ChatColor.DARK_AQUA + "Talismans" + ChatColor.AQUA + "] " + "Please specify a player to give a talisman to.");
    37. }else{
    38. Player target = Bukkit.getPlayerExact(args[0]);
    39. if(target == null){
    40.  
    41. Player player = (Player)sender;
    42.  
    43. player.sendMessage(ChatColor.AQUA + "[" + ChatColor.DARK_AQUA + "Talismans" + ChatColor.AQUA + "] " + "The player " + args[0] + " is not online.");
    44. }else{
    45. if(args.length == 1){
    46.  
    47. Player player = (Player)sender;
    48.  
    49. player.sendMessage(ChatColor.AQUA + "[" + ChatColor.DARK_AQUA + "Talismans" + ChatColor.AQUA + "] " + "Please specify a talisman type.");
    50. player.sendMessage(ChatColor.DARK_AQUA + "Available types: " + ChatColor.AQUA + this.getConfig().getString("talismanGiveName1") + " ");
    51. }else{
    52. if(args[1].equalsIgnoreCase(this.getConfig().getString("talismanGiveName1"))){
    53.  
    54. Player player = (Player)sender;
    55.  
    56. player.sendMessage(ChatColor.AQUA + "[" + ChatColor.DARK_AQUA + "Talismans" + ChatColor.AQUA + "] " + "Successfully gave " + args[0] + " a talisman.");
    57.  
    58. String message1 = getConfig().getString("talismanName1");
    59. String message2 = message1.replaceAll("&", "§");
    60.  
    61. String loreline1 = getConfig().getString("talismanLoreLineOne1");
    62. String loreline2 = message1.replaceAll("&", "§");
    63.  
    64. String itemStack1 = this.getConfig().getString("talismanItem1");
    65. String itemStack2 = itemStack1.toUpperCase();
    66.  
    67. ItemStack item1 = new ItemStack(Material.getMaterial(itemStack2));
    68. ItemMeta meta1 = item1.getItemMeta();
    69. meta1.setDisplayName(message2);
    70. List<String> lore1 = new ArrayList<String>();
    71. lore1.add(loreline2);
    72. meta1.setLore(lore1);
    73. item1.setItemMeta(meta1);
    74.  
    75. target.getInventory().addItem(item1);
    76. }
    77. }
    78. }
    79. }
    80. }
    81. return false;
    82. }
    83. }
    84.  

    Second class:
    Code:java
    1. package me.MartenMooij.Talismans;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5.  
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerMoveEvent;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.ItemMeta;
    13. import org.bukkit.potion.PotionEffect;
    14. import org.bukkit.potion.PotionEffectType;
    15.  
    16. public class Second implements Listener{
    17.  
    18. ArrayList<String> one = new ArrayList<String>();
    19.  
    20. Main main;
    21. public Second(Main main){
    22. this.main = main;
    23. }
    24. //onPlayerMove - 1
    25. @EventHandler
    26. public void onPlayerMove1(PlayerMoveEvent event){
    27. Player player = event.getPlayer();
    28.  
    29. String message1 = main.getConfig().getString("talismanName1");
    30. String message2 = message1.replaceAll("&", "§");
    31.  
    32. String loreline1 = main.getConfig().getString("talismanLoreLineOne1");
    33. String loreline2 = message1.replaceAll("&", "§");
    34.  
    35. String itemStack1 = main.getConfig().getString("talismanItem1");
    36. String itemStack2 = itemStack1.toUpperCase();
    37.  
    38. ItemStack item1 = new ItemStack(Material.getMaterial(itemStack2));
    39. ItemMeta meta1 = item1.getItemMeta();
    40. meta1.setDisplayName(message2);
    41. List<String> lore1 = new ArrayList<String>();
    42. lore1.add(loreline2);
    43. meta1.setLore(lore1);
    44. item1.setItemMeta(meta1);
    45.  
    46. //Doesn't contain item in inventory
    47. if(!(player.getInventory().contains(item1))){
    48. if(one.contains(player.getName())){
    49.  
    50. one.remove(player.getName());
    51.  
    52. player.removePotionEffect(PotionEffectType.getByName(main.getConfig().getString("talismanPotionType1")));
    53. }
    54. }
    55.  
    56. //Contains item in inventory
    57. if(player.getInventory().contains(item1)){
    58.  
    59. if(!(one.contains(player.getName()))){
    60. one.add(player.getName());
    61.  
    62. player.addPotionEffect(new PotionEffect(PotionEffectType.getByName(main.getConfig().getString("talismanPotionType1")), main.getConfig().getInt("talismanPotionDuration1"), main.getConfig().getInt("talismanPotionAmplifier1")));
    63. }
    64. }
    65. }
    66. }
    67.  
    68.  

    Config:
    Code:
    #The item name when typing /Tm <Player> <ItemName>.
    talismanGiveName1: Air
     
    #The name of the talisman. (WARNING: Do not remove the quotes)
    talismanName1: "&6Air"
     
    #The first lore line of the talisman. (WARNING: Do not remove the quotes)
    talismanLoreLineOne1: "&6This is an example lore."
     
    #The talisman item. (WARNING: Use a '_' for any spaces)
    talismanItem1: nether_star
     
    #The potion given when the talisman is in the players inventory.
    #WARNING Only you use following potions:
    #
    #ABSORPTION BLINDNESS CONFUSION DAMAGE_RESISTANCE FAST_DIGGING FIRE_RESISTANCE HARM HEAL
    #HEALTH_BOOST HUNGER INCREASE_DAMAGE INVISIBILITY JUMP NIGHT_VISION POISON REGENERATION SATURATION SLOW SLOW_DIGGING SPEED
    #WATER_BREATHING WEAKNESS WITHER
     
    talismanPotionType1: JUMP
     
    #The duration of the potion effect. (1 second = 20)
    talismanPotionDuration1: 100000
     
    #The potion Amplifier. (0 = I)
    talismanPotionAmplifier1: 0
    I am truly sorry that I cannot continue making this plugin for you. :(
    The plugin is usable but currently only supports the creation of one talisman.
    If you want to try it out here you go: https://www.dropbox.com/s/kqhlnsc289wb50m/Talismans.jar?dl=0
    The main command is: /Tm
     
  5. Offline

    darkon12

    Thanks for you help. I'd still be really happy if some1 take over and finish that plugin
     
  6. Offline

    littleprof123

    Ok if you would like, since I was doing your other plugin request, I could try to take this one over as well... I'm not sure yet, I'll tell you if I make up my mind (Everything in this is new to me o.o)
     
  7. Offline

    darkon12

    Thats sweeet!
     

Share This Page