diff --git a/pom.xml b/pom.xml index 671d32b..e207e93 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ smeths.and.rhetorical MedCraft - 1.3.5.3 + 1.3.5.4 MedCraft https://www.spigotmc.org/resources/bandagecraft.6760 diff --git a/src/main/java/me/smeths/and/rhetorical/Handlers/BandageHandler.java b/src/main/java/me/smeths/and/rhetorical/Handlers/BandageHandler.java index 6c01d7b..9db47fb 100644 --- a/src/main/java/me/smeths/and/rhetorical/Handlers/BandageHandler.java +++ b/src/main/java/me/smeths/and/rhetorical/Handlers/BandageHandler.java @@ -2,6 +2,7 @@ import me.smeths.and.rhetorical.ItemManager.ItemLoader; import me.smeths.and.rhetorical.MedCraft; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.attribute.Attribute; @@ -26,12 +27,12 @@ public BandageHandler(final Player p) { } bandagingPlayers.put(p, new BukkitRunnable() { - Location position = p.getLocation(); + final Location position = p.getLocation(); final int total = 60; int progress = 0; - int duration = 20 * MedCraft.getPlugin().getConfig().getInt("Bandage.Regen-Time"); - int amplifier = MedCraft.getPlugin().getConfig().getInt("Bandage.Regen-Amplifier"); - int multiplier = MedCraft.getPlugin().getConfig().getInt("Bandage.Warmup-Speed"); + final int duration = 20 * MedCraft.getPlugin().getConfig().getInt("Bandage.Regen-Time"); + final int amplifier = MedCraft.getPlugin().getConfig().getInt("Bandage.Regen-Amplifier"); + final int multiplier = MedCraft.getPlugin().getConfig().getInt("Bandage.Warmup-Speed"); public void cancel() { @@ -41,17 +42,23 @@ public void run() { boolean cancelled = p.getLocation().distance(this.position) > 0.75D; - if ((this.progress > 60) || (cancelled)) + if ((this.progress > total) || (cancelled)) { if (cancelled) { p.getInventory().addItem(ItemLoader.getBandageItem()); } BandageHandler.bandagingPlayers.remove(p); cancel(); - } else if (this.progress == 60) { - if (p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) + } else if (this.progress == total) { + if (MedCraft.getPlugin().getConfig().getBoolean("Bandage.PerformCMD") == true && MedCraft.getPlugin().getConfig().getBoolean("Bandage.ConsoleCMD") == true && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); - else { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), String.valueOf(MedCraft.getPlugin().getConfig().get("Bandage.CMD")).replace("[playername]", p.getName())); + } else if (MedCraft.getPlugin().getConfig().getBoolean("Bandage.PerformCMD") == true && MedCraft.getPlugin().getConfig().getBoolean("Bandage.ConsoleCMD") == false && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { + p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); + Bukkit.dispatchCommand(p.getPlayer(),String.valueOf(MedCraft.getPlugin().getConfig().get("Bandage.CMD")).replace("[playername]", p.getName())); + } else if (MedCraft.getPlugin().getConfig().getBoolean("Bandage.PerformCMD") == false && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { + p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); + } else { p.getInventory().addItem(ItemLoader.getBandageItem()); BandageHandler.bandagingPlayers.remove(p); cancel(); diff --git a/src/main/java/me/smeths/and/rhetorical/Handlers/MedKitHandler.java b/src/main/java/me/smeths/and/rhetorical/Handlers/MedKitHandler.java index f40a159..3defbd4 100644 --- a/src/main/java/me/smeths/and/rhetorical/Handlers/MedKitHandler.java +++ b/src/main/java/me/smeths/and/rhetorical/Handlers/MedKitHandler.java @@ -2,6 +2,7 @@ import me.smeths.and.rhetorical.ItemManager.ItemLoader; import me.smeths.and.rhetorical.MedCraft; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.attribute.Attribute; @@ -52,9 +53,15 @@ public void run() MedKitHandler.MedKitPlayers.remove(p); cancel(); } else if (this.progress == 60) { - if (p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) + if (MedCraft.getPlugin().getConfig().getBoolean("MedKit.PerformCMD") == true && MedCraft.getPlugin().getConfig().getBoolean("MedKit.ConsoleCMD") == true && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); - else { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), String.valueOf(MedCraft.getPlugin().getConfig().get("MedKit.CMD")).replace("[playername]", p.getName())); + } else if (MedCraft.getPlugin().getConfig().getBoolean("MedKit.PerformCMD") == true && MedCraft.getPlugin().getConfig().getBoolean("MedKit.ConsoleCMD") == false && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { + p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); + Bukkit.dispatchCommand(p.getPlayer(),String.valueOf(MedCraft.getPlugin().getConfig().get("MedKit.CMD")).replace("[playername]", p.getName())); + } else if (MedCraft.getPlugin().getConfig().getBoolean("MedKit.PerformCMD") == false && p.getHealth() < Objects.requireNonNull(p.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue()) { + p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, duration, amplifier)); + } else { p.getInventory().addItem(ItemLoader.getMedKitItem()); MedKitHandler.MedKitPlayers.remove(p); cancel(); diff --git a/src/main/java/me/smeths/and/rhetorical/ItemManager/ItemLoader.java b/src/main/java/me/smeths/and/rhetorical/ItemManager/ItemLoader.java index 8b46552..6177613 100644 --- a/src/main/java/me/smeths/and/rhetorical/ItemManager/ItemLoader.java +++ b/src/main/java/me/smeths/and/rhetorical/ItemManager/ItemLoader.java @@ -5,11 +5,16 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.NamespacedKey; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.Plugin; +import java.util.ArrayList; +import java.util.List; + public class ItemLoader { private Plugin medCraft = MedCraft.getPlugin(); private static ItemLoader instance; @@ -48,12 +53,16 @@ public static ItemStack getBandageItem() { } private void setupBandageItem() { + List Bandagelore = new ArrayList(); String BandageName = MedCraft.getPlugin().getConfig().getString("Bandage.Name"); bandageItem = new ItemStack(Material.getMaterial(MedCraft.getPlugin().getConfig().getString("Bandage.Material")), 1); ItemMeta BandageMeta = bandageItem.getItemMeta(); BandageMeta.setCustomModelData(medCraft.getConfig().getInt("Bandage.ModelData")); BandageMeta.setDisplayName(ChatColor.RESET + ChatColor.translateAlternateColorCodes('&',BandageName)); - this.bandageItem.setItemMeta(BandageMeta); + BandageMeta.addEnchant(Enchantment.DURABILITY,1,true); + BandageMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + Bandagelore.add(ChatColor.RESET + ChatColor.translateAlternateColorCodes('&',MedCraft.getPlugin().getConfig().getString("Bandage.Lore-1"))); + bandageItem.setItemMeta(BandageMeta); } private void setupCraftedBandageItem() { craftedbandageItem = new ItemStack(Material.getMaterial(MedCraft.getPlugin().getConfig().getString("Bandage.Material")), medCraft.getConfig().getInt("Bandage.Result-Amount")); @@ -75,11 +84,16 @@ private void setupBandageRecipe() { Bukkit.addRecipe(Bandagerecipe); } private void setupMedKitItem() { + List Medkitlore = new ArrayList(); String MedKitName = MedCraft.getPlugin().getConfig().getString("MedKit.Name"); MedKitItem = new ItemStack(Material.getMaterial(MedCraft.getPlugin().getConfig().getString("MedKit.Material")),1 ); ItemMeta MedKitMeta = MedKitItem.getItemMeta(); MedKitMeta.setCustomModelData(medCraft.getConfig().getInt("MedKit.ModelData")); MedKitMeta.setDisplayName(ChatColor.RESET + ChatColor.translateAlternateColorCodes('&',MedKitName)); + MedKitMeta.addEnchant(Enchantment.DURABILITY,1,true); + MedKitMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + Medkitlore.add(ChatColor.RESET + ChatColor.translateAlternateColorCodes('&',MedCraft.getPlugin().getConfig().getString("MedKit.Lore-1"))); + MedKitMeta.setLore(Medkitlore); MedKitItem.setItemMeta(MedKitMeta); } private void setupCraftedMedKitItem() { diff --git a/src/main/java/me/smeths/and/rhetorical/Listeners/MedCraftListeners.java b/src/main/java/me/smeths/and/rhetorical/Listeners/MedCraftListeners.java index d4512da..58dc3f8 100644 --- a/src/main/java/me/smeths/and/rhetorical/Listeners/MedCraftListeners.java +++ b/src/main/java/me/smeths/and/rhetorical/Listeners/MedCraftListeners.java @@ -49,7 +49,8 @@ public void onPlayerUseMedKit(PlayerInteractEvent e) { int heldslot = p.getInventory().getHeldItemSlot(); p.getInventory().setItem(heldslot, new ItemStack(Material.AIR)); p.updateInventory(); - new MedKitHandler(p); return; + new MedKitHandler(p); + return; } if (i.getAmount() >= 2 && p.hasPermission("medkit.use")) { i.setAmount(i.getAmount() - 1); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c2643b0..b766106 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,10 +1,10 @@ Bandage: Material: PAPER - Warmup-Speed: 1 + Warmup-Speed: 2 Result-Amount: 2 - movecancel-threshhold: 0.75D ModelData: 16 Name: '&4āœš&fBandage&4āœš' + Lore-1: '&6Right/Left click to use this MedKit' Regen-Time: 3 Regen-Amplifier: 1 Crafting-Material-top-left: AIR @@ -16,12 +16,16 @@ Bandage: Crafting-Material-bottom-left: AIR Crafting-Material-bottom-middle: PAPER Crafting-Material-bottom-right: AIR + PerformCMD: false + ConsoleCMD: true + CMD: 'tell [playername] your server admin did not configure this plugin' MedKit: Material: PAPER Warmup-Speed: 1 Result-Amount: 1 ModelData: 18 Name: '&cāœš&fMedKit&cāœš' + Lore-1: '&6Right/Left click to use this MedKit' Regen-Time: 6 Regen-Amplifier: 2 Crafting-Material-top-left: PAPER @@ -33,3 +37,6 @@ MedKit: Crafting-Material-bottom-left: PAPER Crafting-Material-bottom-middle: PAPER Crafting-Material-bottom-right: PAPER + PerformCMD: false + ConsoleCMD: true + CMD: 'tell [playername] your server admin did not configure this plugin' \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 95edc30..910b121 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,10 +1,14 @@ name: MedCraft main: me.smeths.and.rhetorical.MedCraft author: smeths&rhetorical -version: 1.3.5.3 +version: 1.3.5.4 api-version: 1.13 -commands: - MedCraft: - description: MedCraft Command! - usage: /MedCraft - aliases: [meds] \ No newline at end of file +permissions: + bandage.craft: + default: op + bandage.use: + default: op + medkit.craft: + default: op + medkit.user: + default: op \ No newline at end of file