From 66ff9de502b070c69b5b3f4a45facd525fbab45b Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 1 Jun 2023 11:56:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(hamster-chain-break):=20=E8=BF=9E=E9=94=81?= =?UTF-8?q?=E7=A0=B4=E5=9D=8F=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E6=96=B9=E5=9D=97=E4=B8=8A=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/chain/breaks/core/ConfigManager.java | 16 +++++++++++++--- .../chain/breaks/listener/MainListener.java | 4 +++- .../src/main/resources/config.yml | 9 ++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/core/ConfigManager.java b/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/core/ConfigManager.java index f23bc79..2b58d85 100644 --- a/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/core/ConfigManager.java +++ b/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/core/ConfigManager.java @@ -9,25 +9,35 @@ import java.util.ArrayList; import java.util.List; public final class ConfigManager { + private static int maxChainBlocks; private static List toolGroups; private ConfigManager() { } + @SuppressWarnings("DataFlowIssue") public static void init() { ChainBreakPlugin plugin = ChainBreakPlugin.getInstance(); plugin.saveDefaultConfig(); plugin.reloadConfig(); FileConfiguration pluginConfig = plugin.getConfig(); + maxChainBlocks = pluginConfig.getInt("max-chain-blocks", 300); + toolGroups = new ArrayList<>(); ConfigurationSection toolGroupsConfig = pluginConfig.getConfigurationSection("tool-groups"); - for (String key : toolGroupsConfig.getKeys(false)) { - ToolGroup group = new ToolGroup(toolGroupsConfig.getConfigurationSection(key)); - toolGroups.add(group); + if (toolGroupsConfig != null) { + for (String key : toolGroupsConfig.getKeys(false)) { + ToolGroup group = new ToolGroup(toolGroupsConfig.getConfigurationSection(key)); + toolGroups.add(group); + } } } + public static int getMaxChainBlocks() { + return maxChainBlocks; + } + public static List getToolGroups() { return toolGroups; } diff --git a/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/listener/MainListener.java b/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/listener/MainListener.java index e5ffa2d..d0a1585 100644 --- a/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/listener/MainListener.java +++ b/hamster-chain-break/src/main/java/cn/hamster3/mc/plugin/chain/breaks/listener/MainListener.java @@ -1,6 +1,7 @@ package cn.hamster3.mc.plugin.chain.breaks.listener; import cn.hamster3.mc.plugin.chain.breaks.config.ToolGroup; +import cn.hamster3.mc.plugin.chain.breaks.core.ConfigManager; import cn.hamster3.mc.plugin.chain.breaks.util.ChainBreakUtils; import org.bukkit.GameMode; import org.bukkit.Material; @@ -32,6 +33,7 @@ public final class MainListener implements Listener { private MainListener() { } + @SuppressWarnings("deprecation") @EventHandler(ignoreCancelled = true) public void onBlockBreak(BlockBreakEvent event) { Player player = event.getPlayer(); @@ -92,7 +94,7 @@ public final class MainListener implements Listener { } result.add(relative); nextSearchBlocks.add(relative); - if (result.size() > 300) { + if (result.size() > ConfigManager.getMaxChainBlocks()) { return; } } diff --git a/hamster-chain-break/src/main/resources/config.yml b/hamster-chain-break/src/main/resources/config.yml index fddca96..d3dca2d 100644 --- a/hamster-chain-break/src/main/resources/config.yml +++ b/hamster-chain-break/src/main/resources/config.yml @@ -1,11 +1,14 @@ -# 方块破坏的间隔时间 -# 单位: tick -break-interval: 5 +# 最大连锁破坏的方块数量 +max-chain-blocks: 300 +# 工具组列表 tool-groups: + # 工具组名称 axe: + # 该工具组内的物品名称,支持正则表达式匹配 tool-types: - ".*_axe" + # 该工具组内可以连锁破坏的方块,支持正则表达式匹配 block-types: - ".*_wood" - ".*_log"