diff --git a/pom.xml b/pom.xml index d624282..857029b 100644 --- a/pom.xml +++ b/pom.xml @@ -118,6 +118,12 @@ 1.26.0 provided + + org.projectlombok + lombok + 1.18.34 + provided + @@ -157,4 +163,4 @@ - \ No newline at end of file + diff --git a/src/main/java/ce/ajneb97/ConditionalEvents.java b/src/main/java/ce/ajneb97/ConditionalEvents.java index 6bb23fa..0556553 100644 --- a/src/main/java/ce/ajneb97/ConditionalEvents.java +++ b/src/main/java/ce/ajneb97/ConditionalEvents.java @@ -55,7 +55,7 @@ public void onEnable(){ this.eventsManager = new EventsManager(this); this.dependencyManager = new DependencyManager(this); this.bungeeMessagingManager = new BungeeMessagingManager(this); - this.debugManager = new DebugManager(this); + this.debugManager = new DebugManager(); this.playerManager = new PlayerManager(this); this.savedItemsManager = new SavedItemsManager(this); this.apiManager = new APIManager(this); @@ -109,11 +109,11 @@ public void registerEvents() { pm.registerEvents(new OtherEventsListener(this), this); pm.registerEvents(new CustomEventListener(this), this); - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_9_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(serverVersion, ServerVersion.v1_9_R1)) { pm.registerEvents(new ItemSelectListenerNew(), this); pm.registerEvents(new PlayerEventsListenerNew1_9(this), this); } - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_16_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(serverVersion, ServerVersion.v1_16_R1)) { pm.registerEvents(new PlayerEventsListenerNew1_16(this), this); } diff --git a/src/main/java/ce/ajneb97/MainCommand.java b/src/main/java/ce/ajneb97/MainCommand.java index bab79b7..e7ca712 100644 --- a/src/main/java/ce/ajneb97/MainCommand.java +++ b/src/main/java/ce/ajneb97/MainCommand.java @@ -25,7 +25,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.UUID; public class MainCommand implements CommandExecutor, TabCompleter { @@ -196,7 +195,7 @@ public void debug(String[] args,CommandSender sender,FileConfiguration config,Me playerName = args[2]; } - boolean result = plugin.getDebugManager().setDebugSender(sender,eventName,playerName); + boolean result = plugin.getDebugManager().addDebugger(sender,eventName,playerName); if(result){ if(playerName != null){ msgManager.sendMessage(sender,config.getString("Messages.debugEnabledPlayer") diff --git a/src/main/java/ce/ajneb97/configs/ConfigsManager.java b/src/main/java/ce/ajneb97/configs/ConfigsManager.java index e736c03..ff23556 100644 --- a/src/main/java/ce/ajneb97/configs/ConfigsManager.java +++ b/src/main/java/ce/ajneb97/configs/ConfigsManager.java @@ -156,19 +156,19 @@ public void configureEvents(){ } } if(config.contains(path+".cooldown")) { - cooldown = Long.valueOf(config.getString(path+".cooldown")); + cooldown = Long.parseLong(config.getString(path + ".cooldown")); } if(config.contains(path+".ignore_with_permission")) { ignoreWithPermission = config.getString(path+".ignore_with_permission"); } if(config.contains(path+".one_time")) { - oneTime = Boolean.valueOf(config.getString(path+".one_time")); + oneTime = Boolean.parseBoolean(config.getString(path + ".one_time")); } if(config.contains(path+".enabled")) { - enabled = Boolean.valueOf(config.getString(path+".enabled")); + enabled = Boolean.parseBoolean(config.getString(path + ".enabled")); } if(config.contains(path+".ignore_if_cancelled")) { - ignoreIfCancelled = Boolean.valueOf(config.getString(path+".ignore_if_cancelled")); + ignoreIfCancelled = Boolean.parseBoolean(config.getString(path + ".ignore_if_cancelled")); } if(config.contains(path+".prevent_cooldown_activation")){ preventCooldownActivationActionGroups = config.getStringList(path+".prevent_cooldown_activation"); @@ -177,7 +177,7 @@ public void configureEvents(){ preventOneTimeActivationActionGroups = config.getStringList(path+".prevent_one_time_activation"); } if(config.contains(path+".allow_math_formulas_in_conditions")) { - allowMathFormulasInConditions = Boolean.valueOf(config.getString(path+".allow_math_formulas_in_conditions")); + allowMathFormulasInConditions = Boolean.parseBoolean(config.getString(path + ".allow_math_formulas_in_conditions")); } event.setEventType(eventType); diff --git a/src/main/java/ce/ajneb97/configs/MainConfigManager.java b/src/main/java/ce/ajneb97/configs/MainConfigManager.java index 718574c..84492d1 100644 --- a/src/main/java/ce/ajneb97/configs/MainConfigManager.java +++ b/src/main/java/ce/ajneb97/configs/MainConfigManager.java @@ -2,13 +2,8 @@ import ce.ajneb97.ConditionalEvents; import ce.ajneb97.managers.MessagesManager; -import ce.ajneb97.managers.RepetitiveManager; -import ce.ajneb97.model.CEEvent; -import ce.ajneb97.model.CustomEventProperties; -import ce.ajneb97.model.EventType; import ce.ajneb97.model.ToConditionGroup; -import ce.ajneb97.model.actions.*; -import org.bukkit.Bukkit; +import lombok.Getter; import org.bukkit.configuration.file.FileConfiguration; import java.io.IOException; @@ -26,7 +21,10 @@ public class MainConfigManager { private boolean updateNotifications; private boolean debugActions; private boolean experimentalVariableReplacement; + @Getter + private boolean experimentalSerializeItemMeta; private ArrayList toConditionGroups; + public MainConfigManager(ConditionalEvents plugin){ this.plugin = plugin; this.configFile = new CEConfig("config.yml",plugin,null); @@ -40,6 +38,7 @@ public void configure(){ updateNotifications = config.getBoolean("Config.update_notification"); debugActions = config.getBoolean("Config.debug_actions"); experimentalVariableReplacement = config.getBoolean("Config.experimental.variable_replacement"); + experimentalSerializeItemMeta = config.getBoolean("Config.experimental.serialize_item_meta", true); toConditionGroups = new ArrayList(); String path = "Config.to_condition_groups"; if(config.contains(path)){ diff --git a/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorListener.java b/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorListener.java index 434dac1..4c2f390 100644 --- a/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorListener.java +++ b/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorListener.java @@ -89,11 +89,10 @@ public final void inventoryClick(final InventoryClickEvent e){ } } }else{ - ServerVersion serverVersion = ConditionalEvents.serverVersion; if(isAirOrNull(e.getCursor()) && !isAirOrNull(e.getCurrentItem())){// unequip with no new item going into the slot. newArmorType = ArmorType.matchType(e.getCurrentItem()); } - if(ConditionalEvents.serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_9_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_9_R1)) { ItemStack offhandItem = e.getWhoClicked().getInventory().getItemInOffHand(); if(e.getSlotType() == SlotType.ARMOR && !isAirOrNull(offhandItem)){ ArmorType offhandArmorType = ArmorType.matchType(offhandItem); @@ -135,12 +134,11 @@ public void playerInteractEvent(PlayerInteractEvent e){ ArmorType newArmorType = ArmorType.matchType(e.getItem()); if(newArmorType != null && !isHead(e.getItem())){ - ServerVersion serverVersion = ConditionalEvents.serverVersion; ItemStack newArmorPiece = e.getItem(); ItemStack oldArmorPiece = null; - if(ConditionalEvents.serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_20_R1)) { switch(newArmorType){ case HELMET: oldArmorPiece = player.getInventory().getHelmet(); @@ -234,8 +232,7 @@ public static boolean isAirOrNull(ItemStack item){ public static boolean isHead(ItemStack item) { String materialName = item.getType().name(); - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_13_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_13_R1)) { if(materialName.equals("CARVED_PUMPKIN")){ return true; } diff --git a/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorType.java b/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorType.java index ac45f9c..0eca102 100644 --- a/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorType.java +++ b/src/main/java/ce/ajneb97/libs/armorequipevent/ArmorType.java @@ -2,7 +2,6 @@ import ce.ajneb97.ConditionalEvents; import ce.ajneb97.utils.ServerVersion; -import org.bukkit.Material; import org.bukkit.inventory.ItemStack; /** @@ -28,8 +27,7 @@ public static ArmorType matchType(final ItemStack itemStack){ if(ArmorListener.isAirOrNull(itemStack)) return null; String type = itemStack.getType().name(); - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_13_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_13_R1)) { if(type.equals("CARVED_PUMPKIN")){ return HELMET; } diff --git a/src/main/java/ce/ajneb97/listeners/PlayerEventsListener.java b/src/main/java/ce/ajneb97/listeners/PlayerEventsListener.java index 4e83a61..6d81400 100644 --- a/src/main/java/ce/ajneb97/listeners/PlayerEventsListener.java +++ b/src/main/java/ce/ajneb97/listeners/PlayerEventsListener.java @@ -323,10 +323,10 @@ public void onCommandUse(PlayerCommandPreprocessEvent event) { public void onChat(AsyncPlayerChatEvent event) { Player player = event.getPlayer(); - new ConditionEvent(plugin, player, event, EventType.PLAYER_CHAT, null) + new ConditionEvent(plugin, player, event, EventType.PLAYER_CHAT, null, true) .addVariables( new StoredVariable("%message%",event.getMessage()) - ).setAsync(true).checkEvent(); + ).checkEvent(); } @EventHandler(priority = EventPriority.HIGHEST) diff --git a/src/main/java/ce/ajneb97/managers/DebugManager.java b/src/main/java/ce/ajneb97/managers/DebugManager.java index 878d3af..7d3ceff 100644 --- a/src/main/java/ce/ajneb97/managers/DebugManager.java +++ b/src/main/java/ce/ajneb97/managers/DebugManager.java @@ -1,158 +1,137 @@ package ce.ajneb97.managers; -import ce.ajneb97.ConditionalEvents; import ce.ajneb97.model.actions.ActionTargeter; import ce.ajneb97.model.actions.ActionTargeterType; import ce.ajneb97.model.actions.ActionType; -import ce.ajneb97.model.internal.DebugSender; -import org.bukkit.Bukkit; +import ce.ajneb97.model.internal.Debugger; +import lombok.val; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import java.util.ArrayList; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; public class DebugManager { - private ConditionalEvents plugin; - private ArrayList debugSenders; - public DebugManager(ConditionalEvents plugin){ - this.plugin = plugin; - this.debugSenders = new ArrayList(); - } + private static final Map debuggers = new HashMap<>(); + + public boolean addDebugger(@Nonnull final CommandSender sender, + @Nonnull final String event, + @Nullable final String playerName) { - public boolean setDebugSender(CommandSender sender,String event,String playerName){ - DebugSender debugSender = getDebugSender(sender); - if(debugSender == null){ - this.debugSenders.add(new DebugSender(sender,event,playerName)); + val debugger = debuggers.get(sender.getName()); + + if (debugger != null) { + if (Objects.equals(debugger.getEvent(), event)) { + removeDebugger(sender); + return false; + } else { + debugger.setEvent(event); + } + + if (!Objects.equals(debugger.getPlayerName(), playerName)) { + debugger.setPlayerName(playerName); + } return true; } - if(debugSender.getEvent().equals(event)){ - //If the same, then remove it - removeDebugSender(sender); - return false; - } - //If not the same, update it - debugSender.setEvent(event); + + debuggers.put(sender.getName(), new Debugger(sender, event, playerName)); return true; } - public DebugSender getDebugSender(CommandSender sender){ - for(DebugSender debugSender : debugSenders){ - if(debugSender.getSender().equals(sender)){ - return debugSender; - } - } - return null; + public void removeDebugger(@Nonnull final CommandSender sender) { + debuggers.remove(sender.getName()); } - public void removeDebugSender(CommandSender sender){ - for(int i=0;i conditionGroup, Player player for(int c=0;c% + if (otherItemTag == null) { + otherItemTag = "%"; + } else { + otherItemTag = "%" + otherItemTag + ":"; } - Location location = entity.getLocation(); - - eventVariables.add(new StoredVariable("%victim%",victimType)); - eventVariables.add(new StoredVariable("%victim_name%",victimName)); - eventVariables.add(new StoredVariable("%victim_color_format_name%",victimNameColorFormat)); - eventVariables.add(new StoredVariable("%victim_block_x%",location.getBlockX()+"")); - eventVariables.add(new StoredVariable("%victim_block_y%",location.getBlockY()+"")); - eventVariables.add(new StoredVariable("%victim_block_z%",location.getBlockZ()+"")); - eventVariables.add(new StoredVariable("%victim_block_world%",location.getWorld().getName())); - eventVariables.add(new StoredVariable("%victim_uuid%",victimUuid)); - return this; - } - public ConditionEvent setCommonItemVariables(ItemStack item,String otherItemTag){ - String name = ""; - String colorFormatName = ""; - String material = ""; - String loreString = ""; - String colorFormatLoreString = ""; + String material = null; short durability = 0; int amount = 0; - List loreList = new ArrayList(); - List colorFormatLoreList = new ArrayList(); + + String name = null; + String colorFormatName = null; + + String metaString = null; + String loreWithoutColorsFullString = null; + String loreWithColorsFullString = null; + List loreWithoutColors = null; + List loreWithColors = null; + int customModelData = 0; - String metaString = ""; - if(item != null) { - durability = item.getDurability(); + if (item != null) { material = item.getType().name(); + //noinspection deprecation + durability = item.getDurability(); amount = item.getAmount(); - if(item.hasItemMeta()) { - ItemMeta meta = item.getItemMeta(); - metaString = meta.toString(); - if(meta.hasDisplayName()) { - name = ChatColor.stripColor(meta.getDisplayName()); - colorFormatName = meta.getDisplayName().replace("§", "&"); + if (item.hasItemMeta()) { + + val meta = item.getItemMeta(); + + if (plugin.getConfigsManager().getMainConfigManager().isExperimentalSerializeItemMeta()) { + metaString = meta.toString(); + } + + if (meta.hasDisplayName()) { + //noinspection deprecation + final String displayName = meta.getDisplayName(); + name = ColorUtils.stripColor(displayName); + colorFormatName = displayName.replace("§", "&"); } - if(meta.hasLore()) { - List lore = meta.getLore(); - for(int i=0;i lore = meta.getLore(); + if (lore != null && !lore.isEmpty()) { + final ImmutableList.Builder loreWithoutColorsBuilder = ImmutableList.builder(); + final ImmutableList.Builder loreWithColorsBuilder = ImmutableList.builder(); + + for (final String line : lore) { + loreWithoutColorsBuilder.add(ColorUtils.stripColor(line)); + loreWithColorsBuilder.add(line.replace("§", "&")); } + + loreWithoutColors = loreWithoutColorsBuilder.build(); + loreWithColors = loreWithColorsBuilder.build(); + + loreWithoutColorsFullString = String.join(" ", loreWithoutColors); + loreWithColorsFullString = String.join(" ", loreWithColors); } } - if(OtherUtils.isNew() && meta.hasCustomModelData()){ + + if (meta.hasEnchants()) { + //noinspection deprecation + val enchants = meta.getEnchants().entrySet() + .stream() + .map(entry -> String.format("%s:%d", entry.getKey().getName(), entry.getValue())) + .collect(Collectors.joining(",")); + addStoredVariable(String.format("%sitem_enchants", otherItemTag), enchants); + } + + if (OtherUtils.isNew() && meta.hasCustomModelData()) { customModelData = meta.getCustomModelData(); } } } - //Example: %offhand:% - if(otherItemTag == null){ - otherItemTag = "%"; - }else{ - otherItemTag = "%"+otherItemTag+":"; + addStoredVariable(String.format("%sitem", otherItemTag), nullToEmptyString(material)); + addStoredVariable(String.format("%sitem_name", otherItemTag), nullToEmptyString(name)); + addStoredVariable(String.format("%sitem_color_format_name", otherItemTag), nullToEmptyString(colorFormatName)); + addStoredVariable(String.format("%sitem_durability", otherItemTag), String.valueOf(durability)); + addStoredVariable(String.format("%sitem_amount", otherItemTag), String.valueOf(amount)); + addStoredVariable(String.format("%sitem_lore", otherItemTag), nullToEmptyString(loreWithoutColorsFullString)); + addStoredVariable(String.format("%sitem_color_format_lore", otherItemTag), nullToEmptyString(loreWithColorsFullString)); + addStoredVariable(String.format("%sitem_custom_model_data", otherItemTag), String.valueOf(customModelData)); + + if (plugin.getConfigsManager().getMainConfigManager().isExperimentalSerializeItemMeta()) { + addStoredVariable(String.format("%sitem_meta", otherItemTag), nullToEmptyString(metaString)); } - eventVariables.add(new StoredVariable(otherItemTag+"item%",material)); - eventVariables.add(new StoredVariable(otherItemTag+"item_name%",name)); - eventVariables.add(new StoredVariable(otherItemTag+"item_color_format_name%",colorFormatName)); - eventVariables.add(new StoredVariable(otherItemTag+"item_durability%",durability+"")); - eventVariables.add(new StoredVariable(otherItemTag+"item_amount%",amount+"")); - eventVariables.add(new StoredVariable(otherItemTag+"item_lore%",loreString)); - eventVariables.add(new StoredVariable(otherItemTag+"item_color_format_lore%",colorFormatLoreString)); - eventVariables.add(new StoredVariable(otherItemTag+"item_custom_model_data%",customModelData+"")); - eventVariables.add(new StoredVariable(otherItemTag+"item_meta%",metaString)); - for(int i=0;i %name% + this.eventVariables.add(new StoredVariable(String.format("%%%s%%", + Objects.requireNonNull(name)), + Objects.requireNonNull(value) + )); } - public ConditionEvent setAsync(boolean async) { - this.async = async; - return this; + @Nonnull + private String nullToEmptyString(@Nullable final Object object) { + if (object == null) return ""; + return object.toString(); } + } diff --git a/src/main/java/ce/ajneb97/model/internal/DebugSender.java b/src/main/java/ce/ajneb97/model/internal/DebugSender.java deleted file mode 100644 index 4391c5e..0000000 --- a/src/main/java/ce/ajneb97/model/internal/DebugSender.java +++ /dev/null @@ -1,39 +0,0 @@ -package ce.ajneb97.model.internal; - -import org.bukkit.command.CommandSender; - -public class DebugSender { - private CommandSender sender; - private String event; - private String playerName; - - public DebugSender(CommandSender sender, String event, String playerName) { - this.sender = sender; - this.event = event; - this.playerName = playerName; - } - - public CommandSender getSender() { - return sender; - } - - public void setSender(CommandSender sender) { - this.sender = sender; - } - - public String getEvent() { - return event; - } - - public void setEvent(String event) { - this.event = event; - } - - public String getPlayerName() { - return playerName; - } - - public void setPlayerName(String playerName) { - this.playerName = playerName; - } -} diff --git a/src/main/java/ce/ajneb97/model/internal/Debugger.java b/src/main/java/ce/ajneb97/model/internal/Debugger.java new file mode 100644 index 0000000..850cbf3 --- /dev/null +++ b/src/main/java/ce/ajneb97/model/internal/Debugger.java @@ -0,0 +1,16 @@ +package ce.ajneb97.model.internal; + +import lombok.AllArgsConstructor; +import lombok.Data; +import org.bukkit.command.CommandSender; + +@Data +@AllArgsConstructor +public class Debugger { + + private final CommandSender sender; + + private String event; + private String playerName; + +} diff --git a/src/main/java/ce/ajneb97/model/internal/ExecutedEvent.java b/src/main/java/ce/ajneb97/model/internal/ExecutedEvent.java index cafc054..77e6198 100644 --- a/src/main/java/ce/ajneb97/model/internal/ExecutedEvent.java +++ b/src/main/java/ce/ajneb97/model/internal/ExecutedEvent.java @@ -159,8 +159,8 @@ private void executeActionsFinal(){ } }else if(targeterType.equals(ActionTargeterType.TO_RANGE)){ String[] sep = parametersLine.split(";"); - double range = Double.valueOf(sep[0]); - boolean includePlayer = Boolean.valueOf(sep[1]); + double range = Double.parseDouble(sep[0]); + boolean includePlayer = Boolean.parseBoolean(sep[1]); ArrayList globalPlayers = new ArrayList(); if(includePlayer){ globalPlayers.add(player); diff --git a/src/main/java/ce/ajneb97/utils/ActionUtils.java b/src/main/java/ce/ajneb97/utils/ActionUtils.java index 62483d2..6f7122d 100644 --- a/src/main/java/ce/ajneb97/utils/ActionUtils.java +++ b/src/main/java/ce/ajneb97/utils/ActionUtils.java @@ -54,9 +54,8 @@ public static void jsonMessage(Player player,String actionLine){ player.spigot().sendMessage(base); } - public static void miniMessage(Player player,String actionLine,ConditionalEvents plugin){ - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(plugin.getDependencyManager().isPaper() && serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_19_R3)) { + public static void miniMessage(Player player, String actionLine, ConditionalEvents plugin) { + if (plugin.getDependencyManager().isPaper() && ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_19_R3)) { player.sendRichMessage(actionLine); } } @@ -90,11 +89,11 @@ public static void sendToServer(Player player,String actionLine,ConditionalEvent public static void teleport(Player player, String actionLine, Event minecraftEvent){ String[] sep = actionLine.split(";"); World world = Bukkit.getWorld(sep[0]); - double x = Double.valueOf(sep[1]); - double y = Double.valueOf(sep[2]); - double z = Double.valueOf(sep[3]); - float yaw = Float.valueOf(sep[4]); - float pitch = Float.valueOf(sep[5]); + double x = Double.parseDouble(sep[1]); + double y = Double.parseDouble(sep[2]); + double z = Double.parseDouble(sep[3]); + float yaw = Float.parseFloat(sep[4]); + float pitch = Float.parseFloat(sep[5]); Location l = new Location(world,x,y,z,yaw,pitch); if(minecraftEvent instanceof PlayerRespawnEvent) { @@ -133,14 +132,14 @@ public static void removeItem(Player player,String actionLine){ String[] sep = actionLine.split(";"); String material = sep[0]; - int amount = Integer.valueOf(sep[1]); + int amount = Integer.parseInt(sep[1]); short datavalue = 0; String name = null; String loreContainsLoreLine = null; for(String sepLine : sep) { if(sepLine.startsWith("datavalue: ")) { - datavalue = Short.valueOf(sepLine.replace("datavalue: ", "")); + datavalue = Short.parseShort(sepLine.replace("datavalue: ", "")); }else if(sepLine.startsWith("name: ")) { name = sepLine.replace("name: ", ""); }else if(sepLine.startsWith("lorecontains: ")) { @@ -204,11 +203,11 @@ public static void removeItem(Player player,String actionLine){ public static void givePotionEffect(Player player,String actionLine){ String[] sep = actionLine.split(";"); PotionEffectType potionEffectType = PotionEffectType.getByName(sep[0]); - int duration = Integer.valueOf(sep[1]); - int level = Integer.valueOf(sep[2])-1; + int duration = Integer.parseInt(sep[1]); + int level = Integer.parseInt(sep[2]) - 1; boolean showParticles = true; if(sep.length >= 4) { - showParticles = Boolean.valueOf(sep[3]); + showParticles = Boolean.parseBoolean(sep[3]); } PotionEffect effect = new PotionEffect(potionEffectType,duration,level,false,showParticles); player.addPotionEffect(effect); @@ -220,7 +219,7 @@ public static void removePotionEffect(Player player,String actionLine){ } public static void cancelEvent(String actionLine,Event minecraftEvent){ - boolean cancel = Boolean.valueOf(actionLine); + boolean cancel = Boolean.parseBoolean(actionLine); if(minecraftEvent != null && minecraftEvent instanceof Cancellable) { Cancellable cancellableEvent = (Cancellable) minecraftEvent; cancellableEvent.setCancelled(cancel); @@ -295,11 +294,10 @@ public static void playSoundResourcePack(Player player,String actionLine){ public static void stopSound(Player player,String actionLine){ // stopsound: sound/all - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_10_R1)) { + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_10_R1)) { Sound sound = null; if(actionLine.equals("all")){ - if(!serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_17_R1)){ + if (!ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_17_R1)) { return; } player.stopAllSounds(); @@ -535,15 +533,15 @@ public static void summon(String actionLine) { public static void actionbar(Player player,String actionLine,ConditionalEvents plugin){ String[] sep = actionLine.split(";"); String text = sep[0]; - int duration = Integer.valueOf(sep[1]); + int duration = Integer.parseInt(sep[1]); ActionBarAPI.sendActionBar(player,text,duration,plugin); } public static void title(Player player,String actionLine){ String[] sep = actionLine.split(";"); - int fadeIn = Integer.valueOf(sep[0]); - int stay = Integer.valueOf(sep[1]); - int fadeOut = Integer.valueOf(sep[2]); + int fadeIn = Integer.parseInt(sep[0]); + int stay = Integer.parseInt(sep[1]); + int fadeOut = Integer.parseInt(sep[2]); String title = sep[3]; String subtitle = sep[4]; @@ -594,7 +592,7 @@ public static void firework(Player player,String actionLine,ConditionalEvents pl } }else if(s.startsWith("power:")) { s = s.replace("power:", ""); - power = Integer.valueOf(s); + power = Integer.parseInt(s); }else if(s.startsWith("location:")) { String[] sep2 = s.replace("location:", "").split(";"); location = new Location( @@ -607,11 +605,10 @@ public static void firework(Player player,String actionLine,ConditionalEvents pl location = player.getLocation(); } - ServerVersion serverVersion = ConditionalEvents.serverVersion; - EntityType entityType = null; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R4)){ + EntityType entityType; + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_20_R4)) { entityType = EntityType.FIREWORK_ROCKET; - }else{ + } else { entityType = EntityType.valueOf("FIREWORK"); } Firework firework = (Firework) location.getWorld().spawnEntity(location, entityType); @@ -705,10 +702,9 @@ public static void setOnFire(Player player,String actionLine){ } - public static void freeze(Player player,String actionLine){ + public static void freeze(Player player, String actionLine) { // freeze: - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_17_R1)) { + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_17_R1)) { player.setFreezeTicks(Integer.parseInt(actionLine)); } } @@ -732,7 +728,7 @@ public static void setFoodLevel(Player player,String actionLine){ public static void wait(String actionLine, ExecutedEvent executedEvent){ executedEvent.setOnWait(true); - int timeSeconds = Integer.valueOf(actionLine); + int timeSeconds = Integer.parseInt(actionLine); new BukkitRunnable(){ @Override @@ -744,7 +740,7 @@ public void run() { public static void waitTicks(String actionLine, ExecutedEvent executedEvent){ executedEvent.setOnWait(true); - long timeTicks = Long.valueOf(actionLine); + long timeTicks = Long.parseLong(actionLine); new BukkitRunnable(){ @Override diff --git a/src/main/java/ce/ajneb97/utils/BlockUtils.java b/src/main/java/ce/ajneb97/utils/BlockUtils.java index 11c4c7a..33f2a21 100644 --- a/src/main/java/ce/ajneb97/utils/BlockUtils.java +++ b/src/main/java/ce/ajneb97/utils/BlockUtils.java @@ -33,8 +33,7 @@ public static String getHeadTextureData(Block block) { if(material.name().equals("PLAYER_HEAD") || material.name().equals("SKULL") || material.name().equals("PLAYER_WALL_HEAD")) { Skull skullBlock = (Skull) block.getState(); - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_21_R1)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_21_R1)) { if(skullBlock.getOwnerProfile() == null){ return ""; } @@ -60,7 +59,7 @@ public static String getHeadTextureData(Block block) { gameProfile.getProperties().containsKey("textures")) { Collection properties = gameProfile.getProperties().get("textures"); for(Property p : properties) { - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_20_R2)) { String pName = (String)p.getClass().getMethod("name").invoke(p); if(pName.equals("textures")){ return (String)p.getClass().getMethod("value").invoke(p); @@ -95,8 +94,7 @@ public static void setHeadTextureData(Block block,String texture,String owner){ return; } - ServerVersion serverVersion = ConditionalEvents.serverVersion; - if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){ + if (ServerVersion.serverVersionGreaterEqualThan(ConditionalEvents.serverVersion, ServerVersion.v1_20_R2)) { PlayerProfile profile = Bukkit.createPlayerProfile(UUID.randomUUID()); PlayerTextures textures = profile.getTextures(); URL url; diff --git a/src/main/java/ce/ajneb97/utils/ColorUtils.java b/src/main/java/ce/ajneb97/utils/ColorUtils.java new file mode 100644 index 0000000..5bf32b9 --- /dev/null +++ b/src/main/java/ce/ajneb97/utils/ColorUtils.java @@ -0,0 +1,18 @@ +package ce.ajneb97.utils; + +import org.bukkit.ChatColor; + +import javax.annotation.Nullable; + +public final class ColorUtils { + + public static String stripColor(@Nullable final String text) { + if (text == null) return null; + //noinspection deprecation + return ChatColor.stripColor(text); + } + + private ColorUtils() { + } + +} diff --git a/src/main/java/ce/ajneb97/utils/GlobalVariablesUtils.java b/src/main/java/ce/ajneb97/utils/GlobalVariablesUtils.java index b2fa199..4f144b3 100644 --- a/src/main/java/ce/ajneb97/utils/GlobalVariablesUtils.java +++ b/src/main/java/ce/ajneb97/utils/GlobalVariablesUtils.java @@ -75,8 +75,8 @@ public static String variableRandomPlayerWorld(String variable){ public static String variableRandomMinMax(String variable){ String variableLR = variable.replace("random_", ""); String[] variableLRSplit = variableLR.split("_"); - int num1 = Integer.valueOf(variableLRSplit[0]); - int num2 = Integer.valueOf(variableLRSplit[1]); + int num1 = Integer.parseInt(variableLRSplit[0]); + int num2 = Integer.parseInt(variableLRSplit[1]); int numFinal = MathUtils.getRandomNumber(num1, num2); return numFinal+""; } @@ -161,9 +161,9 @@ public static String variableIsNearby(Player finalPlayer,String variable){ String variableLR = variable.replace("is_nearby_", ""); String[] variableLRSplit = variableLR.split("_"); try { - int x = Integer.valueOf(variableLRSplit[0]); - int y = Integer.valueOf(variableLRSplit[1]); - int z = Integer.valueOf(variableLRSplit[2]); + int x = Integer.parseInt(variableLRSplit[0]); + int y = Integer.parseInt(variableLRSplit[1]); + int z = Integer.parseInt(variableLRSplit[2]); String worldName = ""; for(int i=3;i= version2.ordinal(); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 60e0681..0545739 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -3,6 +3,7 @@ Config: data_save_time: 5 debug_actions: true experimental: + serialize_item_meta: true variable_replacement: false register_commands: - "hello"