diff --git a/advanced-achievements-plugin/pom.xml b/advanced-achievements-plugin/pom.xml index 6777588b4..72d5074e8 100644 --- a/advanced-achievements-plugin/pom.xml +++ b/advanced-achievements-plugin/pom.xml @@ -138,10 +138,6 @@ me.clip placeholderapi - - com.github.shadowjonathan - ParticleEffect - org.postgresql postgresql diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/advancement/AdvancementManager.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/advancement/AdvancementManager.java index aba9b30df..312bc18a8 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/advancement/AdvancementManager.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/advancement/AdvancementManager.java @@ -18,7 +18,6 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; -import com.darkblade12.particleeffect.ReflectionUtils.PackageType; import com.hm.achievement.AdvancedAchievements; import com.hm.achievement.advancement.AchievementAdvancement.AchievementAdvancementBuilder; import com.hm.achievement.category.Category; @@ -31,7 +30,7 @@ import com.hm.achievement.utils.StringHelper; /** - * Class in charge of registering achievements as advancements for servers running on Minecraft 1.12+. + * Class in charge of registering achievements as advancements. * * @author Pyves */ @@ -43,25 +42,12 @@ public class AdvancementManager implements Reloadable { private static final String MINECRAFT_BOOK_KEY = "minecraft:book"; // Pattern to produce keys for advancements. private static final Pattern REGEX_PATTERN_KEYS = Pattern.compile("[^A-Za-z0-9_]"); - // Strings related to Reflection. - private static final String PACKAGE_INVENTORY = "inventory"; - private static final String CLASS_CRAFT_ITEM_STACK = "CraftItemStack"; - private static final String CLASS_ITEM = "Item"; - private static final String CLASS_ITEM_STACK = "ItemStack"; - private static final String CLASS_REGISTRY_MATERIALS = "RegistryMaterials"; - private static final String CLASS_MINECRAFT_KEY = "MinecraftKey"; - private static final String FIELD_REGISTRY = "REGISTRY"; - private static final String METHOD_AS_NMS_COPY = "asNMSCopy"; - private static final String METHOD_GET_ITEM = "getItem"; - private static final String METHOD_GET_KEY = "getKey"; - private static final String METHOD_B = "b"; private final YamlConfiguration mainConfig; private final GUIItems guiItems; private final AdvancedAchievements advancedAchievements; private final Logger logger; private final Set disabledCategories; - private final int serverVersion; private final AchievementMap achievementMap; private boolean configRegisterAdvancementDescriptions; @@ -72,13 +58,12 @@ public class AdvancementManager implements Reloadable { @Inject public AdvancementManager(@Named("main") YamlConfiguration mainConfig, GUIItems guiItems, AchievementMap achievementMap, - AdvancedAchievements advancedAchievements, Logger logger, Set disabledCategories, int serverVersion) { + AdvancedAchievements advancedAchievements, Logger logger, Set disabledCategories) { this.mainConfig = mainConfig; this.guiItems = guiItems; this.advancedAchievements = advancedAchievements; this.logger = logger; this.disabledCategories = disabledCategories; - this.serverVersion = serverVersion; this.achievementMap = achievementMap; } @@ -110,9 +95,6 @@ public void registerAdvancements() { */ private String parseBackgroundTexture() { String configTexture = mainConfig.getString("AdvancementsBackground"); - if (serverVersion == 12) { - return StringUtils.replace(configTexture, "/item/", "/items/"); - } return StringUtils.replaceEach(configTexture, new String[] { "/items/", "book_enchanted.png" }, new String[] { "/item/", "enchanted_book.png" }); } @@ -151,9 +133,6 @@ private void registerParentAdvancement() { .description("") .background(configBackgroundTexture) .type(AdvancementType.GOAL); - if (serverVersion == 12) { - builder.iconData("0"); - } Bukkit.getUnsafe().loadAdvancement(namespacedKey, AdvancementJsonHelper.toJson(builder.build())); } } @@ -206,42 +185,13 @@ private String registerAdvancement(ItemStack item, Achievement achievement, Stri } AchievementAdvancementBuilder builder = new AchievementAdvancementBuilder() - .iconItem(serverVersion == 12 ? getInternalName(item) : item.getType().name().toLowerCase()) + .iconItem(item.getType().name().toLowerCase()) .title(displayName) .description(description) .parent("advancedachievements:" + parentKey) .type(lastAchievement ? AdvancementType.CHALLENGE : AdvancementType.TASK); - if (serverVersion == 12) { - builder.iconData(Short.toString(item.getDurability())); - } Bukkit.getUnsafe().loadAdvancement(namespacedKey, AdvancementJsonHelper.toJson(builder.build())); ++generatedAdvancements; return achKey; } - - /** - * Gets the internal item used by Vanilla Minecraft. These are the only names supported by advancements. Material - * and internal names can differ quite significantly (for instance: book_and_quill vs. writable_book). - * - * @param item - * @return the internal Minecraft name, prefixed with "minecraft:" - */ - private String getInternalName(ItemStack item) { - try { - Object nmsItemStack = PackageType.CRAFTBUKKIT.getClass(PACKAGE_INVENTORY + "." + CLASS_CRAFT_ITEM_STACK) - .getMethod(METHOD_AS_NMS_COPY, ItemStack.class).invoke(null, item); - Object nmsItem = PackageType.MINECRAFT_SERVER.getClass(CLASS_ITEM_STACK).getMethod(METHOD_GET_ITEM) - .invoke(nmsItemStack); - Object registry = PackageType.MINECRAFT_SERVER.getClass(CLASS_ITEM).getField(FIELD_REGISTRY).get(null); - Object minecraftKey = PackageType.MINECRAFT_SERVER.getClass(CLASS_REGISTRY_MATERIALS) - .getMethod(METHOD_B, Object.class).invoke(registry, nmsItem); - return "minecraft:" + PackageType.MINECRAFT_SERVER.getClass(CLASS_MINECRAFT_KEY).getMethod(METHOD_GET_KEY) - .invoke(minecraftKey); - } catch (Exception e) { - logger.warning("Failed to get internal " + item.getType().name().toLowerCase() + " name for advancement icon. " - + "Using book instead."); - return MINECRAFT_BOOK_KEY; - } - } - } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/completer/CommandTabCompleter.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/completer/CommandTabCompleter.java index 7eb89559d..27c089b33 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/completer/CommandTabCompleter.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/completer/CommandTabCompleter.java @@ -19,9 +19,7 @@ import com.hm.achievement.command.executable.CommandSpec; import com.hm.achievement.command.executable.DeleteCommand; import com.hm.achievement.command.executable.EasterEggCommand; -import com.hm.achievement.command.executable.GenerateCommand; import com.hm.achievement.command.executable.ResetCommand; -import com.hm.achievement.command.executable.Upgrade13Command; import com.hm.achievement.config.AchievementMap; /** @@ -32,19 +30,14 @@ */ public class CommandTabCompleter implements TabCompleter { - private static final int MAX_LIST_LENGTH = 50; - private final AchievementMap achievementMap; private final Set commandSpecs; - private final int serverVersion; @Inject - public CommandTabCompleter(AchievementMap achievementMap, Set commands, int serverVersion) { + public CommandTabCompleter(AchievementMap achievementMap, Set commands) { this.achievementMap = achievementMap; - this.serverVersion = serverVersion; this.commandSpecs = commands.stream() - .filter(c -> !(c instanceof EasterEggCommand || c instanceof Upgrade13Command - || serverVersion < 12 && c instanceof GenerateCommand)) + .filter(c -> !(c instanceof EasterEggCommand)) .map(c -> c.getClass().getAnnotation(CommandSpec.class)) .collect(Collectors.toSet()); } @@ -83,7 +76,7 @@ public List onTabComplete(CommandSender sender, Command command, String /** * Returns a partial list based on the input set. Members of the returned list must start with what the player has - * types so far. The list also has a limited length prior to Minecraft 1.13 to avoid filling the player's screen. + * types so far. * * @param options * @param prefix @@ -94,18 +87,11 @@ private List getPartialList(Collection options, String prefix) { // Replace spaces with an Open Box character to prevent completing wrong word. Prevented Behaviour: // T -> Tamer -> Teleport Man -> Teleport The Avener -> Teleport The The Smelter // Sort matching elements by alphabetical order. - List allOptions = options.stream() + return options.stream() .filter(s1 -> s1.toLowerCase().startsWith(prefix.toLowerCase())) .map(s -> s.replace(' ', '\u2423')) .sorted() .collect(Collectors.toList()); - - if (serverVersion < 13 && allOptions.size() > MAX_LIST_LENGTH) { - allOptions = allOptions.subList(0, MAX_LIST_LENGTH - 1); - // Suspension points to show that list was truncated. - allOptions.add("\u2022\u2022\u2022"); - } - return allOptions; } private boolean shouldReturnPlayerList(Command command, String[] args) { diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/AbstractRankingCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/AbstractRankingCommand.java index 6d8a551ce..8762dcb2f 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/AbstractRankingCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/AbstractRankingCommand.java @@ -16,7 +16,6 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import com.darkblade12.particleeffect.ParticleEffect; import com.hm.achievement.command.pagination.CommandPagination; import com.hm.achievement.db.AbstractDatabaseManager; import com.hm.achievement.utils.SoundPlayer; @@ -37,7 +36,6 @@ public abstract class AbstractRankingCommand extends AbstractCommand { private static final int PER_PAGE = 16; private final Logger logger; - private final int serverVersion; private final String languageKey; private final AbstractDatabaseManager databaseManager; private final SoundPlayer soundPlayer; @@ -56,11 +54,9 @@ public abstract class AbstractRankingCommand extends AbstractCommand { private long lastCacheUpdate = 0L; AbstractRankingCommand(YamlConfiguration mainConfig, YamlConfiguration langConfig, StringBuilder pluginHeader, - Logger logger, int serverVersion, String languageKey, AbstractDatabaseManager databaseManager, - SoundPlayer soundPlayer) { + Logger logger, String languageKey, AbstractDatabaseManager databaseManager, SoundPlayer soundPlayer) { super(mainConfig, langConfig, pluginHeader); this.logger = logger; - this.serverVersion = serverVersion; this.languageKey = languageKey; this.databaseManager = databaseManager; this.soundPlayer = soundPlayer; @@ -181,16 +177,11 @@ private String getRankingSymbol(int rank) { */ private void launchEffects(Player player) { if (configAdditionalEffects) { - if (serverVersion >= 9) { - player.spawnParticle(Particle.PORTAL, player.getLocation(), 100, 0, 1, 0, 0.5f); - } else { - ParticleEffect.PORTAL.display(0, 1, 0, 0.5f, 1000, player.getLocation(), 1); - } + player.spawnParticle(Particle.PORTAL, player.getLocation(), 100, 0, 1, 0, 0.5f); } if (configSound) { - soundPlayer.play(player, configSoundRanking, "ENTITY_FIREWORK_ROCKET_BLAST", "ENTITY_FIREWORK_LARGE_BLAST", - "FIREWORK_BLAST"); + soundPlayer.play(player, configSoundRanking, "ENTITY_FIREWORK_ROCKET_BLAST"); } } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/BookCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/BookCommand.java index 1f9c0a10d..a72682a2c 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/BookCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/BookCommand.java @@ -15,6 +15,7 @@ import javax.inject.Singleton; import org.apache.commons.lang3.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.command.CommandSender; @@ -23,8 +24,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; -import com.darkblade12.particleeffect.ParticleEffect; -import com.darkblade12.particleeffect.ReflectionUtils.PackageType; import com.hm.achievement.config.AchievementMap; import com.hm.achievement.db.AbstractDatabaseManager; import com.hm.achievement.db.data.AwardedDBAchievement; @@ -126,16 +125,12 @@ void onExecute(CommandSender sender, String[] args) { } // Play special particle effect when receiving the book. if (configAdditionalEffects) { - if (serverVersion >= 9) { - player.spawnParticle(Particle.ENCHANTMENT_TABLE, player.getLocation(), 1000, 0, 2, 0, 1); - } else { - ParticleEffect.ENCHANTMENT_TABLE.display(0, 2, 0, 1, 1000, player.getLocation(), 100); - } + player.spawnParticle(Particle.ENCHANTMENT_TABLE, player.getLocation(), 1000, 0, 2, 0, 1); } // Play special sound when receiving the book. if (configSound) { - soundPlayer.play(player, configSoundBook, "ENTITY_PLAYER_LEVELUP", "ENTITY_PLAYER_LEVELUP", "LEVEL_UP"); + soundPlayer.play(player, configSoundBook, "ENTITY_PLAYER_LEVELUP"); } fillBook(playerAchievementsList, player); @@ -214,15 +209,17 @@ private boolean isInCooldownPeriod(Player player) { */ @SuppressWarnings("unchecked") private void setBookPages(List bookPages, BookMeta bookMeta) { - if (serverVersion >= 11 && serverVersion <= 15) { + if (serverVersion <= 15) { try { // Code we're trying to execute: this.pages.add(CraftChatMessage.fromString(page, true)[0]); in // CraftMetaBook.java. - Class craftMetaBookClass = PackageType.CRAFTBUKKIT - .getClass(PACKAGE_INVENTORY + "." + CLASS_CRAFT_META_BOOK); + String versionIdentifier = Bukkit.getServer().getClass().getPackage().getName().substring(23); + Class craftMetaBookClass = Class.forName("org.bukkit.craftbukkit." + versionIdentifier + "." + + PACKAGE_INVENTORY + "." + CLASS_CRAFT_META_BOOK); List pages = (List) craftMetaBookClass.getField(FIELD_PAGES) .get(craftMetaBookClass.cast(bookMeta)); - Method fromStringMethod = PackageType.CRAFTBUKKIT.getClass(PACKAGE_UTIL + "." + CLASS_CRAFT_CHAT_MESSAGE) + Method fromStringMethod = Class.forName("org.bukkit.craftbukkit." + versionIdentifier + "." + + PACKAGE_UTIL + "." + CLASS_CRAFT_CHAT_MESSAGE) .getMethod(METHOD_FROM_STRING, String.class, boolean.class); for (String bookPage : bookPages) { pages.add(((Object[]) fromStringMethod.invoke(null, bookPage, true))[0]); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/GenerateCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/GenerateCommand.java index 93a4eaf5a..6569480ba 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/GenerateCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/GenerateCommand.java @@ -19,17 +19,14 @@ @CommandSpec(name = "generate", permission = "generate", minArgs = 1, maxArgs = 1) public class GenerateCommand extends AbstractCommand { - private final int serverVersion; private final AdvancementManager advancementManager; private String langAdvancementsGenerated; - private String langMinecraftNotSupported; @Inject public GenerateCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, int serverVersion, AdvancementManager advancementManager) { + StringBuilder pluginHeader, AdvancementManager advancementManager) { super(mainConfig, langConfig, pluginHeader); - this.serverVersion = serverVersion; this.advancementManager = advancementManager; } @@ -38,17 +35,12 @@ public void extractConfigurationParameters() { super.extractConfigurationParameters(); langAdvancementsGenerated = pluginHeader + langConfig.getString("advancements-generated"); - langMinecraftNotSupported = pluginHeader + langConfig.getString("minecraft-not-supported"); } @Override void onExecute(CommandSender sender, String[] args) { - if (serverVersion >= 12) { - advancementManager.registerAdvancements(); + advancementManager.registerAdvancements(); - sender.sendMessage(langAdvancementsGenerated); - } else { - sender.sendMessage(langMinecraftNotSupported); - } + sender.sendMessage(langAdvancementsGenerated); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/HelpCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/HelpCommand.java index c9ad6fd41..17be0fbf4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/HelpCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/HelpCommand.java @@ -1,7 +1,5 @@ package com.hm.achievement.command.executable; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -24,8 +22,7 @@ @CommandSpec(name = "help", permission = "", minArgs = 0, maxArgs = Integer.MAX_VALUE) public class HelpCommand extends AbstractCommand { - private final int serverVersion; - private final Logger logger; + private final FancyMessageSender fancyMessageSender; private ChatColor configColor; private String configIcon; @@ -66,10 +63,9 @@ public class HelpCommand extends AbstractCommand { @Inject public HelpCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, int serverVersion, Logger logger) { + StringBuilder pluginHeader, FancyMessageSender fancyMessageSender) { super(mainConfig, langConfig, pluginHeader); - this.serverVersion = serverVersion; - this.logger = logger; + this.fancyMessageSender = fancyMessageSender; } @Override @@ -167,7 +163,7 @@ void onExecute(CommandSender sender, String[] args) { sendJsonClickableHoverableMessage(sender, langCommandReload, "/aach reload", langCommandReloadHover); } - if (serverVersion >= 12 && sender.hasPermission("achievement.generate")) { + if (sender.hasPermission("achievement.generate")) { sendJsonClickableHoverableMessage(sender, langCommandGenerate, "/aach generate", langCommandGenerateHover); } @@ -211,16 +207,10 @@ void onExecute(CommandSender sender, String[] args) { * @param hover */ private void sendJsonClickableHoverableMessage(CommandSender sender, String message, String command, String hover) { - // Send clickable and hoverable message if sender is a player and if supported by the Minecraft version. - if (sender instanceof Player && serverVersion > 7) { - try { - FancyMessageSender.sendHoverableCommandMessage((Player) sender, message, command, hover, - configColor.name().toLowerCase()); - } catch (Exception e) { - logger.warning( - "Failed to display clickable and hoverable message in /aach help command. Displaying standard message instead."); - sender.sendMessage(message); - } + // Send clickable and hoverable message if sender is a player. + if (sender instanceof Player) { + fancyMessageSender.sendHoverableCommandMessage((Player) sender, message, command, hover, + configColor.name().toLowerCase()); } else { sender.sendMessage(message); } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/MonthCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/MonthCommand.java index 12dbabb4f..eadb917e4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/MonthCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/MonthCommand.java @@ -23,10 +23,8 @@ public class MonthCommand extends AbstractRankingCommand { @Inject public MonthCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, Logger logger, int serverVersion, AbstractDatabaseManager databaseManager, - SoundPlayer soundPlayer) { - super(mainConfig, langConfig, pluginHeader, logger, serverVersion, "month-achievement", databaseManager, - soundPlayer); + StringBuilder pluginHeader, Logger logger, AbstractDatabaseManager databaseManager, SoundPlayer soundPlayer) { + super(mainConfig, langConfig, pluginHeader, logger, "month-achievement", databaseManager, soundPlayer); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/StatsCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/StatsCommand.java index 751023a1d..537c992dd 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/StatsCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/StatsCommand.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Player; import org.bukkit.map.MinecraftFont; -import com.darkblade12.particleeffect.ParticleEffect; import com.hm.achievement.config.AchievementMap; import com.hm.achievement.db.CacheManager; import com.hm.achievement.utils.SoundPlayer; @@ -30,7 +29,6 @@ public class StatsCommand extends AbstractCommand { // Minecraft font, used to get size information in the progress bar. private static final MinecraftFont FONT = MinecraftFont.Font; - private final int serverVersion; private final CacheManager cacheManager; private final AchievementMap achievementMap; private final SoundPlayer soundPlayer; @@ -45,10 +43,8 @@ public class StatsCommand extends AbstractCommand { @Inject public StatsCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, int serverVersion, CacheManager cacheManager, AchievementMap achievementMap, - SoundPlayer soundPlayer) { + StringBuilder pluginHeader, CacheManager cacheManager, AchievementMap achievementMap, SoundPlayer soundPlayer) { super(mainConfig, langConfig, pluginHeader); - this.serverVersion = serverVersion; this.cacheManager = cacheManager; this.achievementMap = achievementMap; this.soundPlayer = soundPlayer; @@ -112,16 +108,11 @@ void onExecute(CommandSender sender, String[] args) { // Player has received all achievement; play special effect and sound. if (playerAchievements >= totalAchievements) { if (configAdditionalEffects) { - if (serverVersion >= 9) { - player.spawnParticle(Particle.SPELL_WITCH, player.getLocation(), 400, 0, 1, 0, 0.5f); - } else { - ParticleEffect.SPELL_WITCH.display(0, 1, 0, 0.5f, 400, player.getLocation(), 1); - } + player.spawnParticle(Particle.SPELL_WITCH, player.getLocation(), 400, 0, 1, 0, 0.5f); } if (configSound) { - soundPlayer.play(player, configSoundStats, "ENTITY_FIREWORK_ROCKET_BLAST", "ENTITY_FIREWORK_LARGE_BLAST", - "FIREWORK_BLAST"); + soundPlayer.play(player, configSoundStats, "ENTITY_FIREWORK_ROCKET_BLAST"); } } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/TopCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/TopCommand.java index 4d79ab753..9ff0125fa 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/TopCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/TopCommand.java @@ -22,9 +22,8 @@ public class TopCommand extends AbstractRankingCommand { @Inject public TopCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, Logger logger, int serverVersion, AbstractDatabaseManager databaseManager, - SoundPlayer soundPlayer) { - super(mainConfig, langConfig, pluginHeader, logger, serverVersion, "top-achievement", databaseManager, soundPlayer); + StringBuilder pluginHeader, Logger logger, AbstractDatabaseManager databaseManager, SoundPlayer soundPlayer) { + super(mainConfig, langConfig, pluginHeader, logger, "top-achievement", databaseManager, soundPlayer); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/Upgrade13Command.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/Upgrade13Command.java deleted file mode 100644 index aead29fef..000000000 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/Upgrade13Command.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hm.achievement.command.executable; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.bukkit.command.CommandSender; -import org.bukkit.configuration.file.YamlConfiguration; - -import com.hm.achievement.db.AbstractDatabaseManager; -import com.hm.achievement.db.DatabaseUpdater; - -/** - * Class in charge of handling the /aach upgrade13 command, which updates some of the database tables to use new - * Minecraft 1.13 Material names. - * - * @author Pyves - */ -@Singleton -@CommandSpec(name = "upgrade13", permission = "*", minArgs = 1, maxArgs = 1) -public class Upgrade13Command extends AbstractCommand { - - private final AbstractDatabaseManager databaseManager; - private final DatabaseUpdater databaseUpdater; - - private int configTableMaxSizeOfGroupedSubcategories; - - @Inject - public Upgrade13Command(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, AbstractDatabaseManager databaseManager, DatabaseUpdater databaseUpdater) { - super(mainConfig, langConfig, pluginHeader); - this.databaseManager = databaseManager; - this.databaseUpdater = databaseUpdater; - } - - @Override - public void extractConfigurationParameters() { - super.extractConfigurationParameters(); - - configTableMaxSizeOfGroupedSubcategories = mainConfig.getInt("TableMaxSizeOfGroupedSubcategories"); - } - - @Override - void onExecute(CommandSender sender, String[] args) { - databaseUpdater.updateOldMaterialsToNewOnes(databaseManager, configTableMaxSizeOfGroupedSubcategories); - sender.sendMessage(pluginHeader + - "Database upgrade to Minecraft 1.13 completed for the Crafts, Places and Breaks categories."); - } - -} diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/WeekCommand.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/WeekCommand.java index 30c6962a7..f5e9ca057 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/WeekCommand.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/command/executable/WeekCommand.java @@ -23,9 +23,8 @@ public class WeekCommand extends AbstractRankingCommand { @Inject public WeekCommand(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - StringBuilder pluginHeader, Logger logger, int serverVersion, AbstractDatabaseManager databaseManager, - SoundPlayer soundPlayer) { - super(mainConfig, langConfig, pluginHeader, logger, serverVersion, "week-achievement", databaseManager, soundPlayer); + StringBuilder pluginHeader, Logger logger, AbstractDatabaseManager databaseManager, SoundPlayer soundPlayer) { + super(mainConfig, langConfig, pluginHeader, logger, "week-achievement", databaseManager, soundPlayer); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/ConfigurationParser.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/ConfigurationParser.java index 29ad4b87a..dfe5e4270 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/ConfigurationParser.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/ConfigurationParser.java @@ -81,11 +81,9 @@ public ConfigurationParser(@Named("main") YamlConfiguration mainConfig, @Named(" */ public void loadAndParseConfiguration() throws PluginLoadError { logger.info("Backing up and loading configuration files..."); - backupAndLoadConfiguration("config.yml", "config.yml", "config.yml", mainConfig); - String langName = mainConfig.getString("LanguageFileName"); - backupAndLoadConfiguration(langName, "lang.yml", langName, langConfig); - String guiName = serverVersion < 13 ? "gui-legacy.yml" : "gui.yml"; - backupAndLoadConfiguration(guiName, guiName, "gui.yml", guiConfig); + backupAndLoadConfiguration("config.yml", "config.yml", mainConfig); + backupAndLoadConfiguration("lang.yml", mainConfig.getString("LanguageFileName"), langConfig); + backupAndLoadConfiguration("gui.yml", "gui.yml", guiConfig); parseHeader(); parseDisabledCategories(); parseAchievements(); @@ -107,15 +105,13 @@ private Set getSectionKeys(String path) { /** * Loads and backs up a configuration file. * - * @param defaultConfigName * @param latestConfigName * @param userConfigName * @param userConfig * * @throws PluginLoadError */ - private void backupAndLoadConfiguration(String defaultConfigName, String latestConfigName, String userConfigName, - YamlConfiguration userConfig) + private void backupAndLoadConfiguration(String latestConfigName, String userConfigName, YamlConfiguration userConfig) throws PluginLoadError { File configFile = new File(plugin.getDataFolder(), userConfigName); try { @@ -131,7 +127,7 @@ private void backupAndLoadConfiguration(String defaultConfigName, String latestC try { if (!configFile.exists()) { configFile.getParentFile().mkdir(); - try (InputStream defaultConfig = plugin.getResource(defaultConfigName)) { + try (InputStream defaultConfig = plugin.getResource(userConfigName)) { Files.copy(defaultConfig, configFile.toPath()); } } @@ -184,34 +180,6 @@ private void parseDisabledCategories() throws PluginLoadError { logger.warning( "Ensure you have placed JobsReborn in your plugins folder or add JobsReborn to the DisabledCategories list in config.yml."); } - // Elytras introduced in Minecraft 1.9. - if (!disabledCategories.contains(NormalAchievements.DISTANCEGLIDING) && serverVersion < 9) { - disabledCategories.add(NormalAchievements.DISTANCEGLIDING); - logger.warning("Overriding configuration: disabling DistanceGliding category."); - logger.warning( - "Elytra are not available in your Minecraft version, please add DistanceGliding to the DisabledCategories list in config.yml."); - } - // Llamas introduced in Minecraft 1.11. - if (!disabledCategories.contains(NormalAchievements.DISTANCELLAMA) && serverVersion < 11) { - disabledCategories.add(NormalAchievements.DISTANCELLAMA); - logger.warning("Overriding configuration: disabling DistanceLlama category."); - logger.warning( - "Llamas are not available in your Minecraft version, please add DistanceLlama to the DisabledCategories list in config.yml."); - } - // Breeding event introduced in Bukkit 1.10.2. - if (!disabledCategories.contains(MultipleAchievements.BREEDING) && serverVersion < 10) { - disabledCategories.add(MultipleAchievements.BREEDING); - logger.warning("Overriding configuration: disabling Breeding category."); - logger.warning( - "The breeding event is not available in your server version, please add Breeding to the DisabledCategories list in config.yml."); - } - // Proper ProjectileHitEvent introduced in Bukkit 1.11. - if (!disabledCategories.contains(MultipleAchievements.TARGETSSHOT) && serverVersion < 11) { - disabledCategories.add(MultipleAchievements.TARGETSSHOT); - logger.warning("Overriding configuration: disabling TargetsShot category."); - logger.warning( - "The projectile hit event is not fully available in your server version, please add TargetsShot to the DisabledCategories list in config.yml."); - } // Raids introduced in 1.14. if (!disabledCategories.contains(NormalAchievements.RAIDSWON) && serverVersion < 14) { disabledCategories.add(NormalAchievements.RAIDSWON); @@ -219,27 +187,6 @@ private void parseDisabledCategories() throws PluginLoadError { logger.warning( "Raids are not available in your server version, please add RaidsWon to the DisabledCategories list in config.yml."); } - // Advancements introduced in 1.12. - if (!disabledCategories.contains(NormalAchievements.ADVANCEMENTSCOMPLETED) && serverVersion < 12) { - disabledCategories.add(NormalAchievements.ADVANCEMENTSCOMPLETED); - logger.warning("Overriding configuration: disabling Advancements category."); - logger.warning( - "Advancements are not available in your server version, please add AdvancementsCompleted to the DisabledCategories list in config.yml."); - } - // Riptides introduced in 1.13. - if (!disabledCategories.contains(NormalAchievements.RIPTIDES) && serverVersion < 13) { - disabledCategories.add(NormalAchievements.RIPTIDES); - logger.warning("Overriding configuration: disabling Riptides category."); - logger.warning( - "Riptides are not available in your server version, please add Riptides to the DisabledCategories list in config.yml."); - } - // EntityPotionEffectEvent introduced in 1.13. - if (!disabledCategories.contains(MultipleAchievements.EFFECTSHELD) && serverVersion < 13) { - disabledCategories.add(MultipleAchievements.EFFECTSHELD); - logger.warning("Overriding configuration: disabling EffectsHeld category."); - logger.warning( - "The effect event is not available in your server version, please add EffectsHeld to the DisabledCategories list in config.yml."); - } } /** diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/RewardParser.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/RewardParser.java index 8a03344be..d262ca5ac 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/RewardParser.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/config/RewardParser.java @@ -50,18 +50,16 @@ public class RewardParser { private final YamlConfiguration langConfig; private final Server server; private final MaterialHelper materialHelper; - private final int serverVersion; // Used for Vault plugin integration. private Economy economy; @Inject public RewardParser(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - AdvancedAchievements advancedAchievements, MaterialHelper materialHelper, int serverVersion) { + AdvancedAchievements advancedAchievements, MaterialHelper materialHelper) { this.mainConfig = mainConfig; this.langConfig = langConfig; this.materialHelper = materialHelper; - this.serverVersion = serverVersion; this.server = advancedAchievements.getServer(); // Try to retrieve an Economy instance from Vault. if (server.getPluginManager().isPluginEnabled("Vault")) { @@ -184,14 +182,9 @@ private Reward parseIncreaseMaxHealthReward(ConfigurationSection configSection) String chatText = ChatColor.translateAlternateColorCodes('&', StringUtils.replaceOnce(langConfig.getString("increase-max-health-reward-received"), "AMOUNT", Integer.toString(amount))); - @SuppressWarnings("deprecation") Consumer rewarder = player -> { - if (serverVersion >= 9) { - AttributeInstance playerAttribute = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); - playerAttribute.setBaseValue(playerAttribute.getBaseValue() + amount); - } else { - player.setMaxHealth(player.getMaxHealth() + amount); - } + AttributeInstance playerAttribute = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); + playerAttribute.setBaseValue(playerAttribute.getBaseValue() + amount); }; return new Reward(Collections.singletonList(listText), Collections.singletonList(chatText), rewarder); } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/db/DatabaseUpdater.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/db/DatabaseUpdater.java index 5386619b4..159fca6a2 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/db/DatabaseUpdater.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/db/DatabaseUpdater.java @@ -1,13 +1,8 @@ package com.hm.achievement.db; -import java.sql.Connection; -import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; @@ -15,12 +10,10 @@ import javax.inject.Singleton; import org.apache.commons.lang3.StringUtils; -import org.bukkit.Material; import com.hm.achievement.category.MultipleAchievements; import com.hm.achievement.category.NormalAchievements; import com.hm.achievement.exception.PluginLoadError; -import com.hm.achievement.utils.MaterialHelper; /** * Class used to update the database schema. @@ -32,26 +25,10 @@ public class DatabaseUpdater { private final Logger logger; - private final MaterialHelper materialHelper; @Inject - DatabaseUpdater(Logger logger, MaterialHelper materialHelper) { + DatabaseUpdater(Logger logger) { this.logger = logger; - this.materialHelper = materialHelper; - } - - /** - * Update the database table to use 1.13 materials rather than the old 1.12 ones. - * - * @param databaseManager - * @param size - */ - public void updateOldMaterialsToNewOnes(AbstractDatabaseManager databaseManager, int size) { - logger.info("Starting database upgrade to new Minecraft 1.13 material names, please wait..."); - updateOldMaterialsToNewOnes(databaseManager, MultipleAchievements.BREAKS, size); - updateOldMaterialsToNewOnes(databaseManager, MultipleAchievements.CRAFTS, size); - updateOldMaterialsToNewOnes(databaseManager, MultipleAchievements.PLACES, size); - logger.info("Finished database upgrade."); } /** @@ -149,97 +126,4 @@ void updateOldDBColumnSize(AbstractDatabaseManager databaseManager, MultipleAchi } } } - - /** - * Update the database table to use 1.13 materials rather than the old 1.12 ones for a given Multiple category. This - * methods performs a best effort upgrade based on the functionality provided in the Bukkit. - * - * @param databaseManager - * @param category - * @param size - */ - private void updateOldMaterialsToNewOnes(AbstractDatabaseManager databaseManager, MultipleAchievements category, - int size) { - SQLOperation operation = st -> { - String tableName = databaseManager.getPrefix() + category.toDBName(); - // Create new temporary table. - st.execute("CREATE TABLE tempTable (playername char(36)," + category.toSubcategoryDBName() + " varchar(" + size - + ")," + tableName + " INT UNSIGNED,PRIMARY KEY(playername, " + category.toSubcategoryDBName() + "))"); - try (PreparedStatement prep = databaseManager.getConnection() - .prepareStatement("INSERT INTO tempTable VALUES (?,?,?);"); - ResultSet rs = st.executeQuery("SELECT * FROM " + tableName + "")) { - List uuids = new ArrayList<>(); - List materialKeys = new ArrayList<>(); - List amounts = new ArrayList<>(); - - while (rs.next()) { - uuids.add(rs.getString(1)); - materialKeys.add(convertToNewMaterialKey(rs.getString(2))); - amounts.add(rs.getInt(3)); - } - - // Populate new table with contents of the old one and material strings. Batch the insert requests. - for (int i = 0; i < uuids.size(); ++i) { - prep.setString(1, uuids.get(i)); - prep.setString(2, materialKeys.get(i)); - prep.setInt(3, amounts.get(i)); - prep.addBatch(); - } - prep.executeBatch(); - // Delete old table. - st.execute("DROP TABLE " + tableName); - // Rename new table to old one. - st.execute("ALTER TABLE tempTable RENAME TO " + tableName); - } - }; - try { - doInTransaction(databaseManager, operation); - } catch (SQLException e) { - logger.log(Level.SEVERE, "Database error while updating old material names to new Minecraft 1.13 ones:", e); - } - } - - /** - * Converts a material key containing pre-1.13 materials (e.g. "workbench|explosive_minecart") to an equivalent key - * with 1.13 materials (e.g. "crafting_table|tnt_minecart"). - * - * @param oldMaterialKey - * @return a key with 1.13 material names. - */ - private String convertToNewMaterialKey(String oldMaterialKey) { - List newMaterials = new ArrayList<>(); - for (String oldMaterial : StringUtils.split(oldMaterialKey, '|')) { - Optional material = materialHelper.matchMaterial(StringUtils.substringBefore(oldMaterialKey, ":"), - "the database (" + oldMaterialKey + ")"); - if (material.isPresent()) { - String metadata = StringUtils.substringAfter(oldMaterialKey, ":"); - newMaterials.add(material.get().name().toLowerCase() + (metadata.isEmpty() ? "" : ":" + metadata)); - } else { - newMaterials.add(oldMaterial); - } - } - return StringUtils.join(newMaterials, "|"); - } - - private void doInTransaction(AbstractDatabaseManager databaseManager, SQLOperation operation) throws SQLException { - Connection connection = databaseManager.getConnection(); - try (Statement st = connection.createStatement()) { - // Prevent from doing any commits before entire transaction is ready. - connection.setAutoCommit(false); - operation.perform(st); - connection.commit(); - } catch (SQLException e) { - connection.rollback(); - throw e; - } finally { - connection.setAutoCommit(true); - } - } - - @FunctionalInterface - private interface SQLOperation { - - void perform(Statement statement) throws SQLException; - - } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/gui/GUIItems.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/gui/GUIItems.java index e4f768db0..b3fe55b2c 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/gui/GUIItems.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/gui/GUIItems.java @@ -55,7 +55,6 @@ public class GUIItems implements Reloadable { private final YamlConfiguration langConfig; private final YamlConfiguration guiConfig; private final MaterialHelper materialHelper; - private final int serverVersion; private final AchievementMap achievementMap; private String configListAchievementFormat; @@ -63,17 +62,14 @@ public class GUIItems implements Reloadable { @Inject public GUIItems(@Named("main") YamlConfiguration mainConfig, @Named("lang") YamlConfiguration langConfig, - @Named("gui") YamlConfiguration guiConfig, MaterialHelper materialHelper, int serverVersion, - AchievementMap achievementMap) { + @Named("gui") YamlConfiguration guiConfig, MaterialHelper materialHelper, AchievementMap achievementMap) { this.mainConfig = mainConfig; this.langConfig = langConfig; this.guiConfig = guiConfig; this.materialHelper = materialHelper; - this.serverVersion = serverVersion; this.achievementMap = achievementMap; } - @SuppressWarnings("deprecation") @Override public void extractConfigurationParameters() throws PluginLoadError { configListAchievementFormat = "&8" + mainConfig.getString("ListAchievementFormat"); @@ -108,15 +104,9 @@ public void extractConfigurationParameters() throws PluginLoadError { orderedAchievementItems.put(new OrderedCategory(orderedCategories.indexOf(categoryName), CommandAchievements.COMMANDS), itemStack); - if (serverVersion >= 13) { - achievementNotStartedDefault = new ItemStack(Material.RED_TERRACOTTA, 1); - achievementStartedDefault = new ItemStack(Material.YELLOW_TERRACOTTA, 1); - achievementReceivedDefault = new ItemStack(Material.LIME_TERRACOTTA, 1); - } else { - achievementNotStartedDefault = new ItemStack(Material.valueOf("STAINED_CLAY"), 1, (short) 14); - achievementStartedDefault = new ItemStack(Material.valueOf("STAINED_CLAY"), 1, (short) 4); - achievementReceivedDefault = new ItemStack(Material.valueOf("STAINED_CLAY"), 1, (short) 5); - } + achievementNotStartedDefault = new ItemStack(Material.RED_TERRACOTTA, 1); + achievementStartedDefault = new ItemStack(Material.YELLOW_TERRACOTTA, 1); + achievementReceivedDefault = new ItemStack(Material.LIME_TERRACOTTA, 1); for (String type : guiConfig.getConfigurationSection("AchievementNotStarted").getKeys(false)) { achievementNotStarted.put(type, createItemStack("AchievementNotStarted." + type)); } @@ -139,13 +129,11 @@ public void extractConfigurationParameters() throws PluginLoadError { * @param categoryName * @return the item for the category */ - @SuppressWarnings("deprecation") private ItemStack createItemStack(String categoryName) { String path = categoryName + ".Item"; Material material = materialHelper.matchMaterial(guiConfig.getString(path, null), Material.BEDROCK, "gui.yml (" + path + ")"); - short metadata = (short) guiConfig.getInt(categoryName + ".Metadata", 0); - return new ItemStack(material, 1, metadata); + return new ItemStack(material, 1); } /** diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/lifecycle/PluginLoader.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/lifecycle/PluginLoader.java index d77ea59dd..9d4eee2ba 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/lifecycle/PluginLoader.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/lifecycle/PluginLoader.java @@ -268,9 +268,8 @@ private void registerPermissions() { for (MultipleAchievements category : MultipleAchievements.values()) { Permission categoryParent = new Permission(category.toPermName(), PermissionDefault.TRUE); for (String section : achievementMap.getSubcategoriesForCategory(category)) { - // Permission ignores metadata (eg. sand:1) for Breaks, Places and Crafts categories and don't take - // spaces into account. - section = StringUtils.deleteWhitespace(StringUtils.substringBefore(section, ":")); + // Permissions don't take spaces into account. + section = StringUtils.deleteWhitespace(section); for (String groupElement : StringUtils.split(section, '|')) { String permissionNode = category.toChildPermName(groupElement); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/JoinListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/JoinListener.java index 1a2531efc..73cdffb33 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/JoinListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/JoinListener.java @@ -19,8 +19,8 @@ import com.hm.achievement.db.CacheManager; /** - * Listener class to deal with advancements for Minecraft 1.12+. This class uses delays processing of tasks to avoid - * spamming a barely connected player. + * Listener class to deal with advancements. This class uses delays processing of tasks to avoid spamming a barely + * connected player. * * @author Pyves * @@ -28,13 +28,11 @@ @Singleton public class JoinListener implements Listener { - private final int serverVersion; private final AdvancedAchievements advancedAchievements; private final CacheManager cacheManager; @Inject - public JoinListener(int serverVersion, AdvancedAchievements advancedAchievements, CacheManager cacheManager) { - this.serverVersion = serverVersion; + public JoinListener(AdvancedAchievements advancedAchievements, CacheManager cacheManager) { this.advancedAchievements = advancedAchievements; this.cacheManager = cacheManager; } @@ -42,9 +40,7 @@ public JoinListener(int serverVersion, AdvancedAchievements advancedAchievements @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerJoin(PlayerJoinEvent event) { scheduleReceivedCacheLoad(event.getPlayer()); - if (serverVersion >= 12) { - scheduleAwardAdvancements(event.getPlayer()); - } + scheduleAwardAdvancements(event.getPlayer()); } /** diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/PlayerAdvancedAchievementListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/PlayerAdvancedAchievementListener.java index f39960829..a05ce1b5c 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/PlayerAdvancedAchievementListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/PlayerAdvancedAchievementListener.java @@ -21,7 +21,11 @@ import org.bukkit.Location; import org.bukkit.NamespacedKey; import org.bukkit.Particle; +import org.bukkit.Sound; import org.bukkit.advancement.Advancement; +import org.bukkit.boss.BarColor; +import org.bukkit.boss.BarStyle; +import org.bukkit.boss.BossBar; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Firework; import org.bukkit.entity.Player; @@ -32,7 +36,6 @@ import org.bukkit.inventory.meta.FireworkMeta; import org.bukkit.metadata.FixedMetadataValue; -import com.darkblade12.particleeffect.ParticleEffect; import com.hm.achievement.AdvancedAchievements; import com.hm.achievement.advancement.AchievementAdvancement; import com.hm.achievement.advancement.AdvancementManager; @@ -44,13 +47,14 @@ import com.hm.achievement.domain.Achievement; import com.hm.achievement.domain.Reward; import com.hm.achievement.lifecycle.Reloadable; -import com.hm.achievement.utils.BossBarHelper; import com.hm.achievement.utils.ColorHelper; import com.hm.achievement.utils.FancyMessageSender; import com.hm.achievement.utils.PlayerAdvancedAchievementEvent; -import com.hm.achievement.utils.SoundPlayer; import com.hm.achievement.utils.StringHelper; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; + /** * Listener class to deal with achievement receptions: rewards, display and database operations. * @@ -83,7 +87,6 @@ public class PlayerAdvancedAchievementListener implements Listener, Reloadable { private final YamlConfiguration mainConfig; private final YamlConfiguration langConfig; - private final int serverVersion; private final Logger logger; private final StringBuilder pluginHeader; private final CacheManager cacheManager; @@ -92,13 +95,13 @@ public class PlayerAdvancedAchievementListener implements Listener, Reloadable { private final AchievementMap achievementMap; private final AbstractDatabaseManager databaseManager; private final ToggleCommand toggleCommand; - private final SoundPlayer soundPlayer; + private final FancyMessageSender fancyMessageSender; private String configFireworkStyle; private boolean configFirework; private Color configColor; private Color mixColor; - private String barColor; + private BarColor barColor; private boolean configSimplifiedReception; private boolean configTitleScreen; private boolean configNotifyOtherPlayers; @@ -114,13 +117,12 @@ public class PlayerAdvancedAchievementListener implements Listener, Reloadable { @Inject public PlayerAdvancedAchievementListener(@Named("main") YamlConfiguration mainConfig, - @Named("lang") YamlConfiguration langConfig, int serverVersion, Logger logger, StringBuilder pluginHeader, + @Named("lang") YamlConfiguration langConfig, Logger logger, StringBuilder pluginHeader, CacheManager cacheManager, AdvancedAchievements advancedAchievements, RewardParser rewardParser, AchievementMap achievementMap, AbstractDatabaseManager databaseManager, ToggleCommand toggleCommand, - SoundPlayer soundPlayer) { + FancyMessageSender fancyMessageSender) { this.mainConfig = mainConfig; this.langConfig = langConfig; - this.serverVersion = serverVersion; this.logger = logger; this.pluginHeader = pluginHeader; this.cacheManager = cacheManager; @@ -129,7 +131,7 @@ public PlayerAdvancedAchievementListener(@Named("main") YamlConfiguration mainCo this.achievementMap = achievementMap; this.databaseManager = databaseManager; this.toggleCommand = toggleCommand; - this.soundPlayer = soundPlayer; + this.fancyMessageSender = fancyMessageSender; } @Override @@ -143,26 +145,10 @@ public void extractConfigurationParameters() { configFirework = mainConfig.getBoolean("Firework"); configSimplifiedReception = mainConfig.getBoolean("SimplifiedReception"); configTitleScreen = mainConfig.getBoolean("TitleScreen"); - // Title screens introduced in Minecraft 1.8. Automatically relevant parameter for older versions. - if (configTitleScreen && serverVersion < 8) { - configTitleScreen = false; - } configNotifyOtherPlayers = mainConfig.getBoolean("NotifyOtherPlayers"); configActionBarNotify = mainConfig.getBoolean("ActionBarNotify"); - // Action bars introduced in Minecraft 1.8. Automatically relevant parameter for older versions. - if (configActionBarNotify && serverVersion < 8) { - configActionBarNotify = false; - } configHoverableReceiverChatText = mainConfig.getBoolean("HoverableReceiverChatText"); - // Hoverable chat messages introduced in Minecraft 1.8. Automatically relevant parameter for older versions. - if (configHoverableReceiverChatText && serverVersion < 8) { - configHoverableReceiverChatText = false; - } configBossBarProgress = mainConfig.getBoolean("BossBarProgress"); - // Boss bars introduced in Minecraft 1.9. Automatically relevant parameter for older versions. - if (configBossBarProgress && serverVersion < 9) { - configBossBarProgress = false; - } configReceiverChatMessages = mainConfig.getBoolean("ReceiverChatMessages"); ChatColor chatColor = ChatColor.getByChar(mainConfig.getString("Color")); configColor = ColorHelper.convertChatColorToColor(chatColor); @@ -189,13 +175,11 @@ public void onPlayerAdvancedAchievementReception(PlayerAdvancedAchievementEvent if (!cacheManager.hasPlayerAchievement(player.getUniqueId(), achievement.getName())) { cacheManager.registerNewlyReceivedAchievement(player.getUniqueId(), achievement.getName()); - if (serverVersion >= 12) { - Advancement advancement = Bukkit.getAdvancement(new NamespacedKey(advancedAchievements, - AdvancementManager.getKey(achievement.getName()))); - // Matching advancement might not exist if user has not called /aach generate. - if (advancement != null) { - player.getAdvancementProgress(advancement).awardCriteria(AchievementAdvancement.CRITERIA_NAME); - } + Advancement advancement = Bukkit.getAdvancement(new NamespacedKey(advancedAchievements, + AdvancementManager.getKey(achievement.getName()))); + // Matching advancement might not exist if user has not called /aach generate. + if (advancement != null) { + player.getAdvancementProgress(advancement).awardCriteria(AchievementAdvancement.CRITERIA_NAME); } } databaseManager.registerAchievement(player.getUniqueId(), achievement.getName(), System.currentTimeMillis()); @@ -241,7 +225,7 @@ private void displayAchievement(Player player, Achievement achievement) { } if (configTitleScreen || player.hasPermission("achievement.config.title.screen")) { - displayTitle(player, nameToShowUser, messageToShowUser); + player.sendTitle(nameToShowUser, messageToShowUser, 10, 70, 20); } if (configBossBarProgress) { @@ -249,7 +233,10 @@ private void displayAchievement(Player player, Achievement achievement) { int totalAmount = achievementMap.getAll().size(); double progress = ((double) receivedAmount) / totalAmount; String message = StringUtils.replaceOnce(langBossBarProgress, "AMOUNT", receivedAmount + "/" + totalAmount); - BossBarHelper.displayBossBar(advancedAchievements, player, progress, barColor, message); + BossBar bossBar = Bukkit.getServer().createBossBar(message, barColor, BarStyle.SOLID); + bossBar.setProgress(progress); + Bukkit.getScheduler().scheduleSyncDelayedTask(advancedAchievements, () -> bossBar.addPlayer(player), 110); + Bukkit.getScheduler().scheduleSyncDelayedTask(advancedAchievements, () -> bossBar.removePlayer(player), 240); } } @@ -275,13 +262,8 @@ private void displayReceiverMessages(Player player, String nameToShowUser, Strin if (configHoverableReceiverChatText) { StringBuilder hover = new StringBuilder(messageToShowUser + "\n"); chatMessages.forEach(t -> hover.append(ChatColor.translateAlternateColorCodes('&', t)).append("\n")); - try { - FancyMessageSender.sendHoverableMessage(player, message, hover.substring(0, hover.length() - 1), "white"); - return; - } catch (Exception e) { - logger.warning( - "Failed to display hoverable message for achievement reception. Displaying standard messages instead."); - } + fancyMessageSender.sendHoverableMessage(player, message, hover.substring(0, hover.length() - 1), "white"); + return; } player.sendMessage(message); player.sendMessage(pluginHeader.toString() + ChatColor.WHITE + messageToShowUser); @@ -301,31 +283,12 @@ private void displayNotification(Player receiver, String nameToShowUser, Player new String[] { receiver.getName(), nameToShowUser }) : StringUtils.replaceOnce(langAchievementReceived, "PLAYER", receiver.getName()) + nameToShowUser; if (configActionBarNotify) { - try { - FancyMessageSender.sendActionBarMessage(otherPlayer, "&o" + message); - } catch (Exception e) { - logger.warning("Failed to display action bar message for achievement reception notification."); - } + otherPlayer.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("&o" + message)); } else { otherPlayer.sendMessage(pluginHeader + message); } } - /** - * Displays title when receiving an achievement. - * - * @param player - * @param nameToShowUser - * @param messageToShowUser - */ - private void displayTitle(Player player, String nameToShowUser, String messageToShowUser) { - try { - FancyMessageSender.sendTitle(player, nameToShowUser, messageToShowUser); - } catch (Exception e) { - logger.warning("Failed to display achievement screen title."); - } - } - /** * Launches firework when receiving an achievement. * @@ -368,12 +331,8 @@ private Type getFireworkType() { * @param player */ private void displaySimplifiedReception(Player player) { - soundPlayer.play(player, "ENTITY_PLAYER_LEVELUP", "ENTITY_PLAYER_LEVELUP", "LEVEL_UP"); - if (serverVersion >= 9) { - player.spawnParticle(Particle.FIREWORKS_SPARK, player.getLocation(), 500, 0, 3, 0, 0.1f); - } else { - ParticleEffect.FIREWORKS_SPARK.display(0, 3, 0, 0.1f, 500, player.getLocation(), 1); - } + player.playSound(player.getLocation(), Sound.valueOf("ENTITY_PLAYER_LEVELUP"), 1, 0.7f); + player.spawnParticle(Particle.FIREWORKS_SPARK, player.getLocation(), 500, 0, 3, 0, 0.1f); } /** diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/TeleportListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/TeleportListener.java index cc8636cb4..f814c1ef3 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/TeleportListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/TeleportListener.java @@ -1,8 +1,5 @@ package com.hm.achievement.listener; -import java.util.Collections; -import java.util.List; - import javax.inject.Inject; import org.bukkit.entity.Entity; @@ -26,12 +23,10 @@ public class TeleportListener implements Listener { private final AchieveDistanceRunnable distanceRunnable; - private final int serverVersion; @Inject - public TeleportListener(AchieveDistanceRunnable distanceRunnable, int serverVersion) { + public TeleportListener(AchieveDistanceRunnable distanceRunnable) { this.distanceRunnable = distanceRunnable; - this.serverVersion = serverVersion; } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -56,10 +51,7 @@ public void onPlayerTeleport(PlayerTeleportEvent event) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityTeleport(EntityTeleportEvent event) { - @SuppressWarnings("deprecation") - List passengers = serverVersion < 11 ? Collections.singletonList(event.getEntity().getPassenger()) - : event.getEntity().getPassengers(); - for (Entity passenger : passengers) { + for (Entity passenger : event.getEntity().getPassengers()) { if (passenger instanceof Player) { // Update location of player if they teleport somewhere else. distanceRunnable.updateLocation(((Player) passenger).getUniqueId(), event.getTo()); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractListener.java index 552010a52..d67547d58 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractListener.java @@ -25,9 +25,9 @@ public abstract class AbstractListener extends StatisticIncreaseHandler implemen final Category category; List subcategories; - AbstractListener(Category category, YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + AbstractListener(Category category, YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(mainConfig, serverVersion, achievementMap, cacheManager); + super(mainConfig, achievementMap, cacheManager); this.category = category; } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractRateLimitedListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractRateLimitedListener.java index de3f514da..c6f61d62d 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractRateLimitedListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AbstractRateLimitedListener.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import java.util.logging.Logger; import org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; @@ -18,7 +17,9 @@ import com.hm.achievement.db.CacheManager; import com.hm.achievement.domain.Achievement; import com.hm.achievement.lifecycle.Cleanable; -import com.hm.achievement.utils.FancyMessageSender; + +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; /** * Abstract class in charge of factoring out common functionality for the listener classes with cooldown maps. @@ -30,7 +31,6 @@ public class AbstractRateLimitedListener extends AbstractListener implements Cle private final Map> slotsToPlayersLastActionTimes = new HashMap<>(); private final AdvancedAchievements advancedAchievements; private final YamlConfiguration langConfig; - private final Logger logger; private int categoryCooldown; private long hardestCategoryThreshold; @@ -38,13 +38,11 @@ public class AbstractRateLimitedListener extends AbstractListener implements Cle private String langStatisticCooldown; - AbstractRateLimitedListener(Category category, YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - YamlConfiguration langConfig, Logger logger) { - super(category, mainConfig, serverVersion, achievementMap, cacheManager); + AbstractRateLimitedListener(Category category, YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager, AdvancedAchievements advancedAchievements, YamlConfiguration langConfig) { + super(category, mainConfig, achievementMap, cacheManager); this.advancedAchievements = advancedAchievements; this.langConfig = langConfig; - this.logger = logger; } @Override @@ -56,11 +54,6 @@ public void extractConfigurationParameters() { : achievements.get(achievements.size() - 1).getThreshold(); categoryCooldown = mainConfig.getInt("StatisticCooldown." + category) * 1000; configCooldownActionBar = mainConfig.getBoolean("CooldownActionBar"); - // Action bars introduced in Minecraft 1.8. Automatically disable for older versions. - if (configCooldownActionBar && serverVersion < 8) { - configCooldownActionBar = false; - } - langStatisticCooldown = langConfig.getString("statistic-cooldown"); } @@ -127,10 +120,6 @@ private boolean isInCooldownPeriod(Player player, int slotNumber) { private void displayActionBarMessage(Player player, long timeToWait) { String timeWithOneDecimal = String.format("%.1f", (double) timeToWait / 1000); String message = "&o" + StringUtils.replaceOnce(langStatisticCooldown, "TIME", timeWithOneDecimal); - try { - FancyMessageSender.sendActionBarMessage(player, message); - } catch (Exception e) { - logger.warning("Failed to display action bar message for cooldown."); - } + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message)); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AdvancementsCompletedListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AdvancementsCompletedListener.java index f3b9409da..39750d6bc 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AdvancementsCompletedListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AdvancementsCompletedListener.java @@ -23,9 +23,9 @@ public class AdvancementsCompletedListener extends AbstractListener { @Inject - public AdvancementsCompletedListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ADVANCEMENTSCOMPLETED, mainConfig, serverVersion, achievementMap, cacheManager); + public AdvancementsCompletedListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(NormalAchievements.ADVANCEMENTSCOMPLETED, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AnvilsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AnvilsListener.java index 5dcc4570b..44f423a7d 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AnvilsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/AnvilsListener.java @@ -29,9 +29,9 @@ public class AnvilsListener extends AbstractListener { @Inject - public AnvilsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public AnvilsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ANVILS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.ANVILS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ArrowsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ArrowsListener.java index 6e265707b..7e52e6fe5 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ArrowsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ArrowsListener.java @@ -24,9 +24,9 @@ public class ArrowsListener extends AbstractListener { @Inject - public ArrowsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public ArrowsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ARROWS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.ARROWS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BedsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BedsListener.java index dcc494734..9a9987011 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BedsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BedsListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -26,11 +24,10 @@ public class BedsListener extends AbstractRateLimitedListener { @Inject - public BedsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public BedsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.BEDS, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.BEDS, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BooksEditedListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BooksEditedListener.java index a2106aeaf..0c13f2762 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BooksEditedListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BooksEditedListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -26,11 +24,10 @@ public class BooksEditedListener extends AbstractRateLimitedListener { @Inject - public BooksEditedListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public BooksEditedListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.BOOKSEDITED, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.BOOKSEDITED, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreaksListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreaksListener.java index 09bf9de82..fc2b6d38b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreaksListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreaksListener.java @@ -15,7 +15,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.inventory.ItemStack; import com.hm.achievement.category.MultipleAchievements; import com.hm.achievement.config.AchievementMap; @@ -34,9 +33,9 @@ public class BreaksListener extends AbstractListener { private boolean disableSilkTouchOreBreaks; @Inject - public BreaksListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public BreaksListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.BREAKS, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.BREAKS, mainConfig, achievementMap, cacheManager); } @Override @@ -47,14 +46,13 @@ public void extractConfigurationParameters() { disableSilkTouchOreBreaks = mainConfig.getBoolean("DisableSilkTouchOreBreaks"); } - @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onBlockBreak(BlockBreakEvent event) { Player player = event.getPlayer(); Block block = event.getBlock(); if (disableSilkTouchBreaks || disableSilkTouchOreBreaks) { - ItemStack breakingTool = serverVersion >= 9 ? player.getInventory().getItemInMainHand() : player.getItemInHand(); - if (breakingTool.containsEnchantment(SILK_TOUCH) && (disableSilkTouchBreaks || isOre(block.getType().name()))) { + if (player.getInventory().getItemInMainHand().containsEnchantment(SILK_TOUCH) + && (disableSilkTouchBreaks || isOre(block.getType().name()))) { return; } } @@ -65,7 +63,6 @@ public void onBlockBreak(BlockBreakEvent event) { } Set subcategories = new HashSet<>(); - addMatchingSubcategories(subcategories, blockName + ':' + block.getState().getData().toItemStack().getDurability()); addMatchingSubcategories(subcategories, blockName); updateStatisticAndAwardAchievementsIfAvailable(player, subcategories, 1); } @@ -85,9 +82,6 @@ private boolean isOre(String materialName) { case "NETHER_GOLD_ORE": case "NETHER_QUARTZ_ORE": case "REDSTONE_ORE": - // Pre Minecraft 1.13: - case "QUARTZ_ORE": - case "GLOWING_REDSTONE_ORE": return true; default: return false; diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreedingListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreedingListener.java index 66586f7f5..7b398ed77 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreedingListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BreedingListener.java @@ -24,9 +24,9 @@ public class BreedingListener extends AbstractListener { @Inject - public BreedingListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public BreedingListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.BREEDING, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.BREEDING, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BrewingListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BrewingListener.java index ac7b5bc09..3735a3632 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BrewingListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/BrewingListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -34,17 +32,13 @@ public class BrewingListener extends AbstractRateLimitedListener { private final MaterialHelper materialHelper; - private final InventoryHelper inventoryHelper; @Inject - public BrewingListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public BrewingListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger, MaterialHelper materialHelper, - InventoryHelper inventoryHelper) { - super(NormalAchievements.BREWING, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig, MaterialHelper materialHelper) { + super(NormalAchievements.BREWING, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); this.materialHelper = materialHelper; - this.inventoryHelper = inventoryHelper; } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -59,7 +53,7 @@ public void onInventoryClick(InventoryClickEvent event) { Player player = (Player) event.getWhoClicked(); int eventAmount = item.getAmount(); if (event.isShiftClick()) { - eventAmount = Math.min(eventAmount, inventoryHelper.getAvailableSpace(player, item)); + eventAmount = Math.min(eventAmount, InventoryHelper.getAvailableSpace(player, item)); if (eventAmount == 0) { return; } @@ -75,7 +69,6 @@ public void onInventoryClick(InventoryClickEvent event) { * @return true if for any brewable potion */ private boolean isBrewablePotion(ItemStack item) { - return item != null && - (materialHelper.isAnyPotionButWater(item) || serverVersion >= 9 && item.getType() == Material.SPLASH_POTION); + return item != null && (materialHelper.isAnyPotionButWater(item) || item.getType() == Material.SPLASH_POTION); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConnectionsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConnectionsListener.java index f8a38e9e3..c31bbbc75 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConnectionsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConnectionsListener.java @@ -34,9 +34,9 @@ public class ConnectionsListener extends AbstractListener { private final AbstractDatabaseManager databaseManager; @Inject - public ConnectionsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public ConnectionsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, AbstractDatabaseManager databaseManager) { - super(NormalAchievements.CONNECTIONS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.CONNECTIONS, mainConfig, achievementMap, cacheManager); this.advancedAchievements = advancedAchievements; this.databaseManager = databaseManager; } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConsumedPotionsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConsumedPotionsListener.java index e5cabae45..7bf7490b8 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConsumedPotionsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ConsumedPotionsListener.java @@ -26,9 +26,9 @@ public class ConsumedPotionsListener extends AbstractListener { private final MaterialHelper materialHelper; @Inject - public ConsumedPotionsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager, MaterialHelper materialHelper) { - super(NormalAchievements.CONSUMEDPOTIONS, mainConfig, serverVersion, achievementMap, cacheManager); + public ConsumedPotionsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager, MaterialHelper materialHelper) { + super(NormalAchievements.CONSUMEDPOTIONS, mainConfig, achievementMap, cacheManager); this.materialHelper = materialHelper; } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/CraftsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/CraftsListener.java index 9e6583285..e65fbd99f 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/CraftsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/CraftsListener.java @@ -36,16 +36,12 @@ @Singleton public class CraftsListener extends AbstractListener { - private final InventoryHelper inventoryHelper; - @Inject - public CraftsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, - CacheManager cacheManager, InventoryHelper inventoryHelper) { - super(MultipleAchievements.CRAFTS, mainConfig, serverVersion, achievementMap, cacheManager); - this.inventoryHelper = inventoryHelper; + public CraftsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(MultipleAchievements.CRAFTS, mainConfig, achievementMap, cacheManager); } - @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onCraftItem(CraftItemEvent event) { if (!(event.getWhoClicked() instanceof Player) || event.getAction() == InventoryAction.NOTHING @@ -62,7 +58,6 @@ public void onCraftItem(CraftItemEvent event) { } Set subcategories = new HashSet<>(); - addMatchingSubcategories(subcategories, craftName + ':' + item.getDurability()); addMatchingSubcategories(subcategories, craftName); int eventAmount = item.getAmount(); @@ -78,7 +73,7 @@ public void onCraftItem(CraftItemEvent event) { } } eventAmount *= maxAmount; - eventAmount = Math.min(eventAmount, inventoryHelper.getAvailableSpace(player, item)); + eventAmount = Math.min(eventAmount, InventoryHelper.getAvailableSpace(player, item)); if (eventAmount == 0) { return; } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DeathsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DeathsListener.java index 66a3be378..1274b6a54 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DeathsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DeathsListener.java @@ -23,9 +23,9 @@ public class DeathsListener extends AbstractListener { @Inject - public DeathsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public DeathsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.DEATHS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.DEATHS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DropsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DropsListener.java index ce394d343..b2bdf66f4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DropsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/DropsListener.java @@ -23,9 +23,9 @@ public class DropsListener extends AbstractListener { @Inject - public DropsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public DropsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.DROPS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.DROPS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EatenItemsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EatenItemsListener.java index 273346dfe..05dbb1549 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EatenItemsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EatenItemsListener.java @@ -24,9 +24,9 @@ public class EatenItemsListener extends AbstractListener { @Inject - public EatenItemsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public EatenItemsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.EATENITEMS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.EATENITEMS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EffectsHeldListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EffectsHeldListener.java index 4f874bfb6..1a9843929 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EffectsHeldListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EffectsHeldListener.java @@ -21,9 +21,9 @@ public class EffectsHeldListener extends AbstractListener { @Inject - public EffectsHeldListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public EffectsHeldListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.EFFECTSHELD, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.EFFECTSHELD, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EggsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EggsListener.java index cc1fc0c24..fb557fad3 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EggsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EggsListener.java @@ -23,9 +23,9 @@ public class EggsListener extends AbstractListener { @Inject - public EggsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public EggsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.EGGS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.EGGS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnchantmentsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnchantmentsListener.java index fa232861b..215c7a1fa 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnchantmentsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnchantmentsListener.java @@ -23,9 +23,9 @@ public class EnchantmentsListener extends AbstractListener { @Inject - public EnchantmentsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ENCHANTMENTS, mainConfig, serverVersion, achievementMap, cacheManager); + public EnchantmentsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(NormalAchievements.ENCHANTMENTS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnderPearlsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnderPearlsListener.java index e262b4810..9bb6b8c21 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnderPearlsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/EnderPearlsListener.java @@ -23,9 +23,9 @@ public class EnderPearlsListener extends AbstractListener { @Inject - public EnderPearlsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public EnderPearlsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ENDERPEARLS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.ENDERPEARLS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingLegacyListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingLegacyListener.java deleted file mode 100644 index 9c543ef9c..000000000 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingLegacyListener.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.hm.achievement.listener.statistics; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.event.Event.Result; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - -import com.hm.achievement.category.NormalAchievements; -import com.hm.achievement.config.AchievementMap; -import com.hm.achievement.db.CacheManager; - -/** - * Listener class to deal with Fertilising achievements for Minecraft 1.7.9-1.12.2. - * - * @author Pyves - * - */ -@Singleton -public class FertilisingLegacyListener extends AbstractListener { - - @Inject - public FertilisingLegacyListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.FERTILISING, mainConfig, serverVersion, achievementMap, cacheManager); - } - - @EventHandler(priority = EventPriority.MONITOR) // Do NOT set ignoreCancelled to true, deprecated for this event. - public void onPlayerInteract(PlayerInteractEvent event) { - if (event.useItemInHand() == Result.DENY || event.getAction() != Action.RIGHT_CLICK_BLOCK - || !isBoneMeal(event.getItem()) || !canBeFertilised(event.getClickedBlock())) { - return; - } - - updateStatisticAndAwardAchievementsIfAvailable(event.getPlayer(), 1); - } - - /** - * Determines whether the used item is bone meal. - * - * @param itemStack - * @return true if the item is bone meal, false otherwise - */ - @SuppressWarnings("deprecation") - private boolean isBoneMeal(ItemStack itemStack) { - return itemStack != null && itemStack.isSimilar(new ItemStack(Material.valueOf("INK_SACK"), 1, (short) 15)); - } - - /** - * Determines whether a material can be fertilised on the land. - * - * @param block - * - * @return true if the block can be fertilised, false otherwise - */ - @SuppressWarnings("deprecation") - private boolean canBeFertilised(Block block) { - short durability = block.getState().getData().toItemStack(0).getDurability(); - Material material = block.getType(); - if ("DOUBLE_PLANT".equals(material.name())) { - if (durability == 10) { - // Upper part of double plant. We must look at the lower part to get the double plant type. - durability = block.getRelative(BlockFace.DOWN).getState().getData().toItemStack(0).getDurability(); - } - // Fertilisation does not work on double tallgrass and large fern. - return durability != 2 && durability != 3; - } - return material == Material.GRASS || material.name().endsWith("SAPLING") - || material == Material.POTATO && durability < 7 - || material == Material.CARROT && durability < 7 - || "CROPS".equals(material.name()) && durability < 7 - || material == Material.PUMPKIN_STEM && durability < 7 - || material == Material.MELON_STEM && durability < 7 || material == Material.BROWN_MUSHROOM - || material == Material.RED_MUSHROOM || material == Material.COCOA && durability < 9 - || serverVersion >= 9 && "BEETROOT_BLOCK".equals(material.name()) && durability < 3; - } - -} diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingListener.java index 4e6581dd9..c8ef3a7f9 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FertilisingListener.java @@ -14,7 +14,7 @@ import com.hm.achievement.db.CacheManager; /** - * Listener class to deal with Fertilising achievements for Minecraft 1.13+. + * Listener class to deal with Fertilising achievements. * * @author Pyves * @@ -23,9 +23,9 @@ public class FertilisingListener extends AbstractListener { @Inject - public FertilisingListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public FertilisingListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.FERTILISING, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.FERTILISING, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FireworksListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FireworksListener.java index ad2219ece..e3c723387 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FireworksListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FireworksListener.java @@ -33,11 +33,13 @@ public class FireworksListener extends AbstractListener { private Set forbiddenFireworkBlocks; private Set forbiddenFireworkBlocksWhenNotSneaking; + private final int serverVersion; @Inject public FireworksListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.FIREWORKS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.FIREWORKS, mainConfig, achievementMap, cacheManager); + this.serverVersion = serverVersion; } @Override @@ -61,7 +63,7 @@ public void onPlayerInteract(PlayerInteractEvent event) { } Player player = event.getPlayer(); - if (!isFirework(event.getMaterial()) + if (event.getMaterial() != Material.FIREWORK_ROCKET || !canAccommodateFireworkLaunch(event.getClickedBlock(), player, event.getAction())) { return; } @@ -69,16 +71,6 @@ public void onPlayerInteract(PlayerInteractEvent event) { updateStatisticAndAwardAchievementsIfAvailable(player, 1); } - /** - * Determines whether the used material is a firework. - * - * @param material - * @return true if the material is a firework, false otherwise - */ - private boolean isFirework(Material material) { - return serverVersion >= 13 ? material == Material.FIREWORK_ROCKET : "FIREWORK".equals(material.name()); - } - /** * Determines whether a firework can be launched when interacting with this block. * @@ -89,7 +81,7 @@ private boolean isFirework(Material material) { */ private boolean canAccommodateFireworkLaunch(Block clickedBlock, Player player, Action action) { // Players can launch fireworks without interacting with a block only if they're gliding. - if (serverVersion >= 9 && player.isGliding() && action == Action.RIGHT_CLICK_AIR) { + if (player.isGliding() && action == Action.RIGHT_CLICK_AIR) { return true; } else if (action != Action.RIGHT_CLICK_BLOCK) { return false; diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FishListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FishListener.java index aaf7014d7..57053296f 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FishListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/FishListener.java @@ -29,9 +29,9 @@ public class FishListener extends AbstractListener { private Set fishableFish; @Inject - public FishListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public FishListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.FISH, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.FISH, mainConfig, achievementMap, cacheManager); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/HoePlowingListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/HoePlowingListener.java index 18b2009ff..9caa33f76 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/HoePlowingListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/HoePlowingListener.java @@ -32,9 +32,9 @@ public class HoePlowingListener extends AbstractListener { private Set hoePlowableBlocks; @Inject - public HoePlowingListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public HoePlowingListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.HOEPLOWING, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.HOEPLOWING, mainConfig, achievementMap, cacheManager); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ItemBreaksListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ItemBreaksListener.java index 7014752c5..52270fe1d 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ItemBreaksListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ItemBreaksListener.java @@ -23,9 +23,9 @@ public class ItemBreaksListener extends AbstractListener { @Inject - public ItemBreaksListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public ItemBreaksListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.ITEMBREAKS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.ITEMBREAKS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/JobsRebornListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/JobsRebornListener.java index b5aa11004..e70bb3db8 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/JobsRebornListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/JobsRebornListener.java @@ -25,9 +25,9 @@ public class JobsRebornListener extends AbstractListener { @Inject - public JobsRebornListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public JobsRebornListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.JOBSREBORN, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.JOBSREBORN, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/KillsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/KillsListener.java index 090576ae3..05fa250e6 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/KillsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/KillsListener.java @@ -30,9 +30,9 @@ public class KillsListener extends AbstractListener { @Inject - public KillsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public KillsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.KILLS, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.KILLS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -52,7 +52,7 @@ public void onEntityDeath(EntityDeathEvent event) { addMatchingSubcategories(subcategories, mobType); } - if (serverVersion >= 8 && entity.getCustomName() != null + if (entity.getCustomName() != null && player.hasPermission(category.toChildPermName(StringUtils.deleteWhitespace(entity.getCustomName())))) { addMatchingSubcategories(subcategories, entity.getCustomName()); } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LavaBucketsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LavaBucketsListener.java index 101e98c1e..90e0bc8c4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LavaBucketsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LavaBucketsListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -26,11 +24,10 @@ public class LavaBucketsListener extends AbstractRateLimitedListener { @Inject - public LavaBucketsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public LavaBucketsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.LAVABUCKETS, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.LAVABUCKETS, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LevelsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LevelsListener.java index 2ef6cb9aa..d58207371 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LevelsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/LevelsListener.java @@ -24,9 +24,9 @@ public class LevelsListener extends AbstractListener { @Inject - public LevelsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public LevelsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.LEVELS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.LEVELS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MilksListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MilksListener.java index 167f616d0..155c71107 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MilksListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MilksListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -26,11 +24,10 @@ public class MilksListener extends AbstractRateLimitedListener { @Inject - public MilksListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public MilksListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.MILKS, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.MILKS, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MusicDiscsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MusicDiscsListener.java index 8a20c40f5..f1cd10822 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MusicDiscsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/MusicDiscsListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -29,11 +27,10 @@ public class MusicDiscsListener extends AbstractRateLimitedListener { @Inject - public MusicDiscsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public MusicDiscsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.MUSICDISCS, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.MUSICDISCS, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR) // Do NOT set ignoreCancelled to true, deprecated for this event. diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterGiveListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterGiveListener.java index 5ec250edc..b13ec9ae4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterGiveListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterGiveListener.java @@ -24,9 +24,9 @@ public class PetMasterGiveListener extends AbstractListener { @Inject - public PetMasterGiveListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.PETMASTERGIVE, mainConfig, serverVersion, achievementMap, cacheManager); + public PetMasterGiveListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(NormalAchievements.PETMASTERGIVE, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterReceiveListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterReceiveListener.java index 8055ab012..cd57e6201 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterReceiveListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PetMasterReceiveListener.java @@ -24,9 +24,9 @@ public class PetMasterReceiveListener extends AbstractListener { @Inject - public PetMasterReceiveListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.PETMASTERRECEIVE, mainConfig, serverVersion, achievementMap, cacheManager); + public PetMasterReceiveListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(NormalAchievements.PETMASTERRECEIVE, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsLegacyListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsLegacyListener.java deleted file mode 100644 index 62bfe7662..000000000 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsLegacyListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hm.achievement.listener.statistics; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerPickupItemEvent; - -import com.hm.achievement.category.NormalAchievements; -import com.hm.achievement.config.AchievementMap; -import com.hm.achievement.db.CacheManager; - -/** - * Listener class to deal with ItemPickups achievements for Minecraft 1.7.9-1.12.2. - * - * @author Pyves - * - */ -@SuppressWarnings("deprecation") -@Singleton -public class PickupsLegacyListener extends AbstractListener { - - @Inject - public PickupsLegacyListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.PICKUPS, mainConfig, serverVersion, achievementMap, cacheManager); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public void onPlayerPickupItem(PlayerPickupItemEvent event) { - updateStatisticAndAwardAchievementsIfAvailable(event.getPlayer(), 1); - } -} diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsListener.java index df9e1f7ad..9ee329f7b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PickupsListener.java @@ -24,9 +24,9 @@ public class PickupsListener extends AbstractListener { @Inject - public PickupsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public PickupsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.PICKUPS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.PICKUPS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlacesListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlacesListener.java index c9af7432d..96d5c2edd 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlacesListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlacesListener.java @@ -30,12 +30,11 @@ public class PlacesListener extends AbstractListener { @Inject - public PlacesListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public PlacesListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.PLACES, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.PLACES, mainConfig, achievementMap, cacheManager); } - @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onBlockPlace(BlockPlaceEvent event) { Player player = event.getPlayer(); @@ -45,7 +44,6 @@ public void onBlockPlace(BlockPlaceEvent event) { String blockName = placedItem.getType().name().toLowerCase(); if (player.hasPermission(category.toChildPermName(blockName))) { - addMatchingSubcategories(subcategories, blockName + ':' + placedItem.getDurability()); addMatchingSubcategories(subcategories, blockName); } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlayerCommandsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlayerCommandsListener.java index 41ecfb5fc..0a4c4fcde 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlayerCommandsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/PlayerCommandsListener.java @@ -27,9 +27,9 @@ public class PlayerCommandsListener extends AbstractListener { @Inject - public PlayerCommandsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.PLAYERCOMMANDS, mainConfig, serverVersion, achievementMap, cacheManager); + public PlayerCommandsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(MultipleAchievements.PLAYERCOMMANDS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/RiptidesListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/RiptidesListener.java index db46e5f77..34a6d69f4 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/RiptidesListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/RiptidesListener.java @@ -17,9 +17,9 @@ public class RiptidesListener extends AbstractListener { @Inject - public RiptidesListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public RiptidesListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.RIPTIDES, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.RIPTIDES, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ShearsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ShearsListener.java index 45c9d7a7c..4253877f2 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ShearsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/ShearsListener.java @@ -24,9 +24,9 @@ public class ShearsListener extends AbstractListener { @Inject - public ShearsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public ShearsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.SHEARS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.SHEARS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SmeltingListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SmeltingListener.java index c0ee02097..deb8641df 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SmeltingListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SmeltingListener.java @@ -29,13 +29,10 @@ @Singleton public class SmeltingListener extends AbstractListener { - private final InventoryHelper inventoryHelper; - @Inject - public SmeltingListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, - CacheManager cacheManager, InventoryHelper inventoryHelper) { - super(NormalAchievements.SMELTING, mainConfig, serverVersion, achievementMap, cacheManager); - this.inventoryHelper = inventoryHelper; + public SmeltingListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(NormalAchievements.SMELTING, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -51,7 +48,7 @@ public void onInventoryClick(InventoryClickEvent event) { int eventAmount = item.getAmount(); if (event.isShiftClick()) { - eventAmount = Math.min(eventAmount, inventoryHelper.getAvailableSpace(player, item)); + eventAmount = Math.min(eventAmount, InventoryHelper.getAvailableSpace(player, item)); if (eventAmount == 0) { return; } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SnowballsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SnowballsListener.java index fdf6a54c6..f7a710d8b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SnowballsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/SnowballsListener.java @@ -26,9 +26,9 @@ public class SnowballsListener extends AbstractListener { @Inject - public SnowballsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public SnowballsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.SNOWBALLS, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.SNOWBALLS, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TamesListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TamesListener.java index 68a26db3e..3f7909aab 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TamesListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TamesListener.java @@ -24,9 +24,9 @@ public class TamesListener extends AbstractListener { @Inject - public TamesListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public TamesListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.TAMES, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.TAMES, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TargetsShotListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TargetsShotListener.java index fe1f34a92..911126e6a 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TargetsShotListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TargetsShotListener.java @@ -21,9 +21,9 @@ public class TargetsShotListener extends AbstractListener { @Inject - public TargetsShotListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public TargetsShotListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(MultipleAchievements.TARGETSSHOT, mainConfig, serverVersion, achievementMap, cacheManager); + super(MultipleAchievements.TARGETSSHOT, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TradesListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TradesListener.java index 542b2e7ce..feb0d3dd5 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TradesListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TradesListener.java @@ -27,9 +27,9 @@ public class TradesListener extends AbstractListener { @Inject - public TradesListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public TradesListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.TRADES, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.TRADES, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TreasuresListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TreasuresListener.java index aaac19e08..bd1310e40 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TreasuresListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/TreasuresListener.java @@ -29,9 +29,9 @@ public class TreasuresListener extends AbstractListener { private Set fishableFish; @Inject - public TreasuresListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public TreasuresListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.TREASURES, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.TREASURES, mainConfig, achievementMap, cacheManager); } @Override diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WaterBucketsListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WaterBucketsListener.java index c3e4dc7f1..ef2d4a400 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WaterBucketsListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WaterBucketsListener.java @@ -1,7 +1,5 @@ package com.hm.achievement.listener.statistics; -import java.util.logging.Logger; - import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @@ -26,11 +24,10 @@ public class WaterBucketsListener extends AbstractRateLimitedListener { @Inject - public WaterBucketsListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager, AdvancedAchievements advancedAchievements, - @Named("lang") YamlConfiguration langConfig, Logger logger) { - super(NormalAchievements.WATERBUCKETS, mainConfig, serverVersion, achievementMap, cacheManager, advancedAchievements, - langConfig, logger); + public WaterBucketsListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager, AdvancedAchievements advancedAchievements, + @Named("lang") YamlConfiguration langConfig) { + super(NormalAchievements.WATERBUCKETS, mainConfig, achievementMap, cacheManager, advancedAchievements, langConfig); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WinRaidListener.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WinRaidListener.java index 287d5a653..53f320f8e 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WinRaidListener.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/listener/statistics/WinRaidListener.java @@ -22,9 +22,9 @@ public class WinRaidListener extends AbstractListener { @Inject - public WinRaidListener(@Named("main") YamlConfiguration mainConfig, int serverVersion, AchievementMap achievementMap, + public WinRaidListener(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, CacheManager cacheManager) { - super(NormalAchievements.RAIDSWON, mainConfig, serverVersion, achievementMap, cacheManager); + super(NormalAchievements.RAIDSWON, mainConfig, achievementMap, cacheManager); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/CommandModule.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/CommandModule.java index 6600b28f4..3b3edfa6b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/CommandModule.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/CommandModule.java @@ -18,7 +18,6 @@ import com.hm.achievement.command.executable.StatsCommand; import com.hm.achievement.command.executable.ToggleCommand; import com.hm.achievement.command.executable.TopCommand; -import com.hm.achievement.command.executable.Upgrade13Command; import com.hm.achievement.command.executable.WeekCommand; import dagger.Binds; @@ -96,10 +95,6 @@ public interface CommandModule { @IntoSet AbstractCommand bindAddCommand(AddCommand addCommand); - @Binds - @IntoSet - AbstractCommand bindUpdate13Command(Upgrade13Command upgrade13Command); - @Binds @IntoSet AbstractCommand bindInspectCommand(InspectCommand inspectCommand); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ReloadableModule.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ReloadableModule.java index 782419017..1afdddd5e 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ReloadableModule.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ReloadableModule.java @@ -29,7 +29,6 @@ import com.hm.achievement.listener.statistics.EggsListener; import com.hm.achievement.listener.statistics.EnchantmentsListener; import com.hm.achievement.listener.statistics.EnderPearlsListener; -import com.hm.achievement.listener.statistics.FertilisingLegacyListener; import com.hm.achievement.listener.statistics.FertilisingListener; import com.hm.achievement.listener.statistics.FireworksListener; import com.hm.achievement.listener.statistics.FishListener; @@ -43,7 +42,6 @@ import com.hm.achievement.listener.statistics.MusicDiscsListener; import com.hm.achievement.listener.statistics.PetMasterGiveListener; import com.hm.achievement.listener.statistics.PetMasterReceiveListener; -import com.hm.achievement.listener.statistics.PickupsLegacyListener; import com.hm.achievement.listener.statistics.PickupsListener; import com.hm.achievement.listener.statistics.PlacesListener; import com.hm.achievement.listener.statistics.PlayerCommandsListener; @@ -63,237 +61,229 @@ import dagger.Binds; import dagger.Module; -import dagger.Provides; import dagger.multibindings.ElementsIntoSet; import dagger.multibindings.IntoSet; @Module -public abstract class ReloadableModule { +public interface ReloadableModule { - @Provides - @IntoSet - static Reloadable provideFertilisingListener(FertilisingListener fertilisingListener, - FertilisingLegacyListener fertilisingLegacyListener, int serverVersion) { - return serverVersion >= 13 ? fertilisingListener : fertilisingLegacyListener; - } + @Binds + @ElementsIntoSet + Set bindCommands(Set commands); - @Provides + @Binds @IntoSet - static Reloadable providePickupsListener(PickupsListener pickupsListener, PickupsLegacyListener pickupsLegacyListener, - int serverVersion) { - return serverVersion >= 13 ? pickupsListener : pickupsLegacyListener; - } + Reloadable bindAbstractDatabaseManager(AbstractDatabaseManager abstractDatabaseManager); @Binds - @ElementsIntoSet - abstract Set bindCommands(Set commands); + @IntoSet + Reloadable bindAchieveDistanceRunnable(AchieveDistanceRunnable achieveDistanceRunnable); @Binds @IntoSet - abstract Reloadable bindAbstractDatabaseManager(AbstractDatabaseManager abstractDatabaseManager); + Reloadable bindAchievePlayTimeRunnable(AchievePlayTimeRunnable achievePlayTimeRunnable); @Binds @IntoSet - abstract Reloadable bindAchieveDistanceRunnable(AchieveDistanceRunnable achieveDistanceRunnable); + Reloadable bindAdvancementManager(AdvancementManager advancementManager); @Binds @IntoSet - abstract Reloadable bindAchievePlayTimeRunnable(AchievePlayTimeRunnable achievePlayTimeRunnable); + Reloadable bindAnvilsListener(AnvilsListener anvilsListener); @Binds @IntoSet - abstract Reloadable bindAdvancementManager(AdvancementManager advancementManager); + Reloadable bindArrowsListener(ArrowsListener arrowsListener); @Binds @IntoSet - abstract Reloadable bindAnvilsListener(AnvilsListener anvilsListener); + Reloadable bindBedsListener(BedsListener bedsListener); @Binds @IntoSet - abstract Reloadable bindArrowsListener(ArrowsListener arrowsListener); + Reloadable bindBreaksListener(BreaksListener breaksListener); @Binds @IntoSet - abstract Reloadable bindBedsListener(BedsListener bedsListener); + Reloadable bindBreedingListener(BreedingListener breedingListener); @Binds @IntoSet - abstract Reloadable bindBreaksListener(BreaksListener breaksListener); + Reloadable bindBrewingListener(BrewingListener brewingListener); @Binds @IntoSet - abstract Reloadable bindBreedingListener(BreedingListener breedingListener); + Reloadable bindCategoryGUI(CategoryGUI categoryGUI); @Binds @IntoSet - abstract Reloadable bindBrewingListener(BrewingListener brewingListener); + Reloadable bindConnectionsListener(ConnectionsListener connectionsListener); @Binds @IntoSet - abstract Reloadable bindCategoryGUI(CategoryGUI categoryGUI); + Reloadable bindConsumedPotionsListener(ConsumedPotionsListener consumedPotionsListener); @Binds @IntoSet - abstract Reloadable bindConnectionsListener(ConnectionsListener connectionsListener); + Reloadable bindCraftsListener(CraftsListener craftsListener); @Binds @IntoSet - abstract Reloadable bindConsumedPotionsListener(ConsumedPotionsListener consumedPotionsListener); + Reloadable bindDeathsListener(DeathsListener deathsListener); @Binds @IntoSet - abstract Reloadable bindCraftsListener(CraftsListener craftsListener); + Reloadable bindDropsListener(DropsListener dropsListener); @Binds @IntoSet - abstract Reloadable bindDeathsListener(DeathsListener deathsListener); + Reloadable bindEatenItemsListener(EatenItemsListener eatenItemsListener); @Binds @IntoSet - abstract Reloadable bindDropsListener(DropsListener dropsListener); + Reloadable bindEggsListener(EggsListener eggsListener); @Binds @IntoSet - abstract Reloadable bindEatenItemsListener(EatenItemsListener eatenItemsListener); + Reloadable bindEnchantmentsListener(EnchantmentsListener enchantmentsListener); @Binds @IntoSet - abstract Reloadable bindEggsListener(EggsListener eggsListener); + Reloadable bindEnderPearlsListener(EnderPearlsListener enderPearlsListener); @Binds @IntoSet - abstract Reloadable bindEnchantmentsListener(EnchantmentsListener enchantmentsListener); + Reloadable bindFertilisingListener(FertilisingListener fertilisingListener); @Binds @IntoSet - abstract Reloadable bindEnderPearlsListener(EnderPearlsListener enderPearlsListener); + Reloadable bindFireworksListener(FireworksListener fireworksListener); @Binds @IntoSet - abstract Reloadable bindFireworksListener(FireworksListener fireworksListener); + Reloadable bindFishListener(FishListener fishListener); @Binds @IntoSet - abstract Reloadable bindFishListener(FishListener fishListener); + Reloadable bindGUIItems(GUIItems guiItems); @Binds @IntoSet - abstract Reloadable bindGUIItems(GUIItems guiItems); + Reloadable bindHoePlowingListener(HoePlowingListener hoePlowingListener); @Binds @IntoSet - abstract Reloadable bindHoePlowingListener(HoePlowingListener hoePlowingListener); + Reloadable bindItemBreaksListener(ItemBreaksListener itemBreaksListener); @Binds @IntoSet - abstract Reloadable bindItemBreaksListener(ItemBreaksListener itemBreaksListener); + Reloadable bindKillsListener(KillsListener killsListener); @Binds @IntoSet - abstract Reloadable bindKillsListener(KillsListener killsListener); + Reloadable bindLavaBucketsListener(LavaBucketsListener lavaBucketsListener); @Binds @IntoSet - abstract Reloadable bindLavaBucketsListener(LavaBucketsListener lavaBucketsListener); + Reloadable bindLevelsListener(LevelsListener levelsListener); @Binds @IntoSet - abstract Reloadable bindLevelsListener(LevelsListener levelsListener); + Reloadable bindMainGUI(MainGUI mainGUI); @Binds @IntoSet - abstract Reloadable bindMainGUI(MainGUI mainGUI); + Reloadable bindMilksListener(MilksListener milksListener); @Binds @IntoSet - abstract Reloadable bindMilksListener(MilksListener milksListener); + Reloadable bindMusicDiscsListener(MusicDiscsListener musicDiscsListener); @Binds @IntoSet - abstract Reloadable bindMusicDiscsListener(MusicDiscsListener musicDiscsListener); + Reloadable bindPetMasterGiveListener(PetMasterReceiveListener petMasterReceiveListener); @Binds @IntoSet - abstract Reloadable bindPetMasterGiveListener(PetMasterReceiveListener petMasterReceiveListener); + Reloadable bindPetMasterReceiveListener(PetMasterGiveListener petMasterGiveListener); @Binds @IntoSet - abstract Reloadable bindPetMasterReceiveListener(PetMasterGiveListener petMasterGiveListener); + Reloadable bindPickupsListener(PickupsListener pickupsListener); @Binds @IntoSet - abstract Reloadable bindPlacesListener(PlacesListener placesListener); + Reloadable bindPlacesListener(PlacesListener placesListener); @Binds @IntoSet - abstract Reloadable bindPlayerAdvancedAchievementListener( - PlayerAdvancedAchievementListener playerAdvancedAchievementListener); + Reloadable bindPlayerAdvancedAchievementListener(PlayerAdvancedAchievementListener playerAdvancedAchievementListener); @Binds @IntoSet - abstract Reloadable bindPlayerCommandsListener(PlayerCommandsListener playerCommandsListener); + Reloadable bindPlayerCommandsListener(PlayerCommandsListener playerCommandsListener); @Binds @IntoSet - abstract Reloadable bindPluginCommandExecutor(PluginCommandExecutor pluginCommandExecutor); + Reloadable bindPluginCommandExecutor(PluginCommandExecutor pluginCommandExecutor); @Binds @IntoSet - abstract Reloadable bindShearsListener(ShearsListener shearsListener); + Reloadable bindShearsListener(ShearsListener shearsListener); @Binds @IntoSet - abstract Reloadable bindSmeltingListener(SmeltingListener smeltingListener); + Reloadable bindSmeltingListener(SmeltingListener smeltingListener); @Binds @IntoSet - abstract Reloadable bindSnowballsListener(SnowballsListener snowballsListener); + Reloadable bindSnowballsListener(SnowballsListener snowballsListener); @Binds @IntoSet - abstract Reloadable bindStatisticIncreaseHandler(StatisticIncreaseHandler statisticIncreaseHandler); + Reloadable bindStatisticIncreaseHandler(StatisticIncreaseHandler statisticIncreaseHandler); @Binds @IntoSet - abstract Reloadable bindTamesListener(TamesListener tamesListener); + Reloadable bindTamesListener(TamesListener tamesListener); @Binds @IntoSet - abstract Reloadable bindTargetsShotListener(TargetsShotListener targetsShotListener); + Reloadable bindTargetsShotListener(TargetsShotListener targetsShotListener); @Binds @IntoSet - abstract Reloadable bindTradesListener(TradesListener tradesListener); + Reloadable bindTradesListener(TradesListener tradesListener); @Binds @IntoSet - abstract Reloadable bindTreasuresListener(TreasuresListener treasuresListener); + Reloadable bindTreasuresListener(TreasuresListener treasuresListener); @Binds @IntoSet - abstract Reloadable bindWaterBucketsListener(WaterBucketsListener waterBucketsListener); + Reloadable bindWaterBucketsListener(WaterBucketsListener waterBucketsListener); @Binds @IntoSet - abstract Reloadable bindsWinRaidListener(WinRaidListener winRaidListener); + Reloadable bindsWinRaidListener(WinRaidListener winRaidListener); @Binds @IntoSet - abstract Reloadable bindsRiptidesListener(RiptidesListener riptidesListener); + Reloadable bindsRiptidesListener(RiptidesListener riptidesListener); @Binds @IntoSet - abstract Reloadable bindAdvancementsCompletedListener(AdvancementsCompletedListener advancementsCompletedListener); + Reloadable bindAdvancementsCompletedListener(AdvancementsCompletedListener advancementsCompletedListener); @Binds @IntoSet - abstract Reloadable bindJobsRebornListener(JobsRebornListener jobsRebornListener); + Reloadable bindJobsRebornListener(JobsRebornListener jobsRebornListener); @Binds @IntoSet - abstract Reloadable bindBooksEditedListener(BooksEditedListener booksEditedListener); + Reloadable bindBooksEditedListener(BooksEditedListener booksEditedListener); @Binds @IntoSet - abstract Reloadable bindEffectsHeldListener(EffectsHeldListener effectsHeldListener); + Reloadable bindEffectsHeldListener(EffectsHeldListener effectsHeldListener); } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ServerVersionModule.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ServerVersionModule.java index 371e6974a..cf5113b7b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ServerVersionModule.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/module/ServerVersionModule.java @@ -3,8 +3,7 @@ import javax.inject.Singleton; import org.apache.commons.lang3.StringUtils; - -import com.darkblade12.particleeffect.ReflectionUtils.PackageType; +import org.bukkit.Bukkit; import dagger.Module; import dagger.Provides; @@ -17,7 +16,8 @@ public class ServerVersionModule { int provideServerVersion() { // Simple parsing of game version. Might need to be updated in the future depending on how the Minecraft // versions change in the future. - return Integer.parseInt(StringUtils.substringBetween(PackageType.getServerVersion(), "_")); + String versionIdentifier = Bukkit.getServer().getClass().getPackage().getName().substring(23); + return Integer.parseInt(StringUtils.substringBetween(versionIdentifier, "_")); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchieveDistanceRunnable.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchieveDistanceRunnable.java index 00d97c740..5efba1e8d 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchieveDistanceRunnable.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchieveDistanceRunnable.java @@ -38,9 +38,9 @@ public class AchieveDistanceRunnable extends StatisticIncreaseHandler implements private boolean configIgnoreVerticalDistance; @Inject - public AchieveDistanceRunnable(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager, Set disabledCategories) { - super(mainConfig, serverVersion, achievementMap, cacheManager); + public AchieveDistanceRunnable(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager, Set disabledCategories) { + super(mainConfig, achievementMap, cacheManager); this.disabledCategories = disabledCategories; } @@ -95,10 +95,10 @@ private void validateMovementAndUpdateDistance(Player player) { updateDistance(difference, player, NormalAchievements.DISTANCEMINECART); } else if (vehicleType == EntityType.BOAT) { updateDistance(difference, player, NormalAchievements.DISTANCEBOAT); - } else if (serverVersion >= 11 && vehicleType == EntityType.LLAMA) { + } else if (vehicleType == EntityType.LLAMA) { updateDistance(difference, player, NormalAchievements.DISTANCELLAMA); } - } else if (serverVersion >= 9 && player.isGliding()) { + } else if (player.isGliding()) { updateDistance(difference, player, NormalAchievements.DISTANCEGLIDING); } else if (player.isSneaking()) { updateDistance(difference, player, NormalAchievements.DISTANCESNEAKING); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchievePlayTimeRunnable.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchievePlayTimeRunnable.java index 50b77213b..408acc787 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchievePlayTimeRunnable.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/runnable/AchievePlayTimeRunnable.java @@ -33,9 +33,9 @@ public class AchievePlayTimeRunnable extends StatisticIncreaseHandler implements private boolean configIgnoreAFKPlayedTime; @Inject - public AchievePlayTimeRunnable(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { - super(mainConfig, serverVersion, achievementMap, cacheManager); + public AchievePlayTimeRunnable(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { + super(mainConfig, achievementMap, cacheManager); if (Bukkit.getPluginManager().isPluginEnabled("Essentials")) { essentials = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials"); diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/BossBarHelper.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/BossBarHelper.java deleted file mode 100644 index b505108bf..000000000 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/BossBarHelper.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hm.achievement.utils; - -import org.bukkit.Bukkit; -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarStyle; -import org.bukkit.boss.BossBar; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - -public class BossBarHelper { - - /** - * Temporarily displays a boss bar indicating achievement progress when receiving an achievement. Extract to a - * separate class to avoid loading errors when registering listeners. - * - * @param player - * @param progress - * @param color - * @param message - * @param plugin - */ - public static void displayBossBar(Plugin plugin, Player player, double progress, String color, String message) { - BossBar bossBar = Bukkit.getServer().createBossBar(message, BarColor.valueOf(color), BarStyle.SOLID); - bossBar.setProgress(progress); - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> bossBar.addPlayer(player), 110); - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> bossBar.removePlayer(player), 240); - } - - private BossBarHelper() { - // Not called. - } - -} diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/ColorHelper.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/ColorHelper.java index 365e5ff6b..21979ff3d 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/ColorHelper.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/ColorHelper.java @@ -2,6 +2,7 @@ import org.bukkit.ChatColor; import org.bukkit.Color; +import org.bukkit.boss.BarColor; public class ColorHelper { @@ -44,45 +45,42 @@ public static Color convertChatColorToColor(ChatColor chatColor) { } } - /* - * Model bar colors as strings to ensure compatibility with Minecraft 1.7/1.8, where the class did not yet exist. - */ - public static String convertChatColorToBarColor(ChatColor chatColor) { + public static BarColor convertChatColorToBarColor(ChatColor chatColor) { switch (chatColor) { case AQUA: - return "GREEN"; + return BarColor.GREEN; case BLACK: - return "PURPLE"; + return BarColor.PURPLE; case BLUE: - return "BLUE"; + return BarColor.BLUE; case GRAY: - return "WHITE"; + return BarColor.WHITE; case DARK_AQUA: - return "BLUE"; + return BarColor.BLUE; case DARK_BLUE: - return "BLUE"; + return BarColor.BLUE; case DARK_GRAY: - return "PURPLE"; + return BarColor.PURPLE; case DARK_GREEN: - return "GREEN"; + return BarColor.GREEN; case DARK_PURPLE: - return "PURPLE"; + return BarColor.PURPLE; case DARK_RED: - return "RED"; + return BarColor.RED; case GOLD: - return "YELLOW"; + return BarColor.YELLOW; case GREEN: - return "GREEN"; + return BarColor.GREEN; case LIGHT_PURPLE: - return "PURPLE"; + return BarColor.PURPLE; case RED: - return "RED"; + return BarColor.RED; case WHITE: - return "WHITE"; + return BarColor.WHITE; case YELLOW: - return "YELLOW"; + return BarColor.YELLOW; default: - return "WHITE"; + return BarColor.WHITE; } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/FancyMessageSender.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/FancyMessageSender.java index f04cb60ac..c3bcdae7f 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/FancyMessageSender.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/FancyMessageSender.java @@ -1,12 +1,11 @@ package com.hm.achievement.utils; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.bukkit.ChatColor; import org.bukkit.entity.Player; -import com.darkblade12.particleeffect.ReflectionUtils; -import com.darkblade12.particleeffect.ReflectionUtils.PackageType; - -import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; @@ -20,249 +19,64 @@ * @author Pyves * */ +@Singleton public final class FancyMessageSender { - private static final byte CHAT_MESSAGE_BYTE = 1; - private static final byte ACTION_BAR_BYTE = 2; - private static final String CLASS_CHAT_BASE_COMPONENT = PackageType.MINECRAFT_SERVER + ".IChatBaseComponent"; - private static final String CLASS_CRAFT_PLAYER = "CraftPlayer"; - private static final String CLASS_ENTITY_PLAYER = PackageType.MINECRAFT_SERVER + ".EntityPlayer"; - private static final String CLASS_PACKET = PackageType.MINECRAFT_SERVER + ".Packet"; - private static final String CLASS_PACKET_PLAY_OUT_CHAT = PackageType.MINECRAFT_SERVER + ".PacketPlayOutChat"; - private static final String CLASS_PACKET_PLAY_OUT_TITLE = "PacketPlayOutTitle"; - private static final String CLASS_PLAYER_CONNECTION = PackageType.MINECRAFT_SERVER + ".PlayerConnection"; - private static final String ENUM_TITLE_ACTION = "EnumTitleAction"; - private static final String FIELD_PLAYER_CONNECTION = "playerConnection"; - private static final String METHOD_GET_HANDLE = "getHandle"; - private static final String METHOD_SEND_PACKET = "sendPacket"; - private static final String NESTED_CHAT_SERIALIZER = "ChatSerializer"; - private static final String PACKAGE_ENTITY = "entity"; - private static final int MINOR_VERSION_NUMBER = Integer.parseInt(PackageType.getServerVersion().split("_")[1]); + private final int serverVersion; + + @Inject + public FancyMessageSender(int serverVersion) { + this.serverVersion = serverVersion; + } /** - * Sends a hoverable message to the player. Only supported in Minecraft 1.8+. + * Sends a hoverable message to the player. * * @param player Online player to send the message to. * @param message The text to display in the chat. * @param hover The text to display in the hover. * @param color The color of the hover text. - * @throws Exception */ @SuppressWarnings("deprecation") - public static void sendHoverableMessage(Player player, String message, String hover, String color) throws Exception { - if (MINOR_VERSION_NUMBER < 9) { - sendChatPacket(player, constructHoverableMessageJson(message, hover, color), CHAT_MESSAGE_BYTE); + public void sendHoverableMessage(Player player, String message, String hover, String color) { + TextComponent tc = new TextComponent(); + tc.setText(ChatColor.translateAlternateColorCodes('&', message)); + tc.setColor(ChatColor.valueOf(color.toUpperCase()).asBungee()); + + if (serverVersion >= 16) { + tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, + new Text(ChatColor.translateAlternateColorCodes('&', hover)))); } else { - TextComponent tc = new TextComponent(); - tc.setText(message); - tc.setColor(ChatColor.valueOf(color.toUpperCase()).asBungee()); - - if (MINOR_VERSION_NUMBER >= 16) { - tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(hover))); - } else { - tc.setHoverEvent(new HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, - new ComponentBuilder(hover).create())); - } - player.spigot().sendMessage(tc); + tc.setHoverEvent(new HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, + new ComponentBuilder(ChatColor.translateAlternateColorCodes('&', hover)).create())); } + player.spigot().sendMessage(tc); } /** - * Sends a clickable and hoverable message to the player. Only supported in Minecraft 1.8+. + * Sends a clickable and hoverable message to the player. * * @param player Online player to send the message to. * @param message The text to display in the chat. * @param command The command that is entered when clicking on the message. * @param hover The text to display in the hover. * @param color The color of the hover text. - * @throws Exception - */ - @SuppressWarnings("deprecation") - public static void sendHoverableCommandMessage(Player player, String message, String command, String hover, String color) - throws Exception { - if (MINOR_VERSION_NUMBER < 9) { - sendChatPacket(player, constructHoverableCommandMessageJson(message, command, hover, color), CHAT_MESSAGE_BYTE); - } else { - TextComponent tc = new TextComponent(); - tc.setText(message); - tc.setColor(ChatColor.valueOf(color.toUpperCase()).asBungee()); - tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, command)); - - if (MINOR_VERSION_NUMBER >= 16) { - tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(hover))); - } else { - tc.setHoverEvent(new HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, - new ComponentBuilder(hover).create())); - } - player.spigot().sendMessage(tc); - } - } - - /** - * Sends an action bar chat message to the player. Only supported in Minecraft 1.8+. - * - * @param player Online player to send the message to. - * @param message The text to display in the action bar. - * @throws Exception - */ - public static void sendActionBarMessage(Player player, String message) throws Exception { - if (MINOR_VERSION_NUMBER < 9) { - sendChatPacket(player, constructTextJson(message), ACTION_BAR_BYTE); - } else { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message)); - } - - } - - /** - * Sends a title and subtitle to the player. Only supported in Minecraft 1.8+. - * - * @param player Online player to send the title and subtitle to. - * @param title The main text that will appear on the player's screen. - * @param subtitle The secondary text that will appear on the player's screen. - * @throws Exception */ @SuppressWarnings("deprecation") - public static void sendTitle(Player player, String title, String subtitle) throws Exception { - if (MINOR_VERSION_NUMBER >= 11) { - player.sendTitle(title, subtitle, 10, 70, 20); - } else if (MINOR_VERSION_NUMBER >= 9) { - player.sendTitle(title, subtitle); + public void sendHoverableCommandMessage(Player player, String message, String command, String hover, + String color) { + TextComponent tc = new TextComponent(); + tc.setText(ChatColor.translateAlternateColorCodes('&', message)); + tc.setColor(ChatColor.valueOf(color.toUpperCase()).asBungee()); + tc.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, command)); + + if (serverVersion >= 16) { + tc.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, + new Text(ChatColor.translateAlternateColorCodes('&', hover)))); } else { - sendTitlePacket(player, constructTextJson(title), constructTextJson(subtitle)); + tc.setHoverEvent(new HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, + new ComponentBuilder(ChatColor.translateAlternateColorCodes('&', hover)).create())); } - } - - /** - * Sends a title and subtitle packet to the player. - * - * @param player Online player to send the title and subtitle to. - * @param titleJson The title JSON format message to send to the player. See - * http://minecraft.gamepedia.com/Commands#Raw_JSON_text for more information. - * @param subtitleJson The subtitle title JSON format message to send to the player. See - * http://minecraft.gamepedia.com/Commands#Raw_JSON_text for more information. - * @throws ReflectiveOperationException - */ - private static void sendTitlePacket(Player player, String titleJson, String subtitleJson) - throws ReflectiveOperationException { - // Retrieve a CraftPlayer instance and its PlayerConnection instance. - Object craftPlayer = PackageType.CRAFTBUKKIT.getClass(PACKAGE_ENTITY + "." + CLASS_CRAFT_PLAYER).cast(player); - Object craftHandle = PackageType.CRAFTBUKKIT.getClass(PACKAGE_ENTITY + "." + CLASS_CRAFT_PLAYER) - .getMethod(METHOD_GET_HANDLE).invoke(craftPlayer); - Object playerConnection = Class.forName(CLASS_ENTITY_PLAYER).getField(FIELD_PLAYER_CONNECTION).get(craftHandle); - - Object parsedMainMessage; - Object parsedSubMessage; - Class titleClass; - if (PackageType.getServerVersion().startsWith("1_8_R1")) { - // Prior to version 1.8.3. - parsedMainMessage = PackageType.MINECRAFT_SERVER.getClass(NESTED_CHAT_SERIALIZER) - .getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', titleJson)); - parsedSubMessage = PackageType.MINECRAFT_SERVER.getClass(NESTED_CHAT_SERIALIZER) - .getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', subtitleJson)); - titleClass = PackageType.MINECRAFT_SERVER.getClass(ENUM_TITLE_ACTION); - } else { - parsedMainMessage = Class.forName(CLASS_CHAT_BASE_COMPONENT + "$" + NESTED_CHAT_SERIALIZER) - .getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', titleJson)); - parsedSubMessage = Class.forName(CLASS_CHAT_BASE_COMPONENT + "$" + NESTED_CHAT_SERIALIZER) - .getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', subtitleJson)); - titleClass = PackageType.MINECRAFT_SERVER.getClass(CLASS_PACKET_PLAY_OUT_TITLE + "$" + ENUM_TITLE_ACTION); - } - - // Retrieve parameters for titles and subtitles. - Enum mainTitleEnumValue = null; - Enum subTitleEnumValue = null; - for (Object o : titleClass.getEnumConstants()) { - Enum e = (Enum) o; - if ("TITLE".equalsIgnoreCase(e.name())) { - mainTitleEnumValue = e; - } else if ("SUBTITLE".equalsIgnoreCase(e.name())) { - subTitleEnumValue = e; - } - } - - Object packetPlayOutChatMainTitle = ReflectionUtils - .getConstructor(PackageType.MINECRAFT_SERVER.getClass(CLASS_PACKET_PLAY_OUT_TITLE), - PackageType.MINECRAFT_SERVER.getClass(CLASS_PACKET_PLAY_OUT_TITLE + "$" + ENUM_TITLE_ACTION), - Class.forName(CLASS_CHAT_BASE_COMPONENT)) - .newInstance(mainTitleEnumValue, parsedMainMessage); - - // Send the message packet through the PlayerConnection (title). - Class.forName(CLASS_PLAYER_CONNECTION) - .getMethod(METHOD_SEND_PACKET, Class.forName(CLASS_PACKET)) - .invoke(playerConnection, packetPlayOutChatMainTitle); - - Object packetPlayOutChatSubTitle = ReflectionUtils - .getConstructor(PackageType.MINECRAFT_SERVER.getClass(CLASS_PACKET_PLAY_OUT_TITLE), - PackageType.MINECRAFT_SERVER.getClass(CLASS_PACKET_PLAY_OUT_TITLE + "$" + ENUM_TITLE_ACTION), - Class.forName(CLASS_CHAT_BASE_COMPONENT)) - .newInstance(subTitleEnumValue, parsedSubMessage); - - // Send the message packet through the PlayerConnection (subtitle). - Class.forName(CLASS_PLAYER_CONNECTION) - .getMethod(METHOD_SEND_PACKET, Class.forName(CLASS_PACKET)) - .invoke(playerConnection, packetPlayOutChatSubTitle); - } - - /** - * Sends a chat packet. - * - * @param player Online player to send the title and subtitle to. - * @param json The message JSON format message to send to the player. See - * http://minecraft.gamepedia.com/Commands#Raw_JSON_text for more information. - * @param type Either 1 (chat mesage) or 2 (action bar message). - * @throws ReflectiveOperationException - */ - private static void sendChatPacket(Player player, String json, byte type) throws ReflectiveOperationException { - // Retrieve a CraftPlayer instance and its PlayerConnection instance. - Object craftPlayer = PackageType.CRAFTBUKKIT.getClass(PACKAGE_ENTITY + "." + CLASS_CRAFT_PLAYER).cast(player); - Object craftHandle = PackageType.CRAFTBUKKIT.getClass(PACKAGE_ENTITY + "." + CLASS_CRAFT_PLAYER) - .getMethod(METHOD_GET_HANDLE).invoke(craftPlayer); - Object playerConnection = Class.forName(CLASS_ENTITY_PLAYER).getField(FIELD_PLAYER_CONNECTION).get(craftHandle); - - Object parsedMessage; - if (PackageType.getServerVersion().startsWith("1_8_R1")) { - // Prior to version 1.8.3. - parsedMessage = PackageType.MINECRAFT_SERVER.getClass(NESTED_CHAT_SERIALIZER).getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', json)); - } else { - parsedMessage = Class.forName(CLASS_CHAT_BASE_COMPONENT + "$" + NESTED_CHAT_SERIALIZER) - .getMethod("a", String.class) - .invoke(null, ChatColor.translateAlternateColorCodes('&', json)); - } - - Object packetPlayOutChat = Class.forName(CLASS_PACKET_PLAY_OUT_CHAT) - .getConstructor(Class.forName(CLASS_CHAT_BASE_COMPONENT), byte.class) - .newInstance(parsedMessage, type); - - // Send the message packet through the PlayerConnection. - Class.forName(CLASS_PLAYER_CONNECTION) - .getMethod(METHOD_SEND_PACKET, Class.forName(CLASS_PACKET)) - .invoke(playerConnection, packetPlayOutChat); - } - - private static String constructTextJson(String text) { - return "{\"text\":\"" + text.replace("\"", "\\\"") + "\"}"; - } - - private static String constructHoverableMessageJson(String message, String hover, String color) { - return "{\"text\":\"" + message.replace("\"", "\\\"") + "\"," - + "\"hoverEvent\":{\"action\":\"show_text\",\"value\":[{\"text\":\"" - + hover.replace("\"", "\\\"") + "\",\"color\":\"" + color + "\"}]}}"; - } - - private static String constructHoverableCommandMessageJson(String message, String command, String hover, String color) { - return "{\"text\":\"" + message.replace("\"", "\\\"") + "\"," - + "\"clickEvent\":{\"action\":\"suggest_command\",\"value\":\"" + command + "\"}," - + "\"hoverEvent\":{\"action\":\"show_text\",\"value\":[{\"text\":\"" - + hover.replace("\"", "\\\"") + "\",\"color\":\"" + color + "\"}]}}"; - } - - private FancyMessageSender() { - // Not called. + player.spigot().sendMessage(tc); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/InventoryHelper.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/InventoryHelper.java index 8ee2891ee..48cea4eb2 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/InventoryHelper.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/InventoryHelper.java @@ -2,23 +2,12 @@ import java.util.HashMap; -import javax.inject.Inject; -import javax.inject.Singleton; - import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; -@Singleton public class InventoryHelper { - private final int serverVersion; - - @Inject - public InventoryHelper(int serverVersion) { - this.serverVersion = serverVersion; - } - /** * Calculates the space available to accommodate a new item stack. This method takes both empty slots and existing * similar item stacks into account. @@ -27,7 +16,7 @@ public InventoryHelper(int serverVersion) { * @param newItemStack * @return the available space for the item */ - public int getAvailableSpace(Player player, ItemStack newItemStack) { + public static int getAvailableSpace(Player player, ItemStack newItemStack) { int availableSpace = 0; PlayerInventory inventory = player.getInventory(); // Get all similar item stacks with a similar material in the player's inventory. @@ -39,9 +28,8 @@ public int getAvailableSpace(Player player, ItemStack newItemStack) { } } - ItemStack[] inventoryContents = serverVersion >= 9 ? inventory.getStorageContents() : inventory.getContents(); // Get all empty slots in the player's inventory. - for (ItemStack existingItemStack : inventoryContents) { + for (ItemStack existingItemStack : inventory.getStorageContents()) { if (existingItemStack == null) { availableSpace += newItemStack.getMaxStackSize(); } @@ -50,4 +38,7 @@ public int getAvailableSpace(Player player, ItemStack newItemStack) { return availableSpace; } + private InventoryHelper() { + // Not called. + } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/MaterialHelper.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/MaterialHelper.java index b79c63922..930a1f920 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/MaterialHelper.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/MaterialHelper.java @@ -20,12 +20,10 @@ public class MaterialHelper { private final Logger logger; - private final int serverVersion; @Inject - public MaterialHelper(Logger logger, int serverVersion) { + public MaterialHelper(Logger logger) { this.logger = logger; - this.serverVersion = serverVersion; } /** @@ -53,7 +51,7 @@ public Material matchMaterial(String name, Material defaultMaterial, String usag return defaultMaterial; } Material material = Material.matchMaterial(name); - if (material == null && serverVersion >= 13) { + if (material == null) { material = Material.matchMaterial(name, true); } if (material == null) { @@ -70,16 +68,11 @@ public Material matchMaterial(String name, Material defaultMaterial, String usag * @param itemStack * @return true if the item is a non-water potion, false otherwise */ - @SuppressWarnings("deprecation") public boolean isAnyPotionButWater(ItemStack itemStack) { if (itemStack.getType() != Material.POTION) { return false; } - if (serverVersion >= 9) { - // Method getBasePotionData does not exist for versions prior to Minecraft 1.9. - return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().getType() != PotionType.WATER; - } - return itemStack.getDurability() != 0; + return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().getType() != PotionType.WATER; } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/SoundPlayer.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/SoundPlayer.java index 33dc85ffd..c5a74859b 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/SoundPlayer.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/SoundPlayer.java @@ -18,53 +18,27 @@ public class SoundPlayer { private final Logger logger; - private final int serverVersion; @Inject - public SoundPlayer(Logger logger, int serverVersion) { + public SoundPlayer(Logger logger) { this.logger = logger; - this.serverVersion = serverVersion; } /** - * Plays a sound provided via configuration. If the sound is invalid, this method falls back to one of the other - * values provided, dependent on the Minecraft version. + * Plays a sound provided via configuration. If the sound is invalid, this method falls back to the provided + * fallback. * * @param player * @param providedSound * @param fallbackSound - * @param pre13FallbackSound - * @param pre9FallbackSound */ - public void play(Player player, String providedSound, String fallbackSound, String pre13FallbackSound, - String pre9FallbackSound) { + public void play(Player player, String providedSound, String fallbackSound) { if (EnumUtils.isValidEnum(Sound.class, providedSound)) { player.playSound(player.getLocation(), Sound.valueOf(providedSound), 1, 0.7f); } else { - play(player, fallbackSound, pre13FallbackSound, pre9FallbackSound); + player.playSound(player.getLocation(), Sound.valueOf(fallbackSound), 1, 0.7f); logger.warning("Sound " + providedSound + " is invalid, using default instead."); } - - } - - /** - * Plays a sound dependent on the Minecraft version. - * - * @param player - * @param currentSound - * @param pre13Sound - * @param pre9Sound - */ - public void play(Player player, String currentSound, String pre13Sound, String pre9Sound) { - String soundValue; - if (serverVersion < 9) { - soundValue = pre9Sound; - } else if (serverVersion < 13) { - soundValue = pre13Sound; - } else { - soundValue = currentSound; - } - player.playSound(player.getLocation(), Sound.valueOf(soundValue), 1, 0.7f); } } diff --git a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/StatisticIncreaseHandler.java b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/StatisticIncreaseHandler.java index 3a00b7002..3af5cebdd 100644 --- a/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/StatisticIncreaseHandler.java +++ b/advanced-achievements-plugin/src/main/java/com/hm/achievement/utils/StatisticIncreaseHandler.java @@ -29,7 +29,6 @@ public class StatisticIncreaseHandler implements Reloadable { protected final YamlConfiguration mainConfig; - protected final int serverVersion; protected final AchievementMap achievementMap; protected final CacheManager cacheManager; @@ -39,10 +38,9 @@ public class StatisticIncreaseHandler implements Reloadable { private Set configExcludedWorlds; @Inject - public StatisticIncreaseHandler(@Named("main") YamlConfiguration mainConfig, int serverVersion, - AchievementMap achievementMap, CacheManager cacheManager) { + public StatisticIncreaseHandler(@Named("main") YamlConfiguration mainConfig, AchievementMap achievementMap, + CacheManager cacheManager) { this.mainConfig = mainConfig; - this.serverVersion = serverVersion; this.achievementMap = achievementMap; this.cacheManager = cacheManager; } @@ -52,10 +50,6 @@ public void extractConfigurationParameters() { configRestrictCreative = mainConfig.getBoolean("RestrictCreative"); configRestrictSpectator = mainConfig.getBoolean("RestrictSpectator"); configRestrictAdventure = mainConfig.getBoolean("RestrictAdventure"); - // Spectator mode introduced in Minecraft 1.8. Automatically relevant parameter for older versions. - if (configRestrictSpectator && serverVersion < 8) { - configRestrictSpectator = false; - } configExcludedWorlds = new HashSet<>(mainConfig.getStringList("ExcludedWorlds")); } diff --git a/advanced-achievements-plugin/src/main/resources/config.yml b/advanced-achievements-plugin/src/main/resources/config.yml index 710db8352..77edbe853 100644 --- a/advanced-achievements-plugin/src/main/resources/config.yml +++ b/advanced-achievements-plugin/src/main/resources/config.yml @@ -71,10 +71,10 @@ NotifyOtherPlayers: false # Notify other connected players using action bars, otherwise chat messages are used. ActionBarNotify: true -# Display achievement DisplayName and Message as screen titles. Minimum Minecraft version: 1.8. +# Display achievement DisplayName and Message as screen titles. TitleScreen: true -# Display a boss bar showing progress a few seconds after an achievement is received. Minimum Minecraft version: 1.9. +# Display a boss bar showing progress a few seconds after an achievement is received. BossBarProgress: true # Send informative chat messages to the player receiving an achievement. @@ -92,7 +92,7 @@ ChatHeader: "§7[%ICON%§7]" RestrictCreative: false # Stop all stats from increasing when player in spectator mode, including PlayedTime. Connection achievements will only -# be handled once a player switches to a non-spectator mode. Minimum Minecraft version: 1.8. +# be handled once a player switches to a non-spectator mode. RestrictSpectator: true # Stop all stats from increasing when player in adventure mode, including PlayedTime. Connection achievements will only @@ -136,7 +136,7 @@ StatisticCooldown: MusicDiscs: 30 BooksEdited: 10 -# Display action bar message when player performs an action while in a cooldown period. Minimum Minecraft version: 1.8. +# Display action bar message when player performs an action while in a cooldown period. CooldownActionBar: true # Locale used to format dates in /aach book and /aach list. You must select an ISO 639 language code. The list of @@ -159,11 +159,10 @@ AllAchievementsReceivedRewards: IgnoreAFKPlayedTime: false # Register advancements with a description corresponding to the Goal parameter of each achievement. If changed, run -# /aach generate to regenerate advancements with the new value taken into account. Minimum Minecraft version: 1.12. +# /aach generate to regenerate advancements with the new value taken into account. RegisterAdvancementDescriptions: true # Hide advancements from the advancement GUI. Advancement notifications will still appear when receiving achievements. -# Minimum Minecraft version: 1.12. HideAdvancements: false # Title shown on the root advancement. @@ -185,10 +184,6 @@ ForbiddenFireworkBlocks: - command_block_minecart - furnace_minecart - chest_minecart - - explosive_minecart - - command_minecart - - powered_minecart - - storage_minecart # Used for the Fireworks achievement category. In vanilla Minecraft, fireworks can only be launched on the following # blocks when sneaking. Unless listed here, players may be able to abuse the Fireworks category by repeatedly right @@ -300,36 +295,9 @@ ForbiddenFireworkBlocksWhenNotSneaking: - oak_wall_sign - spruce_sign - spruce_wall_sign - - sign - - wall_sign - - workbench - - burning_furnace - - wood_button - - trap_door - - fence_gate - - enchantment_table - - wood_door - - wooden_door - - boat - - bed_block - - cake_block - - redstone_comparator_off - - redstone_comparator_on - - diode_block_off - - diode_block_on - - command - - boat_acacia - - boat_birch - - boat_dark_oak - - boat_jungle - - boat_spruce - - command_repeating - - command_chain - - silver_shulker_box - - sign_post # Used for the HoePlowings achievement category. You may need to expand this list when new Minecraft versions are -# released. In Minecraft versions prior to 1.13, replace grass_block with grass. +# released. HoePlowableBlocks: - dirt - grass_block @@ -340,7 +308,6 @@ FishableFish: - salmon - pufferfish - tropical_fish - - raw_fish #======================================================================================================================# # GUI SETTINGS # @@ -446,7 +413,6 @@ BungeeMode: false # Count blocks placed. You can use any of the following: # - block names (available names: https://github.com/PyvesB/advanced-achievements/wiki/Material-names). -# - notations such as sand:1 (i.e. sand item with metadata 1, red sand) for 1.7-1.12 Minecraft versions . # - custom display name of items (e.g. the name of a player's head). Places: chest: @@ -495,7 +461,6 @@ Places: # Count blocks broken. You can use any of the following: # - block names (available names: https://github.com/PyvesB/advanced-achievements/wiki/Material-names). -# - notations such as sand:1 (i.e. sand item with metadata 1, red sand) for 1.7-1.12 Minecraft versions . Breaks: ice: 10: @@ -529,7 +494,7 @@ Breaks: # Count entities killed. You can use any of the following: # - entity types (available names: https://github.com/PyvesB/advanced-achievements/wiki/Entity-names). # - poweredcreeper. -# - custom mob name (name tag/plugins such as Mythic Mobs) for Minecraft 1.8 or more recent. +# - custom mob name (name tag/plugins such as Mythic Mobs). # - player to track player kills as a whole. # - specificplayer- followed by player UUID to track how many times a specific player has been killed. Kills: @@ -636,7 +601,7 @@ JobsReborn: DisplayName: Hunter Type: normal -# Count effects held (effect name in lower case). Minimum Minecraft version: 1.13. +# Count effects held (effect name in lower case). # Available effects: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html EffectsHeld: jump: @@ -885,7 +850,7 @@ DistanceBoat: DisplayName: Great Sailor Type: normal -# Count distance traveled with elytra. Minimum Minecraft version: 1.9. +# Count distance traveled with elytra. DistanceGliding: 100: Goal: Fly 100 blocks with an elytra. @@ -894,7 +859,7 @@ DistanceGliding: DisplayName: Angel Type: rare -# Count distance traveled on a llama. Minimum Minecraft version: 1.11. +# Count distance traveled on a llama. DistanceLlama: 150: Goal: Travel 150 blocks with a llama. @@ -997,7 +962,7 @@ EnderPearls: DisplayName: Teleport Man Type: normal -# Count pets given to another player (requires Pet Master plugin version 1.4 or above). +# Count pets given to another player (requires Pet Master plugin). PetMasterGive: 3: Goal: Give 3 pets to friends. @@ -1006,7 +971,7 @@ PetMasterGive: DisplayName: Donator Type: rare -# Count pets received from another player (requires Pet Master plugin version 1.4 or above). +# Count pets received from another player (requires Pet Master plugin). PetMasterReceive: 10: Goal: Receive 10 pets. diff --git a/advanced-achievements-plugin/src/main/resources/gui-legacy.yml b/advanced-achievements-plugin/src/main/resources/gui-legacy.yml deleted file mode 100644 index 75a88dfe7..000000000 --- a/advanced-achievements-plugin/src/main/resources/gui-legacy.yml +++ /dev/null @@ -1,216 +0,0 @@ -#======================================================================================================================# -# _ _ _ _ _ _ _ # -# / \ __| |_ ____ _ _ __ ___ ___ __| | / \ ___| |__ (_) _____ _____ _ __ ___ ___ _ __ | |_ ___ # -# / _ \ / _` \ \ / / _` | '_ \ / __/ _ \/ _` | / _ \ / __| '_ \| |/ _ \ \ / / _ \ '_ ` _ \ / _ \ '_ \| __/ __| # -# / ___ \ (_| |\ V / (_| | | | | (_| __/ (_| | / ___ \ (__| | | | | __/\ V / __/ | | | | | __/ | | | |_\__ \ # -# /_/ \_\__,_| \_/ \__,_|_| |_|\___\___|\__,_| /_/ \_\___|_| |_|_|\___| \_/ \___|_| |_| |_|\___|_| |_|\__|___/ # -# # -#======================================================================================================================# - -# Possible items: github.com/PyvesB/advanced-achievements/wiki/Material-names -# Do not use the same Item and Metadata pair twice. -# If you are using a Minecraft version prior to 1.9, change grass_path of HoePlowings! -# The order of the categories in the GUI will match the same order as in this file. - -# Items used to represent the achievements depending on their Type parameter. -AchievementNotStarted: - normal: - Item: stained_clay - Metadata: 14 - rare: - Item: stained_glass - Metadata: 14 -AchievementStarted: - normal: - Item: stained_clay - Metadata: 4 - rare: - Item: stained_glass - Metadata: 4 -AchievementReceived: - normal: - Item: stained_clay - Metadata: 5 - rare: - Item: stained_glass - Metadata: 5 - -# Locks for HideProgressiveAchievements and HideNotReceivedCategories. -AchievementLock: - Item: stained_clay - Metadata: 15 -CategoryLock: - Item: bedrock - Metadata: 0 - -# Buttons when navigating in a category. BackButton is ignored if BackButtonIsCategoryItem is true in config.yml. -BackButton: - Item: book - Metadata: 0 -PreviousButton: - Item: wood_button - Metadata: 0 -NextButton: - Item: stone_button - Metadata: 0 - -# Items used to represent the categories. -Connections: - Item: wood_door - Metadata: 0 -Places: - Item: stone - Metadata: 6 -Breaks: - Item: smooth_brick - Metadata: 2 -Kills: - Item: bone - Metadata: 0 -Crafts: - Item: workbench - Metadata: 0 -JobsReborn: - Item: iron_ingot - Metadata: 0 -Deaths: - Item: skull_item - Metadata: 0 -Arrows: - Item: arrow - Metadata: 0 -Snowballs: - Item: snow_ball - Metadata: 0 -Eggs: - Item: egg - Metadata: 0 -Fish: - Item: raw_fish - Metadata: 2 -Treasures: - Item: fishing_rod - Metadata: 0 -ItemBreaks: - Item: flint - Metadata: 0 -EatenItems: - Item: melon - Metadata: 0 -Shear: - Item: shears - Metadata: 0 -Milk: - Item: milk_bucket - Metadata: 0 -LavaBuckets: - Item: lava_bucket - Metadata: 0 -WaterBuckets: - Item: water_bucket - Metadata: 0 -Trades: - Item: emerald - Metadata: 0 -AnvilsUsed: - Item: anvil - Metadata: 0 -Enchantments: - Item: enchantment_table - Metadata: 0 -Beds: - Item: bed - Metadata: 0 -MaxLevel: - Item: exp_bottle - Metadata: 0 -ConsumedPotions: - Item: glass_bottle - Metadata: 0 -PlayedTime: - Item: watch - Metadata: 0 -DistanceFoot: - Item: leather_boots - Metadata: 0 -DistancePig: - Item: carrot_stick - Metadata: 0 -DistanceHorse: - Item: saddle - Metadata: 0 -DistanceMinecart: - Item: minecart - Metadata: 0 -DistanceBoat: - Item: boat - Metadata: 0 -DistanceGliding: - Item: elytra - Metadata: 0 -DistanceLlama: - Item: carpet - Metadata: 9 -DistanceSneaking: - Item: leather_helmet - Metadata: 0 -ItemDrops: - Item: hopper - Metadata: 0 -ItemPickups: - Item: chest - Metadata: 0 -HoePlowings: - Item: grass_path - Metadata: 0 -Fertilising: - Item: ink_sack - Metadata: 15 -Taming: - Item: leash - Metadata: 0 -Breeding: - Item: wheat - Metadata: 0 -Brewing: - Item: brewing_stand_item - Metadata: 0 -Fireworks: - Item: firework - Metadata: 0 -MusicDiscs: - Item: jukebox - Metadata: 0 -EnderPearls: - Item: ender_pearl - Metadata: 0 -PetMasterGive: - Item: gold_barding - Metadata: 0 -PetMasterReceive: - Item: iron_barding - Metadata: 0 -Smelting: - Item: furnace - Metadata: 0 -PlayerCommands: - Item: paper - Metadata: 0 -TargetsShot: - Item: firework_charge - Metadata: 0 -BooksEdited: - Item: book_and_quill - Metadata: 0 -Custom: - Item: feather - Metadata: 0 -Commands: - Item: bookshelf - Metadata: 0 - -#======================================================================================================================# -# FUTURE PAREMETERS # -# # -# New parameters added in future plugin releases will appear below. # -#======================================================================================================================# diff --git a/advanced-achievements-plugin/src/main/resources/lang-BP.yml b/advanced-achievements-plugin/src/main/resources/lang-BP.yml index 6e6ddeb39..5037902b9 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-BP.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-BP.yml @@ -212,7 +212,6 @@ reset-all-successful: "Todas as estatísticas foram apagadas para PLAYER." # Related to /aach generate. advancements-generated: "Avanços foram gerados com sucesso." -minecraft-not-supported: "Avanços não suportados na sua versão do Minecraft. Por favor, atualize para 1.13." # Used in /aach inspect achievement-not-recognized: "Conquista chamada 'NAME' não foi reconhecido. Você quis dizer CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-CN.yml b/advanced-achievements-plugin/src/main/resources/lang-CN.yml index 257a3cf6c..3c031de8b 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-CN.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-CN.yml @@ -211,7 +211,6 @@ reset-all-successful: " 玩家 PLAYER 的所有统计数据已经被清除。" # 与 /aach generate 相关 advancements-generated: "成功生成成就." -minecraft-not-supported: "你的Minecraft版本不支持成就,请升级到 1.12+." # 与 /aach inspect 相关 achievement-not-recognized: 名称为 'NAME' 的成就无法识别,您的意思是 CLOSEST_MATCH 吗?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-CZ.yml b/advanced-achievements-plugin/src/main/resources/lang-CZ.yml index 4cb3f58c9..9d75f1ead 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-CZ.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-CZ.yml @@ -190,7 +190,6 @@ reset-successful: " statistiky byli resetovani hraci PLAYER." # Related to /aach generate. advancements-generated: "Uspechy byli uspesne vygenerovany." -minecraft-not-supported: "Uspechy nefunguji na vasi versi serveru. Pouzijte prosim verzi 1.12+." #============================================================# # +--------------------------------------------------------+ # diff --git a/advanced-achievements-plugin/src/main/resources/lang-DA.yml b/advanced-achievements-plugin/src/main/resources/lang-DA.yml index 3fd12f8a3..3dfd85c90 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-DA.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-DA.yml @@ -211,7 +211,6 @@ reset-all-successful: "Alle statistikker var ryddet for PLAYER." # Relateret til /aach generate. advancements-generated: "præsentationer var vellykket genereret." -minecraft-not-supported: "Præsentationer ikke understøttet i din Minecraft version. Venligst opdater til 1.12+." # Relateret til /aach inspect achievement-not-recognized: "Præsentation kaldet 'NAME' var ikke genkedt. Mente du CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-DE.yml b/advanced-achievements-plugin/src/main/resources/lang-DE.yml index 8b191bf06..975f3be44 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-DE.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-DE.yml @@ -203,7 +203,6 @@ reset-successful: "Die Statistik von Spieler wurde zurückgesetzt." advancements-generated: "Fortschritte wurden erfolgreich generiert." aach-command-generate: "Generiere Fortschritte." aach-command-generate-hover: "Das ist möglicherweise ein langsamer Befehl; Verwende ihn bedacht!" -minecraft-not-supported: Fortschritte sind ab der Minecraftversion 1.12+ verfügbar. # Related to /aach inspect achievement-not-recognized: "Der Erfolg mit dem namen 'NAME' wurde nicht erkannt. Meintest du CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-ES.yml b/advanced-achievements-plugin/src/main/resources/lang-ES.yml index 3d943a704..67a844460 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-ES.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-ES.yml @@ -237,7 +237,6 @@ reset-all-successful: "Se han reiniciado todas las estadísticas del jugador PLA # Mensajes para /aach generate. advancements-generated: "Se han generado logros exitosamente" -minecraft-not-supported: "Los logros no están soportados por tu versión de Minecraft, por favor actualiza a una versión igual o superior a la 1.12" # Mensajes para /aach inspect achievement-not-recognized: "El logro de NAME no existe. ¿Quizás quisiste decir CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-FI.yml b/advanced-achievements-plugin/src/main/resources/lang-FI.yml index 4e6e9f7f7..d6b189611 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-FI.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-FI.yml @@ -196,7 +196,6 @@ reset-successful: " tilastot nollattiin pelaajalle PLAYER." # Related to /aach generate. advancements-generated: "MC-Saavutukset Generoitu onnistuneesti." -minecraft-not-supported: "MC-Saavutuksia ei tueta tässä Minecraft versiossa. Ole hyvä ja päivitä versioon 1.12+." # Related to /aach inspect achievement-not-recognized: "Saavutusta nimellä 'NAME' ei tunnistettu. Tarkoititko CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-FR.yml b/advanced-achievements-plugin/src/main/resources/lang-FR.yml index 512ad3105..bd774b2c6 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-FR.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-FR.yml @@ -212,7 +212,6 @@ reset-all-successful: "Toute les statistiques ont été réinitialisées pour PL # Used in /aach generate. advancements-generated: "Avancements générés avec succès." -minecraft-not-supported: "Les avancements ne sont pas supportés avec votre version de Minecraft. (1.12+)" # Used in /aach inspect achievement-not-recognized: "Le succès 'NAME' n'existe pas. Voulez-vous dire CLOSEST_MATCH ?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-HU.yml b/advanced-achievements-plugin/src/main/resources/lang-HU.yml index 5a50270f9..f47fcb9fd 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-HU.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-HU.yml @@ -197,7 +197,6 @@ reset-successful: " a statisztikák törölve PLAYER játékostól." # Related to /aach generate. advancements-generated: "A küldetések sikeresen létrehozva." -minecraft-not-supported: "A Minecraft verziójában nem támogatott a küldetések. Kérjük, frissítse 1.12+." # Related to /aach inspect achievement-not-recognized: "A(z) 'NAME' elnevezésű küldetést nem sikerült felismerni. Úgy érted CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-PL.yml b/advanced-achievements-plugin/src/main/resources/lang-PL.yml index 111ea229f..c327763a1 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-PL.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-PL.yml @@ -207,8 +207,6 @@ reset-successful: Statystyki zostaly wyczyszczone przez gracza PLAYER. # Related to /aach generate. advancements-generated: Pomyslnie wygenerowano postepy. -minecraft-not-supported: Postepy nie sa wspierane w twojej wersji Minecrafta. Zmien - wersje na 1.12+. # Related to /aach add. error-value: Wartosc musi byc liczba! diff --git a/advanced-achievements-plugin/src/main/resources/lang-RU.yml b/advanced-achievements-plugin/src/main/resources/lang-RU.yml index 852184ed6..6ad83acf4 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-RU.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-RU.yml @@ -211,7 +211,6 @@ reset-all-successful: 'Статистика достижений PLAYER сбро # Команда /aach generate. advancements-generated: Достижения успешно скопированы в окно достижений игры. -minecraft-not-supported: Окно достижений игры не поддерживается вашей версией. Обновитесь до 1.12 или выше. # Команда /aach inspect. achievement-not-recognized: Достижение NAME не найдено. Возможно, вы имели ввиду CLOSEST_MATCH? diff --git a/advanced-achievements-plugin/src/main/resources/lang-SK.yml b/advanced-achievements-plugin/src/main/resources/lang-SK.yml index cc550a14c..18bea94f8 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-SK.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-SK.yml @@ -208,7 +208,6 @@ reset-all-successful: "Všetky štatistiky pre hráča PLAYER boli vyčistené." # Related to /aach generate. advancements-generated: "Úspechy boli úspešne vygenerované." -minecraft-not-supported: "Úspechy nefunguju na vašej verzii servera. Použi prosím verziu 1.12+." # Related to /aach inspect achievement-not-recognized: "Úspech s názvom 'NAME' nebol rozpoznaný. Myslel si CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-TR.yml b/advanced-achievements-plugin/src/main/resources/lang-TR.yml index e96546ecf..111f20cca 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-TR.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-TR.yml @@ -204,8 +204,6 @@ reset-successful: PLAYER oyuncusunun istatistikleri sıfırlandı. # Related to /aach generate. advancements-generated: Gelişimler başarıyla oluşturuldu. -minecraft-not-supported: Gelişimler bu Minecraft sürümünde kullanılamıyor. Lütfen - 1.12+ üstüne güncelleyin. # Related to /aach inspect achievement-not-recognized: '''NAME'' isimli başarım bulunamadı. Bunu mu demek istediniz: diff --git a/advanced-achievements-plugin/src/main/resources/lang-TW.yml b/advanced-achievements-plugin/src/main/resources/lang-TW.yml index 6383f235d..cd62327f3 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-TW.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-TW.yml @@ -196,7 +196,6 @@ reset-successful: " 統計資訊已為 PLAYER 清除。" # Related to /aach generate. advancements-generated: "進度已順利生成。" -minecraft-not-supported: "你的 Minecraft 版本不支援進度,請升級至 1.12+。" # Related to /aach inspect achievement-not-recognized: "名為 'NAME' 無法被識別,你想表達的是 CLOSEST_MATCH 嗎?" diff --git a/advanced-achievements-plugin/src/main/resources/lang-VN.yml b/advanced-achievements-plugin/src/main/resources/lang-VN.yml index dcb38685a..6ae5541e1 100644 --- a/advanced-achievements-plugin/src/main/resources/lang-VN.yml +++ b/advanced-achievements-plugin/src/main/resources/lang-VN.yml @@ -189,7 +189,6 @@ reset-successful: ' thống kê đã được xoá cho PLAYER.' # Related to /aach generate. advancements-generated: Các tiến bộ đã được tạo thành công. -minecraft-not-supported: Các cải tiến không được hỗ trợ trong phiên bản Minecraft của bạn. Vui lòng cập nhật lên 1.12+. #============================================================# # +--------------------------------------------------------+ # diff --git a/advanced-achievements-plugin/src/main/resources/lang.yml b/advanced-achievements-plugin/src/main/resources/lang.yml index 596a94a91..818528532 100644 --- a/advanced-achievements-plugin/src/main/resources/lang.yml +++ b/advanced-achievements-plugin/src/main/resources/lang.yml @@ -214,7 +214,6 @@ reset-all-successful: "All statistics were cleared for PLAYER." # Used in /aach generate. advancements-generated: "Advancements were successfully generated." -minecraft-not-supported: "Advancements not supported in your Minecraft version. Please update to 1.12+." # Used in /aach inspect achievement-not-recognized: "Achievement called 'NAME' was not recognized. Did you mean CLOSEST_MATCH?" diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/command/completer/CommandTabCompleterTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/command/completer/CommandTabCompleterTest.java index 970cd0861..2ec22a26e 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/command/completer/CommandTabCompleterTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/command/completer/CommandTabCompleterTest.java @@ -2,7 +2,6 @@ import static java.util.Arrays.asList; import static java.util.Collections.emptyList; -import static java.util.Collections.emptySet; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.ArgumentMatchers.anyString; @@ -11,7 +10,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.stream.IntStream; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -28,7 +26,6 @@ import com.hm.achievement.command.executable.EasterEggCommand; import com.hm.achievement.command.executable.GenerateCommand; import com.hm.achievement.command.executable.HelpCommand; -import com.hm.achievement.command.executable.Upgrade13Command; import com.hm.achievement.config.AchievementMap; import com.hm.achievement.domain.Achievement.AchievementBuilder; @@ -55,9 +52,6 @@ class CommandTabCompleterTest { @Mock private EasterEggCommand easterEggCommand; - @Mock - private Upgrade13Command upgrade13Command; - @Mock private GenerateCommand generateCommand; @@ -70,7 +64,6 @@ void setUp() { Set commands = new HashSet<>(); commands.add(bookCommand); commands.add(easterEggCommand); - commands.add(upgrade13Command); commands.add(generateCommand); commands.add(helpCommand); AchievementMap achievementMap = new AchievementMap(); @@ -82,7 +75,7 @@ void setUp() { .displayName("Spaced Name Achievement!").build()); achievementMap.put(new AchievementBuilder().name("ach4").displayName("Display 4").subcategory("workbench") .category(MultipleAchievements.CRAFTS).build()); - underTest = new CommandTabCompleter(achievementMap, commands, 13); + underTest = new CommandTabCompleter(achievementMap, commands); } @Test @@ -135,7 +128,7 @@ void shouldReturnNullForPlayerArgOfAddCommand() { } @Test - void shoudCompleteWithNonEasterEggAndNonUpgrade13Commands() { + void shoudCompleteWithNonEasterEggCommand() { when(commandSender.hasPermission(anyString())).thenReturn(true); String[] args = { "" }; @@ -144,20 +137,6 @@ void shoudCompleteWithNonEasterEggAndNonUpgrade13Commands() { assertEquals(asList("book", "generate", "help"), completionResult); } - @Test - void shoudNotCompleteWithGenerateCommandOnOldMinecraftVersion() { - Set commands = new HashSet<>(); - commands.add(bookCommand); - commands.add(generateCommand); - underTest = new CommandTabCompleter(new AchievementMap(), commands, 11); - when(commandSender.hasPermission(anyString())).thenReturn(true); - - String[] args = { "" }; - List completionResult = underTest.onTabComplete(commandSender, command, null, args); - - assertEquals(asList("book"), completionResult); - } - @Test void shoudNotCompleteWithCommandsForWhichTheSenderHasNoPermissions() { when(commandSender.hasPermission(anyString())).thenReturn(false); @@ -224,47 +203,6 @@ void shoudCompleteForInspectCommand() { assertEquals(asList("spaced␣name␣achievement!", "special␣event␣achievement!"), completionResult); } - @Test - void shoudTruncateCompletionListOnOldServerVersionsIfOverFiftyElements() { - AchievementMap achievementMap = new AchievementMap(); - IntStream.rangeClosed(1, 100) - .boxed() - .map(i -> new AchievementBuilder() - .name("ach" + i) - .displayName("Display " + i) - .category(CommandAchievements.COMMANDS) - .subcategory("yourAch" + i) - .build()) - .forEach(achievementMap::put); - underTest = new CommandTabCompleter(achievementMap, emptySet(), 12); - - String[] args = { "give", "" }; - List completionResult = underTest.onTabComplete(commandSender, command, null, args); - - assertEquals(50, completionResult.size()); - assertEquals("\u2022\u2022\u2022", completionResult.get(49)); - } - - @Test - void shoudNotTruncateCompletionListIfRecentServerVersion() { - AchievementMap achievementMap = new AchievementMap(); - IntStream.rangeClosed(1, 100) - .boxed() - .map(i -> new AchievementBuilder() - .name("ach" + i) - .displayName("Display " + i) - .category(CommandAchievements.COMMANDS) - .subcategory("yourAch" + i) - .build()) - .forEach(achievementMap::put); - underTest = new CommandTabCompleter(achievementMap, emptySet(), 16); - - String[] args = { "give", "" }; - List completionResult = underTest.onTabComplete(commandSender, command, null, args); - - assertEquals(100, completionResult.size()); - } - @Test void shoudReturnEmptyStringIfNoCompletionAvailable() { String[] args = { "list", "" }; diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/config/RewardParserTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/config/RewardParserTest.java index f9cb7b55d..7964b65b0 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/config/RewardParserTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/config/RewardParserTest.java @@ -56,8 +56,7 @@ void setUp() throws Exception { mainConfig = new YamlConfiguration(); langConfig = new YamlConfiguration(); langConfig.load(Paths.get(getClass().getClassLoader().getResource("reward-parser/lang.yml").toURI()).toFile()); - underTest = new RewardParser(mainConfig, langConfig, advancedAchievements, - new MaterialHelper(Logger.getGlobal(), 16), 16); + underTest = new RewardParser(mainConfig, langConfig, advancedAchievements, new MaterialHelper(Logger.getGlobal())); } @Test @@ -177,24 +176,6 @@ void shouldParseMaxHealthReward() throws Exception { verify(healthAttribute).setBaseValue(3.0); } - @SuppressWarnings("deprecation") - @Test - void shouldParseMaxHealthRewardOnOlderMinecraftVersions() throws Exception { - underTest = new RewardParser(mainConfig, langConfig, advancedAchievements, new MaterialHelper(Logger.getGlobal(), 8), - 8); - mainConfig.load(Paths.get(getClass().getClassLoader().getResource("reward-parser/max-health.yml").toURI()).toFile()); - when(player.getMaxHealth()).thenReturn(2.0); - - List rewards = underTest.parseRewards(""); - - assertEquals(1, rewards.size()); - Reward reward = rewards.get(0); - assertEquals(Arrays.asList("increase max health by 2"), reward.getListTexts()); - assertEquals(Arrays.asList("Your max health has increased by 2!"), reward.getChatTexts()); - reward.getRewarder().accept(player); - verify(player).setMaxHealth(4.0); - } - @Test void shouldParseMaxOxygenReward() throws Exception { mainConfig.load(Paths.get(getClass().getClassLoader().getResource("reward-parser/max-oxygen.yml").toURI()).toFile()); diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/db/H2DatabaseManagerTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/db/H2DatabaseManagerTest.java index 54720f67b..06d6231ca 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/db/H2DatabaseManagerTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/db/H2DatabaseManagerTest.java @@ -55,7 +55,7 @@ static void setUpClass(@TempDir Path tempDir) throws Exception { when(plugin.getDataFolder()).thenReturn(tempDir.relativize(Paths.get("").toAbsolutePath()).toFile()); YamlConfiguration config = YamlConfiguration .loadConfiguration(new InputStreamReader(H2DatabaseManagerTest.class.getResourceAsStream("/config-h2.yml"))); - db = new H2DatabaseManager(config, LOGGER, new DatabaseUpdater(LOGGER, null), plugin, newDirectExecutorService()); + db = new H2DatabaseManager(config, LOGGER, new DatabaseUpdater(LOGGER), plugin, newDirectExecutorService()); db.initialise(); db.extractConfigurationParameters(); } diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/listener/PlayerAdvancedAchievementListenerTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/listener/PlayerAdvancedAchievementListenerTest.java index f50a96a22..7999a0b26 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/listener/PlayerAdvancedAchievementListenerTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/listener/PlayerAdvancedAchievementListenerTest.java @@ -70,7 +70,7 @@ void setUp() throws Exception { .loadConfiguration(new InputStreamReader(getClass().getResourceAsStream("/config-reward-reception.yml"))); YamlConfiguration langConfig = YamlConfiguration .loadConfiguration(new InputStreamReader(getClass().getResourceAsStream("/lang.yml"))); - underTest = new PlayerAdvancedAchievementListener(mainConfig, langConfig, 11, mock(Logger.class), + underTest = new PlayerAdvancedAchievementListener(mainConfig, langConfig, mock(Logger.class), new StringBuilder(PLUGIN_HEADER), new CacheManager(plugin, abstractDatabaseManager), plugin, rewardParser, achievementMap, abstractDatabaseManager, null, null); underTest.extractConfigurationParameters(); diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/ColorHelperTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/ColorHelperTest.java index d8e65553f..5637b3130 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/ColorHelperTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/ColorHelperTest.java @@ -37,9 +37,9 @@ void shouldConvertChatFormatsToWhite(ChatColor chatColor) { @ParameterizedTest @MethodSource("chatAndBarColors") void shouldConvertChatColorToBarColor(ChatColor chatColor, BarColor barColor) { - String color = ColorHelper.convertChatColorToBarColor(chatColor); + BarColor color = ColorHelper.convertChatColorToBarColor(chatColor); - assertEquals(barColor.name(), color); + assertEquals(barColor, color); } static Stream chatAndBarColors() { diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/InventoryHelperTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/InventoryHelperTest.java index c25a8c439..7ca2e17b8 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/InventoryHelperTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/InventoryHelperTest.java @@ -9,7 +9,6 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; @@ -31,8 +30,8 @@ class InventoryHelperTest { private ItemStack existingItemStack; @SuppressWarnings({ "unchecked", "rawtypes" }) - @BeforeEach - void setup() { + @Test + void shouldReturnAvailableSpace() { HashMap itemStacks = new HashMap<>(); itemStacks.put(1, existingItemStack); itemStacks.put(2, existingItemStack); @@ -42,23 +41,9 @@ void setup() { when(inputItemStack.getType()).thenReturn(Material.STICK); when(inputItemStack.isSimilar(existingItemStack)).thenReturn(true, false); when(inputItemStack.getMaxStackSize()).thenReturn(64); - } - - @Test - void shouldReturnAvailableSpaceUsingMinecraft14() { - InventoryHelper inventoryHelper = new InventoryHelper(14); when(player.getInventory().getStorageContents()).thenReturn(new ItemStack[] { null }); // Adds 64. - int availableSpace = inventoryHelper.getAvailableSpace(player, inputItemStack); - assertEquals(125, availableSpace); - } - - @Test - void shouldReturnAvailableSpaceUsingMinecraft8() { - InventoryHelper inventoryHelper = new InventoryHelper(8); - when(player.getInventory().getContents()).thenReturn(new ItemStack[] { null }); // Adds 64. - - int availableSpace = inventoryHelper.getAvailableSpace(player, inputItemStack); + int availableSpace = InventoryHelper.getAvailableSpace(player, inputItemStack); assertEquals(125, availableSpace); } diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/MaterialHelperTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/MaterialHelperTest.java index 378403497..6d53f9fe7 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/MaterialHelperTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/MaterialHelperTest.java @@ -15,7 +15,6 @@ import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) -@SuppressWarnings("deprecation") class MaterialHelperTest { @Mock @@ -25,39 +24,21 @@ class MaterialHelperTest { private ItemStack itemStack; @Test - void shouldReturnFalseForWaterPotionWhenUsingMinecraft14() { + void shouldReturnFalseForWaterPotion() { when(potionMeta.getBasePotionData()).thenReturn(new PotionData(PotionType.WATER)); when(itemStack.getItemMeta()).thenReturn(potionMeta); when(itemStack.getType()).thenReturn(Material.POTION); - MaterialHelper underTest = new MaterialHelper(null, 14); + MaterialHelper underTest = new MaterialHelper(null); assertFalse(underTest.isAnyPotionButWater(itemStack)); } @Test - void shouldReturnTrueForOtherPotionWhenUsingMinecraft14() { + void shouldReturnTrueForOtherPotion() { when(potionMeta.getBasePotionData()).thenReturn(new PotionData(PotionType.INSTANT_DAMAGE)); when(itemStack.getItemMeta()).thenReturn(potionMeta); when(itemStack.getType()).thenReturn(Material.POTION); - MaterialHelper underTest = new MaterialHelper(null, 14); - - assertTrue(underTest.isAnyPotionButWater(itemStack)); - } - - @Test - void shouldReturnFalseForWaterPotionWhenUsingMinecraft8() { - when(itemStack.getType()).thenReturn(Material.POTION); - when(itemStack.getDurability()).thenReturn((short) 0); - MaterialHelper underTest = new MaterialHelper(null, 8); - - assertFalse(underTest.isAnyPotionButWater(itemStack)); - } - - @Test - void shouldReturnTrueForOtherPotionWhenUsingMinecraft8() { - when(itemStack.getType()).thenReturn(Material.POTION); - when(itemStack.getDurability()).thenReturn((short) 1); - MaterialHelper underTest = new MaterialHelper(null, 8); + MaterialHelper underTest = new MaterialHelper(null); assertTrue(underTest.isAnyPotionButWater(itemStack)); } @@ -65,7 +46,7 @@ void shouldReturnTrueForOtherPotionWhenUsingMinecraft8() { @Test void shouldReturnFalseForOtherMaterial() { when(itemStack.getType()).thenReturn(Material.SPLASH_POTION); - MaterialHelper underTest = new MaterialHelper(null, 12); + MaterialHelper underTest = new MaterialHelper(null); assertFalse(underTest.isAnyPotionButWater(itemStack)); } diff --git a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/SoundPlayerTest.java b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/SoundPlayerTest.java index f61ab764e..8391d0985 100644 --- a/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/SoundPlayerTest.java +++ b/advanced-achievements-plugin/src/test/java/com/hm/achievement/utils/SoundPlayerTest.java @@ -33,47 +33,19 @@ void setUp() { @Test void shouldUseProvidedSoundIfValid() { - SoundPlayer underTest = new SoundPlayer(logger, 13); + SoundPlayer underTest = new SoundPlayer(logger); - underTest.play(player, "ENTITY_FIREWORK_ROCKET_BLAST", "SOME_FALLBACK", "SOME_FALLBACK", "SOME_FALLBACK"); + underTest.play(player, "ENTITY_FIREWORK_ROCKET_BLAST", "SOME_FALLBACK"); verify(player).playSound(location, Sound.ENTITY_FIREWORK_ROCKET_BLAST, 1.0f, 0.7f); } @Test void shouldUseFallbackSoundIfProvidedInvalid() { - SoundPlayer underTest = new SoundPlayer(logger, 13); + SoundPlayer underTest = new SoundPlayer(logger); - underTest.play(player, "INVALID", "ENTITY_FIREWORK_ROCKET_BLAST", "SOME_FALLBACK", "SOME_FALLBACK"); + underTest.play(player, "INVALID", "ENTITY_FIREWORK_ROCKET_BLAST"); verify(player).playSound(location, Sound.ENTITY_FIREWORK_ROCKET_BLAST, 1.0f, 0.7f); } - - @Test - void shouldUseCurrentSoundWhenUsingMinecraft13() { - SoundPlayer underTest = new SoundPlayer(logger, 13); - - underTest.play(player, "ENTITY_FIREWORK_ROCKET_BLAST", "SOME_FALLBACK", "SOME_FALLBACK"); - - verify(player).playSound(location, Sound.ENTITY_FIREWORK_ROCKET_BLAST, 1.0f, 0.7f); - } - - @Test - void shouldUsePre13SoundWhenUsingMinecraft12() { - SoundPlayer underTest = new SoundPlayer(logger, 12); - - underTest.play(player, "SOME_FALLBACK", "ENTITY_FIREWORK_ROCKET_BLAST", "SOME_FALLBACK"); - - verify(player).playSound(location, Sound.ENTITY_FIREWORK_ROCKET_BLAST, 1.0f, 0.7f); - } - - @Test - void shouldUsePre9SoundWhenUsingMinecraft8() { - SoundPlayer underTest = new SoundPlayer(logger, 8); - - underTest.play(player, "SOME_FALLBACK", "SOME_FALLBACK", "ENTITY_FIREWORK_ROCKET_BLAST"); - - verify(player).playSound(location, Sound.ENTITY_FIREWORK_ROCKET_BLAST, 1.0f, 0.7f); - } - } diff --git a/advanced-achievements-plugin/src/test/resources/config-reward-reception.yml b/advanced-achievements-plugin/src/test/resources/config-reward-reception.yml index df41da22f..4bb910df7 100644 --- a/advanced-achievements-plugin/src/test/resources/config-reward-reception.yml +++ b/advanced-achievements-plugin/src/test/resources/config-reward-reception.yml @@ -9,7 +9,7 @@ FireworkStyle: ball_large # Otherwise texts will be displayed one after the other. HoverableReceiverChatText: false -# Display achievement Name and Message as screen titles. No effect if using Minecraft 1.7.9 or 1.7.10. +# Display achievement Name and Message as screen titles. TitleScreen: false # Main color of the plugin (default: 5, dark purple). diff --git a/pom.xml b/pom.xml index d609db74b..c19c69340 100644 --- a/pom.xml +++ b/pom.xml @@ -139,11 +139,6 @@ 2.10.10 provided - - com.github.shadowjonathan - ParticleEffect - 1.7.1 - org.postgresql postgresql