diff --git a/pom.xml b/pom.xml index 3fa8bf1..43363bb 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 de.fanta.challenges Challenges - 0.0.1 + 1.0.0 UTF-8 UTF-8 diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index 8da0ba3..abdff57 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -90,8 +90,6 @@ private ServerType serverType; - private int protocolVersion; - public FileConfiguration ItemConfig; public File ItemConfigFile; @@ -138,8 +136,6 @@ getLogger().log(Level.INFO, "Bukkit found. Use Bukkit Scheduler"); scheduler = new BukkitScheduler(this); - protocolVersion = Bukkit.getUnsafe().getProtocolVersion(); - colorUtils = new ColorUtils(this); this.timer = new Timer(this); this.rndDrops = new RandomDropsChallenge(); @@ -598,10 +594,6 @@ return guiPrefix; } - public int getProtocolVersion() { - return protocolVersion; - } - public ArrayList getNotAvailableMaterials() { return not_available_materials; } diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/forcequest/ForceQuestChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/forcequest/ForceQuestChallengeEvent.java index b5cbf5d..67a342b 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/forcequest/ForceQuestChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/forcequest/ForceQuestChallengeEvent.java @@ -18,7 +18,6 @@ import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; -import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Bukkit; import org.bukkit.GameMode; @@ -26,6 +25,7 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; +import org.bukkit.Registry; import org.bukkit.Sound; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -157,7 +157,7 @@ } } - for (PotionEffectType potionEffectType : PotionEffectType.values()) { + for (PotionEffectType potionEffectType : Registry.EFFECT) { if (!potionEffectType.isInstant() && potionEffectType != PotionEffectType.LUCK && potionEffectType != PotionEffectType.UNLUCK && potionEffectType != PotionEffectType.HEALTH_BOOST) { potionEffectTypes.add(potionEffectType); } diff --git a/src/main/java/de/fanta/challenges/challenges/RandomEffectChallenge.java b/src/main/java/de/fanta/challenges/challenges/RandomEffectChallenge.java index 828cd85..f7b5ba5 100644 --- a/src/main/java/de/fanta/challenges/challenges/RandomEffectChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/RandomEffectChallenge.java @@ -2,6 +2,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.utils.Config; +import org.bukkit.Registry; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -26,7 +27,7 @@ if (Config.getBoolean("randomeffect") && plugin.getTimer().isRunning() && !plugin.getVanish().isVanish(p)) { long chunkkey = p.getLocation().getChunk().getChunkKey(); Random random = new Random(); - PotionEffectType[] values = Arrays.stream(PotionEffectType.values()).filter(effect -> (!effect.equals(PotionEffectType.INSTANT_DAMAGE))).toArray(PotionEffectType[]::new); + PotionEffectType[] values = Registry.EFFECT.stream().filter(effect -> (!effect.equals(PotionEffectType.INSTANT_DAMAGE))).toArray(PotionEffectType[]::new); PotionEffect randomEffect = new PotionEffect(values[random.nextInt((int) Arrays.stream(values).count())], 999999, random.nextInt(5)); if (!chunkPotionEffectMap.containsKey(chunkkey)) { chunkPotionEffectMap.put(chunkkey, randomEffect); @@ -36,7 +37,6 @@ p.removePotionEffect(playerPotionEffectMap.get(p).getType()); } p.addPotionEffect(chunkPotionEffectMap.get(chunkkey)); - playerPotionEffectMap.put(p, chunkPotionEffectMap.get(chunkkey)); } } } diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java index 47c85f4..6cd9f8b 100644 --- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -46,6 +46,7 @@ import de.fanta.challenges.commands.timer.TimerReverseCommand; import de.fanta.challenges.commands.timer.TimerSetCommand; import de.fanta.challenges.commands.timer.TimerStartCommand; +import de.iani.cubesideutils.bukkit.MinecraftVersion; import de.iani.cubesideutils.bukkit.commands.CommandRouter; public record CommandRegistration(Challenges plugin) { @@ -81,10 +82,9 @@ coordsRouter.addCommandMapping(new CoordsGetCommand(), "get"); coordsRouter.addCommandMapping(new CoordsSaveCommand(plugin), "save"); coordsRouter.addCommandMapping(new CoordsDeleteCommand(), "delete"); - if (plugin.getProtocolVersion() >= 759) { + if (MinecraftVersion.isAboveOrEqual(1,19,0)) { coordsRouter.addCommandMapping(new CoordsTargetCommand(plugin), "target"); } - CommandRouter hpRouter = new CommandRouter(plugin.getCommand("hp")); hpRouter.addCommandMapping(new HPAddCommand(plugin), "add"); hpRouter.addCommandMapping(new HPGetCommand(plugin), "get"); diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/EventSettingsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventSettingsGui.java index d57368d..3c8d109 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/EventSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/EventSettingsGui.java @@ -19,6 +19,7 @@ private static final int MINI_LWC_INDEX = 10; private static final int TOURNAMENT_INDEX = 11; + private static final int START_INVENTORY_INDEX = 12; public EventSettingsGui(Player player) { super(player, Bukkit.createInventory(player, INVENTORY_SIZE, plugin.getGuiPrefix().append(Component.text(" >> Event Settings")))); @@ -46,7 +47,7 @@ Config.setValue("event.minilwc", true); ChatUtil.sendTitleToAll(Component.text("Event"), Component.text("Mini LWC aktiviert.", ChatUtil.GREEN), true); } - player.closeInventory(); + rebuildInventory(); } case TOURNAMENT_INDEX -> { if (Config.getBoolean("event.tournament")) { @@ -58,6 +59,22 @@ } player.closeInventory(); } + case START_INVENTORY_INDEX -> { + if (event.isLeftClick()) { + if (Config.getBoolean("event.startinv")) { + Config.setValue("event.startinv", false); + ChatUtil.sendTitleToAll(Component.text("Event"), Component.text("Start Inventar deaktiviert.", ChatUtil.RED), true); + } else { + Config.setValue("event.startinv", true); + ChatUtil.sendTitleToAll(Component.text("Event"), Component.text("Start Inventar aktiviert.", ChatUtil.GREEN), true); + } + } + + if (event.isRightClick()) { + + } + rebuildInventory(); + } default -> { } } diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java index a4e1cf5..18e0561 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java @@ -14,6 +14,7 @@ import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; import de.fanta.challenges.utils.ItemUtils; +import de.iani.cubesideutils.bukkit.MinecraftVersion; import de.iani.cubesideutils.bukkit.inventory.AbstractWindow; import de.iani.cubesideutils.bukkit.items.CustomHeads; import net.kyori.adventure.text.Component; @@ -155,9 +156,6 @@ } case WORLD_BORDER_LEVEL_INDEX -> { - if (plugin.getProtocolVersion() < 759) { - return; - } if (event.isLeftClick()) { if (Config.getBoolean("worldborderlevel")) { Config.setValue("worldborderlevel", false); diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java index 9989034..c0d00da 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java @@ -5,6 +5,7 @@ import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; import de.fanta.challenges.utils.ItemUtils; +import de.iani.cubesideutils.bukkit.MinecraftVersion; import de.iani.cubesideutils.bukkit.inventory.AbstractWindow; import de.iani.cubesideutils.bukkit.items.CustomHeads; import net.kyori.adventure.text.Component; @@ -184,7 +185,7 @@ } } case BACKPACK_INDEX -> { - if (plugin.getProtocolVersion() > 754) { + if (MinecraftVersion.isAboveOrEqual(1, 16, 5)) { item = ItemUtils.createGuiItem(Material.BUNDLE, Component.text("Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN), Component.text("Rechtsklick = Einstellungen", ChatUtil.GREEN)); } else { item = ItemUtils.createGuiItem(Material.CHEST, Component.text("Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN), Component.text("Rechtsklick = Einstellungen", ChatUtil.GREEN)); diff --git a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java index c47a234..18118ac 100644 --- a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java @@ -2,6 +2,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.utils.Config; +import de.iani.cubesideutils.bukkit.MinecraftVersion; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Block; @@ -27,7 +28,7 @@ if (Config.getBoolean("silkore")) { Block block = e.getBlock(); Material dropType; - if (plugin.getProtocolVersion() > 754) { + if (MinecraftVersion.isAboveOrEqual(1, 17, 0)) { dropType = switch (e.getBlockState().getType()) { case IRON_ORE, DEEPSLATE_IRON_ORE -> Material.IRON_INGOT; case GOLD_ORE, DEEPSLATE_GOLD_ORE -> Material.GOLD_INGOT; diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index 65a8738..98a2ca7 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -38,6 +38,7 @@ import de.fanta.challenges.guis.eventgui.TeamSelectGUI; import de.fanta.challenges.teams.TeamListener; import de.fanta.challenges.utils.CoordsTargeter; +import de.iani.cubesideutils.bukkit.MinecraftVersion; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; @@ -97,7 +98,7 @@ pM.registerEvents(new TimeChallengeEvent(), plugin); //pM.registerEvents(new Troll(plugin), plugin); - if (plugin.getProtocolVersion() >= 759) { + if (MinecraftVersion.isAboveOrEqual(1, 19, 0)) { pM.registerEvents(new WorldBorderLevelChallenge(), plugin); pM.registerEvents(new CoordsTargeter(), plugin); } diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java index 5b8703b..7e2f607 100644 --- a/src/main/java/de/fanta/challenges/utils/ChatUtil.java +++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java @@ -1,7 +1,6 @@ package de.fanta.challenges.utils; import de.fanta.challenges.Challenges; -import de.iani.cubesideutils.StringUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.TextColor; @@ -85,16 +84,16 @@ public static Component getTrasnlateItemComponent(Material material) { TranslatableComponent component = Component.translatable(material.translationKey()); - if (material.name().toLowerCase().contains("music_disc")) { - component = component.append(Component.text(" " + StringUtil.capitalizeFirstLetter(material.name().toLowerCase().replace("music_disc_", ""), true))); + if (material.name().toLowerCase().contains("music_disc") || material.name().toLowerCase().contains("banner_pattern")) { + component = component.append(Component.text(" ").append(Component.translatable(material.translationKey() + ".desc"))); } - if (material.name().toLowerCase().contains("banner_pattern")) { - component = component.append(Component.text(" " + StringUtil.capitalizeFirstLetter(material.name().toLowerCase().replace("_banner_pattern", ""), true))); - } - - if (material.name().toLowerCase().contains("smithing_template")) { - component = component.append(Component.text(" " + StringUtil.capitalizeFirstLetter(material.name().toLowerCase().replace("_smithing_template", ""), true))); + if (material == Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE) { + component = component.append(Component.text(" ").append(Component.translatable("upgrade.minecraft.netherite_upgrade"))); + } else if (material.name().endsWith("_SMITHING_TEMPLATE")) { + String key = material.getItemTranslationKey(); + key = key.replace("item.minecraft.", "").replace("_armor_trim_smithing_template", ""); + component = component.append(Component.text(" ").append(Component.translatable("trim_pattern.minecraft." + key))); } return component; diff --git a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java index 6066b57..5a2c0de 100644 --- a/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java +++ b/src/main/java/de/fanta/challenges/utils/SaveWorldUtils.java @@ -113,7 +113,7 @@ File saveSlotFolder = new File(saveFolder, saveSlot.getSlot()); if (saveSlotFolder.isDirectory()) { - FileUtils.deleteDirectory(saveSlotFolder); + FileUtils.forceDelete(saveSlotFolder); } HashMap copyMap = new HashMap<>(); copyMap.put(dir, saveSlotFolder); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index fddf07f..8aa6988 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -59,6 +59,7 @@ autoteams: false tournament: false minilwc: false + startinv: false sammelfieber: item: AIR money: 100