diff --git a/build.gradle.kts b/build.gradle.kts index 0bcdf8a..69a87af 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "me.ghosty" -version = "1.1.1" +version = "1.1.2" repositories { mavenCentral() @@ -15,6 +15,7 @@ repositories { dependencies { compileOnly("org.spigotmc:spigot-api:1.21-R0.1-SNAPSHOT") + // compileOnly("xyz.haoshoku.nick:nickapi:7.2-SNAPSHOT") compileOnly("xyz/haoshoku/nick:NickAPI:v6.7") diff --git a/configs/english.yml b/configs/english.yml index 38fc070..60f05b4 100644 --- a/configs/english.yml +++ b/configs/english.yml @@ -40,8 +40,10 @@ drophead: disguise: - # Being able to pose the heads + # Being able to place the heads place-head: true + # Giving the head back when doing /undisguise and when using another head + give-back: false restaure: diff --git a/configs/french.yml b/configs/french.yml index 157def8..f9f9709 100644 --- a/configs/french.yml +++ b/configs/french.yml @@ -47,6 +47,8 @@ drophead: disguise: # Le fait de pouvoir poser les têtes place-head: true + # Le fait de rendre la tête au /undisguise et quand tu utilises une autre tête + give-back: false restaure: diff --git a/src/main/java/me/ghosty/kamoof/commands/UndisguiseCMD.java b/src/main/java/me/ghosty/kamoof/commands/UndisguiseCMD.java index 9b48a8e..1794b48 100644 --- a/src/main/java/me/ghosty/kamoof/commands/UndisguiseCMD.java +++ b/src/main/java/me/ghosty/kamoof/commands/UndisguiseCMD.java @@ -1,10 +1,13 @@ package me.ghosty.kamoof.commands; +import me.ghosty.kamoof.KamoofSMP; import me.ghosty.kamoof.features.disguise.DisguiseManager; +import me.ghosty.kamoof.features.drophead.SkullManager; import me.ghosty.kamoof.utils.Lang; import me.ghosty.kamoof.utils.Message; import org.bukkit.command.*; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import xyz.haoshoku.nick.api.NickAPI; import java.util.List; @@ -22,6 +25,11 @@ public boolean onCommand(CommandSender sender, Command command, String label, St if (NickAPI.isNicked(player)) { String disguise = NickAPI.getName(player); DisguiseManager.undisguise(player); + if(KamoofSMP.config().getBoolean("disguise.give-back")) { + ItemStack item = SkullManager.getSkull(disguise); + if(!player.getInventory().addItem(item).isEmpty()) + player.getWorld().dropItem(player.getLocation(), item); + } Message.send(player, "messages.undisguise", Map.of("player", NickAPI.getOriginalName(player), "nick", disguise)); } else { Message.send(player, "messages.nodisguise", Map.of("player", NickAPI.getOriginalName(player))); diff --git a/src/main/java/me/ghosty/kamoof/features/autoupdate/UpdateChecker.java b/src/main/java/me/ghosty/kamoof/features/autoupdate/UpdateChecker.java index 6173398..728c0e0 100644 --- a/src/main/java/me/ghosty/kamoof/features/autoupdate/UpdateChecker.java +++ b/src/main/java/me/ghosty/kamoof/features/autoupdate/UpdateChecker.java @@ -65,8 +65,7 @@ else if (downloadsCount < 1_000_000) Pattern pattern = Pattern.compile(Lang.VERSION_CHANGELOG_REGEX.get(), Pattern.CANON_EQ); Matcher matcher = pattern.matcher(changelog); matcher.find(); - changelog = matcher.group().replace("\\n", "
"); -// changelog = String.join("
", matcher.group().split("\\\\n")); + changelog = matcher.group().replace("\\n", "
").replace("\"", "\\\""); String hover = String.format(Lang.NEW_VERSION_HOVER.get(), newVersion, downloads, changelog); String url = "https://modrinth.com/plugin/camouf2/version/" + newVersion; diff --git a/src/main/java/me/ghosty/kamoof/features/disguise/DisguiseListener.java b/src/main/java/me/ghosty/kamoof/features/disguise/DisguiseListener.java index 8e4e420..e2cc38c 100644 --- a/src/main/java/me/ghosty/kamoof/features/disguise/DisguiseListener.java +++ b/src/main/java/me/ghosty/kamoof/features/disguise/DisguiseListener.java @@ -9,6 +9,7 @@ import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.ItemStack; import xyz.haoshoku.nick.api.NickAPI; import java.util.Map; @@ -58,6 +59,11 @@ public void onInteract(PlayerInteractEvent event) { } } + if (KamoofSMP.config().getBoolean("disguise.give-back") && NickAPI.isNicked(player)) { + ItemStack item = SkullManager.getSkull(NickAPI.getName(player)); + if (!player.getInventory().addItem(item).isEmpty()) + player.getWorld().dropItem(player.getLocation(), item); + } DisguiseManager.disguise(player, name); Message.send(player, "messages.disguised", Map.of("player", NickAPI.getOriginalName(player), "nick", name)); diff --git a/src/main/java/me/ghosty/kamoof/features/ritual/RitualHandler.java b/src/main/java/me/ghosty/kamoof/features/ritual/RitualHandler.java index 88eddd9..654b8f5 100644 --- a/src/main/java/me/ghosty/kamoof/features/ritual/RitualHandler.java +++ b/src/main/java/me/ghosty/kamoof/features/ritual/RitualHandler.java @@ -28,10 +28,10 @@ public final class RitualHandler { new Vector2d(-6, 0), new Vector2d(-4, -4) ); + public static final NamespacedKey key = new NamespacedKey("kamoofsmp", "ritualstand"); static final AttributeModifier healthBoostModifier = new AttributeModifier(new NamespacedKey("kamoofsmp", "pacte"), KamoofSMP.config().getInt("ritual.pactes.bloody.hpboost"), AttributeModifier.Operation.ADD_NUMBER, EquipmentSlotGroup.ANY); public static boolean setup = false; public static Location location; - public static final NamespacedKey key = new NamespacedKey("kamoofsmp", "ritualstand"); public static void load() { setup = false; @@ -126,6 +126,8 @@ public static boolean isValidUUID(UUID uuid) { public static void setPacte(Player player, String pacte) { KamoofSMP.getData().set("pacte." + player.getUniqueId(), pacte); KamoofSMP.saveData(); + if (pacte == null) + return; switch (pacte) { case "1" -> { player.getAttribute(Attribute.GENERIC_MAX_HEALTH).addModifier(healthBoostModifier); diff --git a/src/main/java/me/ghosty/kamoof/utils/Lang.java b/src/main/java/me/ghosty/kamoof/utils/Lang.java index 820184c..2502c91 100644 --- a/src/main/java/me/ghosty/kamoof/utils/Lang.java +++ b/src/main/java/me/ghosty/kamoof/utils/Lang.java @@ -53,16 +53,16 @@ public enum Lang { PREFIX + "§cCouldn't download/save the last version" }), NEW_VERSION(new String[]{ - "[KamoofSMP] ➤ Nouvelle version disponible ! %s ➞ %s", - "[KamoofSMP] ➤ New version available! %s ➞ %s" + "[KamoofSMP] ➤ Nouvelle version disponible ! %s ➞ %s", + "[KamoofSMP] ➤ New version available! %s ➞ %s" }), NEW_VERSION_HOVER(new String[]{ "Dernière version: Version %s
Téléchargée %s fois

%s
Cliquez pour ouvrir la page de la version", "Last version: Version %s
Downloaded %s times

%s
Click to open the version page" }), NEW_VERSION_DOWNLOADED(new String[]{ - "[KamoofSMP] ➤ Nouvelle version téléchargée ! %s ➞ %s
[RELANCER LE SERVEUR]", - "[KamoofSMP] ➤ New version downloaded ! %s ➞ %s
[RESTART THE SERVER]" + "[KamoofSMP] ➤ Nouvelle version téléchargée ! %s ➞ %s
[RELANCER LE SERVEUR]", + "[KamoofSMP] ➤ New version downloaded ! %s ➞ %s
[RESTART THE SERVER]" }), VERSION_CHANGELOG_REGEX(new String[]{ "Changements:((?!`).)+", diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index daa386e..a043050 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -47,6 +47,8 @@ drophead: disguise: # Le fait de pouvoir poser les têtes place-head: true + # Le fait de rendre la tête au /undisguise et quand tu utilises une autre tête + give-back: false restaure: diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c089780..6730989 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -9,7 +9,7 @@ main: me.ghosty.kamoof.KamoofSMP commands: kamoofsmp: description: La commande principale du KamoofSMP - aliases: [kamoof] + aliases: [kamoof, camouf, camoufsmp] givehead: description: Se donner n'importe quelle tête permission: kamoofsmp.admin