From 88504bf75040fbb97bbd2e7b103283688bb75ba9 Mon Sep 17 00:00:00 2001 From: EntityParrot_ Date: Fri, 28 Feb 2020 10:17:42 +0800 Subject: [PATCH] =?UTF-8?q?[VoteUp]=20=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为 Autocast 功能添加了新的处理模式. - 现在将配置文件中的 BlackMode 设置为 true 将视为黑名单模式. - 同理, 设置为 false 将视为白名单模式. 本次 Commit 还包含以下改动: [LimitRiptide] - 修复了一个可能的刷物品 Bug. - 对该 Bug 的解决方案可能导致在某些情况下的无损激流飞行, 但是情况过于极限所以暂不作处理. --- ...net_md_5_bungeecord_chat_1_15_SNAPSHOT.xml | 13 +++++++++++ ...igotmc_spigot_api_1_14_4_R0_1_SNAPSHOT.xml | 6 ++--- ...igotmc_spigot_api_1_15_2_R0_1_SNAPSHOT.xml | 13 +++++++++++ .../Maven__org_yaml_snakeyaml_1_25.xml | 13 +++++++++++ .idea/misc.xml | 2 +- LimitedRiptide/LimitedRiptide.iml | 6 ++--- LimitedRiptide/pom.xml | 6 ++--- .../sir/limitedriptide/LimitedRiptide.java | 22 +++++++++++++++---- .../sir/limitedriptide/utils/LocaleUtil.java | 4 +++- .../src/main/resources/Locales/Chinese.yml | 2 +- .../src/main/resources/Locales/English.yml | 2 +- pom.xml | 2 +- .../prompts/ModifyContentPrompt.java | 21 ++++++++++++------ src/main/resources/config.yml | 3 ++- 14 files changed, 89 insertions(+), 26 deletions(-) create mode 100644 .idea/libraries/Maven__net_md_5_bungeecord_chat_1_15_SNAPSHOT.xml create mode 100644 .idea/libraries/Maven__org_spigotmc_spigot_api_1_15_2_R0_1_SNAPSHOT.xml create mode 100644 .idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml diff --git a/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_15_SNAPSHOT.xml b/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_15_SNAPSHOT.xml new file mode 100644 index 0000000..e274b76 --- /dev/null +++ b/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_15_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_14_4_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_14_4_R0_1_SNAPSHOT.xml index 5f6b62b..7dafcc1 100644 --- a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_14_4_R0_1_SNAPSHOT.xml +++ b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_14_4_R0_1_SNAPSHOT.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_15_2_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_15_2_R0_1_SNAPSHOT.xml new file mode 100644 index 0000000..4d435f9 --- /dev/null +++ b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_15_2_R0_1_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml new file mode 100644 index 0000000..495fc06 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index b7298c9..f72ae5c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -14,7 +14,7 @@ - + \ No newline at end of file diff --git a/LimitedRiptide/LimitedRiptide.iml b/LimitedRiptide/LimitedRiptide.iml index 467c95f..875a7ec 100644 --- a/LimitedRiptide/LimitedRiptide.iml +++ b/LimitedRiptide/LimitedRiptide.iml @@ -22,11 +22,11 @@ - + - - + + \ No newline at end of file diff --git a/LimitedRiptide/pom.xml b/LimitedRiptide/pom.xml index ed0d3d0..1376fc9 100644 --- a/LimitedRiptide/pom.xml +++ b/LimitedRiptide/pom.xml @@ -5,8 +5,8 @@ 4.0.0 net.shoal.sir - LitmiedRiptide - 1.5-RELEASE + LimitedRiptide + 1.6-RELEASE jar LimitedRiptide @@ -70,7 +70,7 @@ org.spigotmc spigot-api - 1.14.4-R0.1-SNAPSHOT + 1.15.2-R0.1-SNAPSHOT provided diff --git a/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/LimitedRiptide.java b/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/LimitedRiptide.java index 8426484..07f3738 100644 --- a/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/LimitedRiptide.java +++ b/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/LimitedRiptide.java @@ -126,23 +126,36 @@ public boolean onCommand(CommandSender sender, Command command, String label, St @EventHandler public void onInteract(PlayerRiptideEvent event) { - if(glidingPlayers == null) { + if (glidingPlayers == null) { locale.debug("&e&lWARN! &7Gliding player log lost, recreated."); glidingPlayers = new HashMap<>(); } locale.debug("&7PlayerRiptideEvent activated: (&aPlayer&7) &c" + event.getPlayer().getName()); PlayerInventory userInv = event.getPlayer().getInventory(); - ItemStack trident = event.getItem(); + ItemStack trident = event.getItem().clone(); locale.debug("&7Item information: " + trident.toString()); - boolean isMainHand = userInv.getItemInMainHand().getType() == Material.TRIDENT; + boolean isMainHand; + if (trident.getType() == Material.TRIDENT) { + ItemStack mainHand = userInv.getItemInMainHand(); + ItemStack offHand = userInv.getItemInOffHand(); + if (mainHand.getType() == Material.TRIDENT) { + isMainHand = true; + } else if (offHand.getType() == Material.TRIDENT) { + isMainHand = false; + } else { + return; + } + } else { + return; + } locale.debug("&7Is trident in main hand? " + (isMainHand ? "&a&lYes" : "&c&lNo")); boolean isGliding = glidingPlayers.getOrDefault(event.getPlayer(), false); locale.debug("&7Is player flying with Elytra? " + (isGliding ? "&a&lYes" : "&c&lNo&7(Or missing log&7)")); ItemMeta itemMeta = trident.getItemMeta(); locale.debug("&7Is target trident's ItemMeta null? " + (itemMeta == null ? "&a&lYes" : "&c&lNo")); Damageable meta = (Damageable) (itemMeta == null ? Bukkit.getItemFactory().getItemMeta(Material.TRIDENT) : itemMeta); - if(meta != null) { + if (meta != null) { int resultDurability = meta.getDamage() + (isGliding ? config.getInt("DurabilityCost.Flying") : config.getInt("DurabilityCost.Normal")); locale.debug("&7After reducing the durability value is: &c&l" + resultDurability); @@ -155,6 +168,7 @@ public void onInteract(PlayerRiptideEvent event) { sendItem(userInv, new ItemStack(Material.AIR), isMainHand); locale.debug("&7Trident has been broken."); } + } else { locale.debug("&c&lERROR! &7After validating, ItemMeta still was null!"); } diff --git a/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/utils/LocaleUtil.java b/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/utils/LocaleUtil.java index f12ad61..fba1475 100644 --- a/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/utils/LocaleUtil.java +++ b/LimitedRiptide/src/main/java/net/shoal/sir/limitedriptide/utils/LocaleUtil.java @@ -16,7 +16,9 @@ public class LocaleUtil { - @Getter @Setter private String defaultLocaleKey = "Chinese"; + @Getter + @Setter + private String defaultLocaleKey = "English"; private Plugin plugin; private File dataFolder; @Getter private Map locales = new HashMap<>(); diff --git a/LimitedRiptide/src/main/resources/Locales/Chinese.yml b/LimitedRiptide/src/main/resources/Locales/Chinese.yml index c2968b4..86847a3 100644 --- a/LimitedRiptide/src/main/resources/Locales/Chinese.yml +++ b/LimitedRiptide/src/main/resources/Locales/Chinese.yml @@ -4,7 +4,7 @@ Plugin: WARN: "&e&l>> " ERROR: "&c&l>> " HelpMessage: - - "&9&lLimited Riptide &8&o(v1.4-RELEASE)" + - "&9&lLimited Riptide &8&o(v1.5-RELEASE)" - "" - "&7&l作者: &cEntityParrot_" - "&7&l命令列表:" diff --git a/LimitedRiptide/src/main/resources/Locales/English.yml b/LimitedRiptide/src/main/resources/Locales/English.yml index 45afcee..3e0601b 100644 --- a/LimitedRiptide/src/main/resources/Locales/English.yml +++ b/LimitedRiptide/src/main/resources/Locales/English.yml @@ -4,7 +4,7 @@ Plugin: WARN: "&e&l>> " ERROR: "&c&l>> " HelpMessage: - - "&9&lLimited Riptide &8&o(v1.4-RELEASE)" + - "&9&lLimited Riptide &8&o(v1.5-RELEASE)" - "" - "&7&lAuthor: &cEntityParrot_" - "&7&lCommand List:" diff --git a/pom.xml b/pom.xml index cf10fb0..1415859 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.shoal.sir VoteUp - 1.4-RELEASE + 1.4.1-RELEASE jar VoteUp diff --git a/src/main/java/net/shoal/sir/voteup/conversation/prompts/ModifyContentPrompt.java b/src/main/java/net/shoal/sir/voteup/conversation/prompts/ModifyContentPrompt.java index 1c4bb87..9c04e4b 100644 --- a/src/main/java/net/shoal/sir/voteup/conversation/prompts/ModifyContentPrompt.java +++ b/src/main/java/net/shoal/sir/voteup/conversation/prompts/ModifyContentPrompt.java @@ -75,14 +75,21 @@ protected Prompt acceptValidatedInput(ConversationContext context, String input) if(type == VoteDataType.AUTOCAST) { String[] inputArgs = input.split(" "); - List blacklist = VoteUp.getInstance().getConfig().getStringList("Autocast.Blacklist"); - for(String arg : inputArgs) { - if(blacklist.contains(arg)) { - if(user.hasPermission(VoteUpPerm.CREATE_CUSTOM_AUTOCAST_BYPASS.perm())) { - continue; + List commandList = VoteUp.getInstance().getConfig().getStringList("Autocast.List"); + boolean blackMode = VoteUp.getInstance().getConfig().getBoolean("Autocast.BlackMode"); + if (blackMode) { + if (commandList.contains(inputArgs[0])) { + if (!user.hasPermission(VoteUpPerm.CREATE_CUSTOM_AUTOCAST_BYPASS.perm())) { + CommonUtil.message(locale.buildMessage(VoteUp.LOCALE, MessageType.WARN, "&7您输入的命令中含有屏蔽关键词."), user.getName()); + return Prompt.END_OF_CONVERSATION; + } + } + } else { + if (!commandList.contains(inputArgs[0])) { + if (!user.hasPermission(VoteUpPerm.CREATE_CUSTOM_AUTOCAST_BYPASS.perm())) { + CommonUtil.message(locale.buildMessage(VoteUp.LOCALE, MessageType.WARN, "&7您输入的命令中含有屏蔽关键词."), user.getName()); + return Prompt.END_OF_CONVERSATION; } - CommonUtil.message(locale.buildMessage(VoteUp.LOCALE, MessageType.WARN, "&7您输入的命令中含有屏蔽关键词."), user.getName()); - return Prompt.END_OF_CONVERSATION; } } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f017d4c..76008dd 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -11,7 +11,8 @@ Sound: End: BLOCK_ANVIL_HIT Autocast: Enable: true - Blacklist: + BlackMode: true + List: - "op" - "gamemode" - "gm"