From 29da2c8a80f26d434d38ee4b73aa5cb5879bf9c7 Mon Sep 17 00:00:00 2001 From: carm Date: Sun, 14 Dec 2025 01:22:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=E5=88=B0=201.21?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E6=8F=90=E4=BE=9Bfolia=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- pom.xml | 8 ++-- .../java/cc/carm/plugin/scriptitems/Main.java | 12 +++--- .../scriptitems/command/MainCommand.java | 6 +-- .../scriptitems/command/sub/ApplyCommand.java | 6 +-- .../scriptitems/command/sub/GetCommand.java | 10 ++--- .../scriptitems/command/sub/GiveCommand.java | 12 +++--- .../plugin/scriptitems/conf/PluginConfig.java | 33 +++++++-------- .../scriptitems/conf/PluginMessages.java | 40 ++++++++++--------- .../scriptitems/database/DatabaseConfig.java | 35 ++++++++-------- .../scriptitems/database/DatabaseTables.java | 6 +-- .../scriptitems/item/ScriptRestrictions.java | 12 +++--- .../scriptitems/listener/ItemListener.java | 2 +- .../scriptitems/listener/ProtectListener.java | 4 +- src/main/resources/plugin.yml | 5 ++- 15 files changed, 99 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index cd5a477..b2ae30c 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ 脚本物品插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。 -本插件由 [ArtStyle(艺式)](https://artstyle.wiki/)、[猫窝](https://maowo.moe) 提供开发资助。 +本插件由 [ArtStyle(艺式)](https://artstyle.wiki/)、[猫窝](https://maowo.moe)、[奥林匹亚](www.mcolympia.site) 提供开发资助。 ## 插件功能与优势 -> 加 * 的功能仍在开发中。 +> 加 * 的功能仍在开发中。 - 物品操作绑定,给予玩家可执行对应操作设置的物品,支持PlaceholderAPI变量。 - 目前支持的操作有: diff --git a/pom.xml b/pom.xml index d7b6f00..a2de644 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ cc.carm.plugin scriptitems - 1.1.1 + 1.1.2 ScriptItems 物品操作绑定插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。 @@ -101,8 +101,8 @@ cc.carm.lib - easyplugin-listener - ${deps.easyplugin.version} + easylistener + 2.0.1 compile true @@ -134,7 +134,7 @@ org.spigotmc spigot-api - 1.19-R0.1-20220725.090125-47 + 1.21.10-R0.1-SNAPSHOT provided diff --git a/src/main/java/cc/carm/plugin/scriptitems/Main.java b/src/main/java/cc/carm/plugin/scriptitems/Main.java index db640d0..2f956cc 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/Main.java +++ b/src/main/java/cc/carm/plugin/scriptitems/Main.java @@ -1,6 +1,6 @@ package cc.carm.plugin.scriptitems; -import cc.carm.lib.configuration.core.source.ConfigurationProvider; +import cc.carm.lib.configuration.source.ConfigurationHolder; import cc.carm.lib.easyplugin.EasyPlugin; import cc.carm.lib.easyplugin.updatechecker.GHUpdateChecker; import cc.carm.lib.mineconfiguration.bukkit.MineConfiguration; @@ -21,8 +21,8 @@ public class Main extends EasyPlugin { instance = this; } - protected ConfigurationProvider configProvider; - protected ConfigurationProvider messageProvider; + protected ConfigurationHolder configProvider; + protected ConfigurationHolder messageProvider; protected ItemsManager itemsManager; @@ -42,7 +42,7 @@ public class Main extends EasyPlugin { this.itemsManager.initialize(); info("注册指令..."); - registerCommand("ScriptItems", new MainCommand(this)); + registerCommand("ScriptItems".toLowerCase(), new MainCommand(this)); info("注册监听器..."); registerListener(new ItemListener()); @@ -92,11 +92,11 @@ public class Main extends EasyPlugin { getInstance().debug(messages); } - public ConfigurationProvider getConfigProvider() { + public ConfigurationHolder getConfigProvider() { return configProvider; } - public ConfigurationProvider getMessageProvider() { + public ConfigurationHolder getMessageProvider() { return messageProvider; } } diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/MainCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/MainCommand.java index 9b8831b..692b09e 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/command/MainCommand.java +++ b/src/main/java/cc/carm/plugin/scriptitems/command/MainCommand.java @@ -21,13 +21,13 @@ public class MainCommand extends CommandHandler { @Override public Void noArgs(CommandSender sender) { - PluginMessages.USAGE.send(sender); + PluginMessages.USAGE.sendTo(sender); return null; } @Override public Void noPermission(CommandSender sender) { - PluginMessages.NO_PERMISSION.send(sender); + PluginMessages.NO_PERMISSION.sendTo(sender); return null; } @@ -37,7 +37,7 @@ public class MainCommand extends CommandHandler { } public Void onlyPlay(CommandSender sender) { - PluginMessages.ONLY_PLAYER.send(sender); + PluginMessages.ONLY_PLAYER.sendTo(sender); return null; } } diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/sub/ApplyCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/sub/ApplyCommand.java index d79a849..3536525 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/command/sub/ApplyCommand.java +++ b/src/main/java/cc/carm/plugin/scriptitems/command/sub/ApplyCommand.java @@ -28,20 +28,20 @@ public class ApplyCommand extends SubCommand { ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[0]); if (settings == null) { - PluginMessages.NOT_EXISTS.send(sender, args[1]); + PluginMessages.NOT_EXISTS.sendTo(sender, args[1]); return null; } Player player = (Player) sender; ItemStack item = player.getInventory().getItemInMainHand(); if (item.getType() == Material.AIR) { - PluginMessages.USE_ITEM.send(sender); + PluginMessages.USE_ITEM.sendTo(sender); return null; } ItemStack after = settings.applyItem(item.clone()); player.getInventory().setItemInMainHand(after); - PluginMessages.APPLIED.send(sender, item.getType().name(), settings.getName()); + PluginMessages.APPLIED.sendTo(sender, item.getType().name(), settings.getName()); return null; } diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/sub/GetCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/sub/GetCommand.java index 667a68d..0cb4335 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/command/sub/GetCommand.java +++ b/src/main/java/cc/carm/plugin/scriptitems/command/sub/GetCommand.java @@ -30,7 +30,7 @@ public class GetCommand extends SubCommand { ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[0]); if (settings == null) { - PluginMessages.NOT_EXISTS.send(sender, args[0]); + PluginMessages.NOT_EXISTS.sendTo(sender, args[0]); return null; } @@ -44,22 +44,22 @@ public class GetCommand extends SubCommand { } if (amount < 1) { - PluginMessages.WRONG_AMOUNT.send(sender); + PluginMessages.WRONG_AMOUNT.sendTo(sender); return null; } ItemStack item = settings.generateItem(amount); if (item == null) { - PluginMessages.WRONG_ITEM.send(sender); + PluginMessages.WRONG_ITEM.sendTo(sender); return null; } HashMap remain = player.getInventory().addItem(item); if (remain.isEmpty()) { - PluginMessages.GIVEN_ALL.send(sender, player.getName(), amount, settings.getName()); + PluginMessages.GIVEN_ALL.sendTo(sender, player.getName(), amount, settings.getName()); } else { int remainAmount = remain.values().stream().mapToInt(ItemStack::getAmount).sum(); - PluginMessages.GIVEN_SOME.send(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount); + PluginMessages.GIVEN_SOME.sendTo(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount); } return null; diff --git a/src/main/java/cc/carm/plugin/scriptitems/command/sub/GiveCommand.java b/src/main/java/cc/carm/plugin/scriptitems/command/sub/GiveCommand.java index e8c4fea..60d42bf 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/command/sub/GiveCommand.java +++ b/src/main/java/cc/carm/plugin/scriptitems/command/sub/GiveCommand.java @@ -29,13 +29,13 @@ public class GiveCommand extends SubCommand { Player player = Bukkit.getPlayer(args[0]); if (player == null) { - PluginMessages.NOT_ONLINE.send(sender, args[0]); + PluginMessages.NOT_ONLINE.sendTo(sender, args[0]); return null; } ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]); if (settings == null) { - PluginMessages.NOT_EXISTS.send(sender, args[1]); + PluginMessages.NOT_EXISTS.sendTo(sender, args[1]); return null; } @@ -49,22 +49,22 @@ public class GiveCommand extends SubCommand { } if (amount < 1) { - PluginMessages.WRONG_AMOUNT.send(sender); + PluginMessages.WRONG_AMOUNT.sendTo(sender); return null; } ItemStack item = settings.generateItem(amount); if (item == null) { - PluginMessages.WRONG_ITEM.send(sender); + PluginMessages.WRONG_ITEM.sendTo(sender); return null; } HashMap remain = player.getInventory().addItem(item); if (remain.isEmpty()) { - PluginMessages.GIVEN_ALL.send(sender, player.getName(), amount, settings.getName()); + PluginMessages.GIVEN_ALL.sendTo(sender, player.getName(), amount, settings.getName()); } else { int remainAmount = remain.values().stream().mapToInt(ItemStack::getAmount).sum(); - PluginMessages.GIVEN_SOME.send(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount); + PluginMessages.GIVEN_SOME.sendTo(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount); } return null; diff --git a/src/main/java/cc/carm/plugin/scriptitems/conf/PluginConfig.java b/src/main/java/cc/carm/plugin/scriptitems/conf/PluginConfig.java index a7d2137..78d79c4 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/conf/PluginConfig.java +++ b/src/main/java/cc/carm/plugin/scriptitems/conf/PluginConfig.java @@ -1,40 +1,41 @@ package cc.carm.plugin.scriptitems.conf; -import cc.carm.lib.configuration.core.ConfigurationRoot; -import cc.carm.lib.configuration.core.annotation.HeaderComment; -import cc.carm.lib.configuration.core.value.ConfigValue; -import cc.carm.lib.configuration.core.value.type.ConfiguredValue; +import cc.carm.lib.configuration.Configuration; +import cc.carm.lib.configuration.annotation.ConfigPath; +import cc.carm.lib.configuration.annotation.HeaderComments; +import cc.carm.lib.configuration.value.standard.ConfiguredValue; -public class PluginConfig extends ConfigurationRoot { +@ConfigPath(root = true) +public interface PluginConfig extends Configuration { - public static final ConfigValue DEBUG = ConfiguredValue.of(Boolean.class, false); + ConfiguredValue DEBUG = ConfiguredValue.of(Boolean.class, false); - @HeaderComment({ + @HeaderComments({ "统计数据设定", "该选项用于帮助开发者统计插件版本与使用情况,且绝不会影响性能与使用体验。", "当然,您也可以选择在这里关闭,或在plugins/bStats下的配置文件中关闭。" }) - public static final ConfigValue METRICS = ConfiguredValue.of(Boolean.class, true); + ConfiguredValue METRICS = ConfiguredValue.of(Boolean.class, true); - @HeaderComment({ + @HeaderComments({ "检查更新设定", "该选项用于插件判断是否要检查更新,若您不希望插件检查更新并提示您,可以选择关闭。", "检查更新为异步操作,绝不会影响性能与使用体验。" }) - public static final ConfigValue CHECK_UPDATE = ConfiguredValue.of(Boolean.class, true); + ConfiguredValue CHECK_UPDATE = ConfiguredValue.of(Boolean.class, true); - @HeaderComment({ + @HeaderComments({ "物品使用冷却,避免短时间重复使用物品,也避免网络延迟而导致物品被错误使用而对玩家造成的损失。", "强烈建议开启,且建议设置为 2000毫秒 以上。(1s = 1000ms)" }) - public static class COOLDOWN extends ConfigurationRoot { + interface COOLDOWN extends Configuration { - @HeaderComment("是否启用冷却功能") - public static final ConfigValue ENABLE = ConfiguredValue.of(Boolean.class, true); + @HeaderComments("是否启用冷却功能") + ConfiguredValue ENABLE = ConfiguredValue.of(Boolean.class, true); - @HeaderComment("冷却的时长,单位为毫秒 1秒 = 1000毫秒 = 20ticks") - public static final ConfigValue DURATION = ConfiguredValue.of(Long.class, 3000L); + @HeaderComments("冷却的时长,单位为毫秒 1秒 = 1000毫秒 = 20ticks") + ConfiguredValue DURATION = ConfiguredValue.of(Long.class, 3000L); } diff --git a/src/main/java/cc/carm/plugin/scriptitems/conf/PluginMessages.java b/src/main/java/cc/carm/plugin/scriptitems/conf/PluginMessages.java index f02c8dc..d66d6ff 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/conf/PluginMessages.java +++ b/src/main/java/cc/carm/plugin/scriptitems/conf/PluginMessages.java @@ -1,12 +1,14 @@ package cc.carm.plugin.scriptitems.conf; -import cc.carm.lib.configuration.core.ConfigurationRoot; -import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessageList; +import cc.carm.lib.configuration.Configuration; +import cc.carm.lib.configuration.annotation.ConfigPath; +import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessage; -public class PluginMessages extends ConfigurationRoot { +@ConfigPath(root = true) +public interface PluginMessages extends Configuration { - public static final ConfiguredMessageList USAGE = ConfiguredMessageList.asStrings().defaults( + ConfiguredMessage USAGE = ConfiguredMessage.asString().defaults( "&2&l脚本物品 &f指令帮助", "&8#&f give &a<玩家名> &a<脚本ID> &2[数量]", "&8-&7 给予指定玩家指定数量的物品。", @@ -18,63 +20,63 @@ public class PluginMessages extends ConfigurationRoot { "&8-&7 重载配置文件。" ).build(); - public static final ConfiguredMessageList NO_PERMISSION = ConfiguredMessageList.asStrings() + ConfiguredMessage NO_PERMISSION = ConfiguredMessage.asString() .defaults("&c&l抱歉!&f但您没有权限使用该命令。") .build(); - public final static ConfiguredMessageList COOLDOWN = ConfiguredMessageList.asStrings() + ConfiguredMessage COOLDOWN = ConfiguredMessage.asString() .defaults("&f您需要等待 &a%(time)秒 &f才可再次使用该物品。") .params("time").build(); - public final static ConfiguredMessageList ONLY_PLAYER = ConfiguredMessageList.asStrings() + ConfiguredMessage ONLY_PLAYER = ConfiguredMessage.asString() .defaults("&c抱歉,只有作为玩家时才能使用该指令。").build(); - public final static ConfiguredMessageList USE_ITEM = ConfiguredMessageList.asStrings() + ConfiguredMessage USE_ITEM = ConfiguredMessage.asString() .defaults("&f请手持任意物品后再使用该指令。").build(); - public final static ConfiguredMessageList NOT_ONLINE = ConfiguredMessageList.asStrings() + ConfiguredMessage NOT_ONLINE = ConfiguredMessage.asString() .defaults("&f玩家 &a%(player) &f并不在线。") .params("player").build(); - public final static ConfiguredMessageList NOT_EXISTS = ConfiguredMessageList.asStrings() + ConfiguredMessage NOT_EXISTS = ConfiguredMessage.asString() .defaults("&f脚本配置 &a%(id) &f并不存在。") .params("id").build(); - public final static ConfiguredMessageList WRONG_AMOUNT = ConfiguredMessageList.asStrings() + ConfiguredMessage WRONG_AMOUNT = ConfiguredMessage.asString() .defaults("&f请输入正确的数量!") .build(); - public final static ConfiguredMessageList WRONG_ITEM = ConfiguredMessageList.asStrings() + ConfiguredMessage WRONG_ITEM = ConfiguredMessage.asString() .defaults("&f该脚本并未成功配置具体物品,请使用 &a/ScriptItems apply &f来绑定到指定物品上,或在配置文件中正确配置物品。") .build(); - public final static ConfiguredMessageList GIVEN_ALL = ConfiguredMessageList.asStrings() + ConfiguredMessage GIVEN_ALL = ConfiguredMessage.asString() .defaults("&f您成功给予 &2%(player) &f了 &a%(amount) &f个 &a%(name) &f。") .params("player", "amount", "name").build(); - public final static ConfiguredMessageList GIVEN_SOME = ConfiguredMessageList.asStrings() + ConfiguredMessage GIVEN_SOME = ConfiguredMessage.asString() .defaults( "&f您成功给予 &2%(player) &f了 &a%(amount) &f个 &a%(name) &f。", "&f但由于目标玩家背包已满,仍有 &a%(remain) &f个 &a%(name) &f未成功放入背包。" ).params("player", "amount", "name", "remain").build(); - public final static ConfiguredMessageList APPLIED = ConfiguredMessageList.asStrings() + ConfiguredMessage APPLIED = ConfiguredMessage.asString() .defaults("&f成功为手上的 &2%(type) &f绑定了脚本 &a%(name) &f。") .params("type", "name").build(); - public static class RESTRICTIONS extends ConfigurationRoot { + interface RESTRICTIONS extends Configuration { - public final static ConfiguredMessageList INVALID = ConfiguredMessageList.asStrings() + ConfiguredMessage INVALID = ConfiguredMessage.asString() .defaults("&c&l抱歉!&f由于配置的时间限制错误,该物品目前暂不可用。") .build(); - public final static ConfiguredMessageList NOT_STARTED = ConfiguredMessageList.asStrings() + ConfiguredMessage NOT_STARTED = ConfiguredMessage.asString() .defaults("&f该物品目前还到可使用的时间,请在 &a%(time) &f后使用~") .params("time") .build(); - public final static ConfiguredMessageList EXPIRED = ConfiguredMessageList.asStrings() + ConfiguredMessage EXPIRED = ConfiguredMessage.asString() .defaults("&c&l抱歉!&f由于该物品已过最后使用期限,故无法继续使用。") .params("time") .build(); diff --git a/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseConfig.java b/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseConfig.java index 008652f..8820d90 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseConfig.java +++ b/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseConfig.java @@ -1,33 +1,32 @@ package cc.carm.plugin.scriptitems.database; -import cc.carm.lib.configuration.core.ConfigurationRoot; -import cc.carm.lib.configuration.core.annotation.ConfigPath; -import cc.carm.lib.configuration.core.annotation.HeaderComment; -import cc.carm.lib.configuration.core.value.ConfigValue; -import cc.carm.lib.configuration.core.value.type.ConfiguredValue; +import cc.carm.lib.configuration.Configuration; +import cc.carm.lib.configuration.annotation.ConfigPath; +import cc.carm.lib.configuration.annotation.HeaderComments; +import cc.carm.lib.configuration.value.standard.ConfiguredValue; -@HeaderComment("选择 database (如mysql) 存储方式时的数据库配置") +@HeaderComments("选择 database (如mysql) 存储方式时的数据库配置") @ConfigPath("storage.database") -public class DatabaseConfig extends ConfigurationRoot { +public class DatabaseConfig implements Configuration { @ConfigPath("driver") - protected static final ConfigValue DRIVER_NAME = ConfiguredValue.of( + protected static final ConfiguredValue DRIVER_NAME = ConfiguredValue.of( String.class, "com.mysql.jdbc.Driver" ); - protected static final ConfigValue HOST = ConfiguredValue.of(String.class, "127.0.0.1"); - protected static final ConfigValue PORT = ConfiguredValue.of(Integer.class, 3306); - protected static final ConfigValue DATABASE = ConfiguredValue.of(String.class, "minecraft"); - protected static final ConfigValue USERNAME = ConfiguredValue.of(String.class, "root"); - protected static final ConfigValue PASSWORD = ConfiguredValue.of(String.class, "password"); - protected static final ConfigValue EXTRA = ConfiguredValue.of(String.class, "?useSSL=false"); + protected static final ConfiguredValue HOST = ConfiguredValue.of(String.class, "127.0.0.1"); + protected static final ConfiguredValue PORT = ConfiguredValue.of(Integer.class, 3306); + protected static final ConfiguredValue DATABASE = ConfiguredValue.of(String.class, "minecraft"); + protected static final ConfiguredValue USERNAME = ConfiguredValue.of(String.class, "root"); + protected static final ConfiguredValue PASSWORD = ConfiguredValue.of(String.class, "password"); + protected static final ConfiguredValue EXTRA = ConfiguredValue.of(String.class, "?useSSL=false"); - @HeaderComment("插件相关表的名称") - public static final class TABLES extends ConfigurationRoot { + @HeaderComments("插件相关表的名称") + public static final class TABLES implements Configuration { - public static final ConfigValue TAKEN = ConfiguredValue.of(String.class, "log_item_take"); - public static final ConfigValue GIVEN = ConfiguredValue.of(String.class, "log_item_give"); + public static final ConfiguredValue TAKEN = ConfiguredValue.of(String.class, "log_item_take"); + public static final ConfiguredValue GIVEN = ConfiguredValue.of(String.class, "log_item_give"); } diff --git a/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseTables.java b/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseTables.java index 74f8626..ef1cbd9 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseTables.java +++ b/src/main/java/cc/carm/plugin/scriptitems/database/DatabaseTables.java @@ -1,6 +1,6 @@ package cc.carm.plugin.scriptitems.database; -import cc.carm.lib.configuration.core.value.ConfigValue; +import cc.carm.lib.configuration.value.standard.ConfiguredValue; import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.SQLTable; import cc.carm.lib.easysql.api.builder.TableCreateBuilder; @@ -66,10 +66,10 @@ public enum DatabaseTables implements SQLTable { }); private final Consumer builder; - private final ConfigValue name; + private final ConfiguredValue name; private @Nullable SQLManager manager; - DatabaseTables(ConfigValue name, + DatabaseTables(ConfiguredValue name, Consumer builder) { this.name = name; this.builder = builder; diff --git a/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java index 606c133..2e84142 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java +++ b/src/main/java/cc/carm/plugin/scriptitems/item/ScriptRestrictions.java @@ -1,7 +1,7 @@ package cc.carm.plugin.scriptitems.item; import cc.carm.lib.easysql.api.util.TimeDateUtils; -import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessageList; +import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessage; import cc.carm.plugin.scriptitems.conf.PluginMessages; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; @@ -63,25 +63,25 @@ public class ScriptRestrictions { (res) -> new Object[]{TimeDateUtils.getTimeString(res.getEndTime())} ); - private final Supplier<@Nullable ConfiguredMessageList> message; + private final Supplier<@Nullable ConfiguredMessage> message; private final Function<@NotNull ScriptRestrictions, Object[]> params; - CheckResult(@NotNull Supplier<@Nullable ConfiguredMessageList> message, + CheckResult(@NotNull Supplier<@Nullable ConfiguredMessage> message, @NotNull Function<@NotNull ScriptRestrictions, @Nullable Object[]> params) { this.message = message; this.params = params; } - public Supplier> getMessage() { + public Supplier> getMessage() { return message; } public void send(Player player, ScriptRestrictions restrictions) { Object[] params = this.params.apply(restrictions); if (params == null) { - getMessage().get().send(player); + getMessage().get().sendTo(player); } else { - getMessage().get().send(player, params); + getMessage().get().sendTo(player, params); } } diff --git a/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java index ad2c21e..0d03b5d 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java +++ b/src/main/java/cc/carm/plugin/scriptitems/listener/ItemListener.java @@ -45,7 +45,7 @@ public class ItemListener implements Listener { Player player = event.getPlayer(); if (cooldown.isCoolingDown(player)) { - PluginMessages.COOLDOWN.send(player, cooldown.getCooldownSeconds(player)); + PluginMessages.COOLDOWN.sendTo(player, cooldown.getCooldownSeconds(player)); return; } cooldown.updateTime(player); diff --git a/src/main/java/cc/carm/plugin/scriptitems/listener/ProtectListener.java b/src/main/java/cc/carm/plugin/scriptitems/listener/ProtectListener.java index cd90cd4..d9cb2b0 100644 --- a/src/main/java/cc/carm/plugin/scriptitems/listener/ProtectListener.java +++ b/src/main/java/cc/carm/plugin/scriptitems/listener/ProtectListener.java @@ -1,6 +1,6 @@ package cc.carm.plugin.scriptitems.listener; -import cc.carm.lib.easyplugin.listener.EasyListener; +import cc.carm.lib.easylistener.EasyListener; import cc.carm.plugin.scriptitems.ScriptItemsAPI; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; @@ -36,7 +36,7 @@ public class ProtectListener extends EasyListener { // 阻止物品被烧掉 handleEvent(EntityDamageEvent.class) - .filter(e -> e.getEntity().getType() == EntityType.DROPPED_ITEM) + .filter(e -> e.getEntity() instanceof Item) .filter(e -> isScriptItem(((Item) e.getEntity()).getItemStack())) .cancel(); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f9bf477..8ff33a2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -12,11 +12,12 @@ softdepend: - PlaceholderAPI api-version: 1.13 +folia-supported: true commands: - "ScriptItems": + "scriptitems": aliases: - sitems - usage: "/ScriptItems help" + usage: "/scriptitems help" description: "ScriptItems 的主指令。" permission: "ScriptItems.admin" \ No newline at end of file