Skip to content

Commit 29da2c8

Browse files
committed
feat: 升级到 1.21,并提供folia支持
1 parent c346c57 commit 29da2c8

File tree

15 files changed

+99
-96
lines changed

15 files changed

+99
-96
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414

1515
脚本物品插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。
1616

17-
本插件由 [ArtStyle(艺式)](https://artstyle.wiki/)[猫窝](https://maowo.moe) 提供开发资助。
17+
本插件由 [ArtStyle(艺式)](https://artstyle.wiki/)[猫窝](https://maowo.moe)[奥林匹亚](www.mcolympia.site) 提供开发资助。
1818

1919
## 插件功能与优势
2020

21-
> 加 * 的功能仍在开发中。
21+
> 加 * 的功能仍在开发中。
2222
2323
- 物品操作绑定,给予玩家可执行对应操作设置的物品,支持PlaceholderAPI变量。
2424
- 目前支持的操作有:

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
<groupId>cc.carm.plugin</groupId>
2020
<artifactId>scriptitems</artifactId>
21-
<version>1.1.1</version>
21+
<version>1.1.2</version>
2222

2323
<name>ScriptItems</name>
2424
<description>物品操作绑定插件,给予玩家可执行对应操作的物品,基于EasyPlugin实现。</description>
@@ -101,8 +101,8 @@
101101

102102
<dependency>
103103
<groupId>cc.carm.lib</groupId>
104-
<artifactId>easyplugin-listener</artifactId>
105-
<version>${deps.easyplugin.version}</version>
104+
<artifactId>easylistener</artifactId>
105+
<version>2.0.1</version>
106106
<scope>compile</scope>
107107
<optional>true</optional>
108108
</dependency>
@@ -134,7 +134,7 @@
134134
<dependency>
135135
<groupId>org.spigotmc</groupId>
136136
<artifactId>spigot-api</artifactId>
137-
<version>1.19-R0.1-20220725.090125-47</version>
137+
<version>1.21.10-R0.1-SNAPSHOT</version>
138138
<scope>provided</scope>
139139
</dependency>
140140

src/main/java/cc/carm/plugin/scriptitems/Main.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package cc.carm.plugin.scriptitems;
22

3-
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
3+
import cc.carm.lib.configuration.source.ConfigurationHolder;
44
import cc.carm.lib.easyplugin.EasyPlugin;
55
import cc.carm.lib.easyplugin.updatechecker.GHUpdateChecker;
66
import cc.carm.lib.mineconfiguration.bukkit.MineConfiguration;
@@ -21,8 +21,8 @@ public Main() {
2121
instance = this;
2222
}
2323

24-
protected ConfigurationProvider<?> configProvider;
25-
protected ConfigurationProvider<?> messageProvider;
24+
protected ConfigurationHolder<?> configProvider;
25+
protected ConfigurationHolder<?> messageProvider;
2626

2727
protected ItemsManager itemsManager;
2828

@@ -42,7 +42,7 @@ protected boolean initialize() {
4242
this.itemsManager.initialize();
4343

4444
info("注册指令...");
45-
registerCommand("ScriptItems", new MainCommand(this));
45+
registerCommand("ScriptItems".toLowerCase(), new MainCommand(this));
4646

4747
info("注册监听器...");
4848
registerListener(new ItemListener());
@@ -92,11 +92,11 @@ public static void debugging(String... messages) {
9292
getInstance().debug(messages);
9393
}
9494

95-
public ConfigurationProvider<?> getConfigProvider() {
95+
public ConfigurationHolder<?> getConfigProvider() {
9696
return configProvider;
9797
}
9898

99-
public ConfigurationProvider<?> getMessageProvider() {
99+
public ConfigurationHolder<?> getMessageProvider() {
100100
return messageProvider;
101101
}
102102
}

src/main/java/cc/carm/plugin/scriptitems/command/MainCommand.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ public MainCommand(@NotNull JavaPlugin plugin) {
2121

2222
@Override
2323
public Void noArgs(CommandSender sender) {
24-
PluginMessages.USAGE.send(sender);
24+
PluginMessages.USAGE.sendTo(sender);
2525
return null;
2626
}
2727

2828
@Override
2929
public Void noPermission(CommandSender sender) {
30-
PluginMessages.NO_PERMISSION.send(sender);
30+
PluginMessages.NO_PERMISSION.sendTo(sender);
3131
return null;
3232
}
3333

@@ -37,7 +37,7 @@ public boolean hasPermission(CommandSender sender) {
3737
}
3838

3939
public Void onlyPlay(CommandSender sender) {
40-
PluginMessages.ONLY_PLAYER.send(sender);
40+
PluginMessages.ONLY_PLAYER.sendTo(sender);
4141
return null;
4242
}
4343
}

src/main/java/cc/carm/plugin/scriptitems/command/sub/ApplyCommand.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,20 @@ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) thro
2828

2929
ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[0]);
3030
if (settings == null) {
31-
PluginMessages.NOT_EXISTS.send(sender, args[1]);
31+
PluginMessages.NOT_EXISTS.sendTo(sender, args[1]);
3232
return null;
3333
}
3434

3535
Player player = (Player) sender;
3636
ItemStack item = player.getInventory().getItemInMainHand();
3737
if (item.getType() == Material.AIR) {
38-
PluginMessages.USE_ITEM.send(sender);
38+
PluginMessages.USE_ITEM.sendTo(sender);
3939
return null;
4040
}
4141

4242
ItemStack after = settings.applyItem(item.clone());
4343
player.getInventory().setItemInMainHand(after);
44-
PluginMessages.APPLIED.send(sender, item.getType().name(), settings.getName());
44+
PluginMessages.APPLIED.sendTo(sender, item.getType().name(), settings.getName());
4545
return null;
4646
}
4747

src/main/java/cc/carm/plugin/scriptitems/command/sub/GetCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) {
3030

3131
ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[0]);
3232
if (settings == null) {
33-
PluginMessages.NOT_EXISTS.send(sender, args[0]);
33+
PluginMessages.NOT_EXISTS.sendTo(sender, args[0]);
3434
return null;
3535
}
3636

@@ -44,22 +44,22 @@ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) {
4444
}
4545

4646
if (amount < 1) {
47-
PluginMessages.WRONG_AMOUNT.send(sender);
47+
PluginMessages.WRONG_AMOUNT.sendTo(sender);
4848
return null;
4949
}
5050

5151
ItemStack item = settings.generateItem(amount);
5252
if (item == null) {
53-
PluginMessages.WRONG_ITEM.send(sender);
53+
PluginMessages.WRONG_ITEM.sendTo(sender);
5454
return null;
5555
}
5656

5757
HashMap<Integer, ItemStack> remain = player.getInventory().addItem(item);
5858
if (remain.isEmpty()) {
59-
PluginMessages.GIVEN_ALL.send(sender, player.getName(), amount, settings.getName());
59+
PluginMessages.GIVEN_ALL.sendTo(sender, player.getName(), amount, settings.getName());
6060
} else {
6161
int remainAmount = remain.values().stream().mapToInt(ItemStack::getAmount).sum();
62-
PluginMessages.GIVEN_SOME.send(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount);
62+
PluginMessages.GIVEN_SOME.sendTo(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount);
6363
}
6464

6565
return null;

src/main/java/cc/carm/plugin/scriptitems/command/sub/GiveCommand.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) thro
2929
Player player = Bukkit.getPlayer(args[0]);
3030

3131
if (player == null) {
32-
PluginMessages.NOT_ONLINE.send(sender, args[0]);
32+
PluginMessages.NOT_ONLINE.sendTo(sender, args[0]);
3333
return null;
3434
}
3535

3636
ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]);
3737
if (settings == null) {
38-
PluginMessages.NOT_EXISTS.send(sender, args[1]);
38+
PluginMessages.NOT_EXISTS.sendTo(sender, args[1]);
3939
return null;
4040
}
4141

@@ -49,22 +49,22 @@ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) thro
4949
}
5050

5151
if (amount < 1) {
52-
PluginMessages.WRONG_AMOUNT.send(sender);
52+
PluginMessages.WRONG_AMOUNT.sendTo(sender);
5353
return null;
5454
}
5555

5656
ItemStack item = settings.generateItem(amount);
5757
if (item == null) {
58-
PluginMessages.WRONG_ITEM.send(sender);
58+
PluginMessages.WRONG_ITEM.sendTo(sender);
5959
return null;
6060
}
6161

6262
HashMap<Integer, ItemStack> remain = player.getInventory().addItem(item);
6363
if (remain.isEmpty()) {
64-
PluginMessages.GIVEN_ALL.send(sender, player.getName(), amount, settings.getName());
64+
PluginMessages.GIVEN_ALL.sendTo(sender, player.getName(), amount, settings.getName());
6565
} else {
6666
int remainAmount = remain.values().stream().mapToInt(ItemStack::getAmount).sum();
67-
PluginMessages.GIVEN_SOME.send(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount);
67+
PluginMessages.GIVEN_SOME.sendTo(sender, player.getName(), amount - remainAmount, settings.getName(), remainAmount);
6868
}
6969

7070
return null;

src/main/java/cc/carm/plugin/scriptitems/conf/PluginConfig.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,41 @@
11
package cc.carm.plugin.scriptitems.conf;
22

33

4-
import cc.carm.lib.configuration.core.ConfigurationRoot;
5-
import cc.carm.lib.configuration.core.annotation.HeaderComment;
6-
import cc.carm.lib.configuration.core.value.ConfigValue;
7-
import cc.carm.lib.configuration.core.value.type.ConfiguredValue;
4+
import cc.carm.lib.configuration.Configuration;
5+
import cc.carm.lib.configuration.annotation.ConfigPath;
6+
import cc.carm.lib.configuration.annotation.HeaderComments;
7+
import cc.carm.lib.configuration.value.standard.ConfiguredValue;
88

9-
public class PluginConfig extends ConfigurationRoot {
9+
@ConfigPath(root = true)
10+
public interface PluginConfig extends Configuration {
1011

11-
public static final ConfigValue<Boolean> DEBUG = ConfiguredValue.of(Boolean.class, false);
12+
ConfiguredValue<Boolean> DEBUG = ConfiguredValue.of(Boolean.class, false);
1213

13-
@HeaderComment({
14+
@HeaderComments({
1415
"统计数据设定",
1516
"该选项用于帮助开发者统计插件版本与使用情况,且绝不会影响性能与使用体验。",
1617
"当然,您也可以选择在这里关闭,或在plugins/bStats下的配置文件中关闭。"
1718
})
18-
public static final ConfigValue<Boolean> METRICS = ConfiguredValue.of(Boolean.class, true);
19+
ConfiguredValue<Boolean> METRICS = ConfiguredValue.of(Boolean.class, true);
1920

20-
@HeaderComment({
21+
@HeaderComments({
2122
"检查更新设定",
2223
"该选项用于插件判断是否要检查更新,若您不希望插件检查更新并提示您,可以选择关闭。",
2324
"检查更新为异步操作,绝不会影响性能与使用体验。"
2425
})
25-
public static final ConfigValue<Boolean> CHECK_UPDATE = ConfiguredValue.of(Boolean.class, true);
26+
ConfiguredValue<Boolean> CHECK_UPDATE = ConfiguredValue.of(Boolean.class, true);
2627

27-
@HeaderComment({
28+
@HeaderComments({
2829
"物品使用冷却,避免短时间重复使用物品,也避免网络延迟而导致物品被错误使用而对玩家造成的损失。",
2930
"强烈建议开启,且建议设置为 2000毫秒 以上。(1s = 1000ms)"
3031
})
31-
public static class COOLDOWN extends ConfigurationRoot {
32+
interface COOLDOWN extends Configuration {
3233

33-
@HeaderComment("是否启用冷却功能")
34-
public static final ConfigValue<Boolean> ENABLE = ConfiguredValue.of(Boolean.class, true);
34+
@HeaderComments("是否启用冷却功能")
35+
ConfiguredValue<Boolean> ENABLE = ConfiguredValue.of(Boolean.class, true);
3536

36-
@HeaderComment("冷却的时长,单位为毫秒 1秒 = 1000毫秒 = 20ticks")
37-
public static final ConfigValue<Long> DURATION = ConfiguredValue.of(Long.class, 3000L);
37+
@HeaderComments("冷却的时长,单位为毫秒 1秒 = 1000毫秒 = 20ticks")
38+
ConfiguredValue<Long> DURATION = ConfiguredValue.of(Long.class, 3000L);
3839

3940
}
4041

src/main/java/cc/carm/plugin/scriptitems/conf/PluginMessages.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package cc.carm.plugin.scriptitems.conf;
22

33

4-
import cc.carm.lib.configuration.core.ConfigurationRoot;
5-
import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessageList;
4+
import cc.carm.lib.configuration.Configuration;
5+
import cc.carm.lib.configuration.annotation.ConfigPath;
6+
import cc.carm.lib.mineconfiguration.bukkit.value.ConfiguredMessage;
67

7-
public class PluginMessages extends ConfigurationRoot {
8+
@ConfigPath(root = true)
9+
public interface PluginMessages extends Configuration {
810

9-
public static final ConfiguredMessageList<String> USAGE = ConfiguredMessageList.asStrings().defaults(
11+
ConfiguredMessage<String> USAGE = ConfiguredMessage.asString().defaults(
1012
"&2&l脚本物品 &f指令帮助",
1113
"&8#&f give &a<玩家名> &a<脚本ID> &2[数量]",
1214
"&8-&7 给予指定玩家指定数量的物品。",
@@ -18,63 +20,63 @@ public class PluginMessages extends ConfigurationRoot {
1820
"&8-&7 重载配置文件。"
1921
).build();
2022

21-
public static final ConfiguredMessageList<String> NO_PERMISSION = ConfiguredMessageList.asStrings()
23+
ConfiguredMessage<String> NO_PERMISSION = ConfiguredMessage.asString()
2224
.defaults("&c&l抱歉!&f但您没有权限使用该命令。")
2325
.build();
2426

25-
public final static ConfiguredMessageList<String> COOLDOWN = ConfiguredMessageList.asStrings()
27+
ConfiguredMessage<String> COOLDOWN = ConfiguredMessage.asString()
2628
.defaults("&f您需要等待 &a%(time)秒 &f才可再次使用该物品。")
2729
.params("time").build();
2830

29-
public final static ConfiguredMessageList<String> ONLY_PLAYER = ConfiguredMessageList.asStrings()
31+
ConfiguredMessage<String> ONLY_PLAYER = ConfiguredMessage.asString()
3032
.defaults("&c抱歉,只有作为玩家时才能使用该指令。").build();
3133

32-
public final static ConfiguredMessageList<String> USE_ITEM = ConfiguredMessageList.asStrings()
34+
ConfiguredMessage<String> USE_ITEM = ConfiguredMessage.asString()
3335
.defaults("&f请手持任意物品后再使用该指令。").build();
3436

35-
public final static ConfiguredMessageList<String> NOT_ONLINE = ConfiguredMessageList.asStrings()
37+
ConfiguredMessage<String> NOT_ONLINE = ConfiguredMessage.asString()
3638
.defaults("&f玩家 &a%(player) &f并不在线。")
3739
.params("player").build();
3840

39-
public final static ConfiguredMessageList<String> NOT_EXISTS = ConfiguredMessageList.asStrings()
41+
ConfiguredMessage<String> NOT_EXISTS = ConfiguredMessage.asString()
4042
.defaults("&f脚本配置 &a%(id) &f并不存在。")
4143
.params("id").build();
4244

43-
public final static ConfiguredMessageList<String> WRONG_AMOUNT = ConfiguredMessageList.asStrings()
45+
ConfiguredMessage<String> WRONG_AMOUNT = ConfiguredMessage.asString()
4446
.defaults("&f请输入正确的数量!")
4547
.build();
4648

47-
public final static ConfiguredMessageList<String> WRONG_ITEM = ConfiguredMessageList.asStrings()
49+
ConfiguredMessage<String> WRONG_ITEM = ConfiguredMessage.asString()
4850
.defaults("&f该脚本并未成功配置具体物品,请使用 &a/ScriptItems apply &f来绑定到指定物品上,或在配置文件中正确配置物品。")
4951
.build();
5052

51-
public final static ConfiguredMessageList<String> GIVEN_ALL = ConfiguredMessageList.asStrings()
53+
ConfiguredMessage<String> GIVEN_ALL = ConfiguredMessage.asString()
5254
.defaults("&f您成功给予 &2%(player) &f了 &a%(amount) &f个 &a%(name) &f。")
5355
.params("player", "amount", "name").build();
5456

55-
public final static ConfiguredMessageList<String> GIVEN_SOME = ConfiguredMessageList.asStrings()
57+
ConfiguredMessage<String> GIVEN_SOME = ConfiguredMessage.asString()
5658
.defaults(
5759
"&f您成功给予 &2%(player) &f了 &a%(amount) &f个 &a%(name) &f。",
5860
"&f但由于目标玩家背包已满,仍有 &a%(remain) &f个 &a%(name) &f未成功放入背包。"
5961
).params("player", "amount", "name", "remain").build();
6062

6163

62-
public final static ConfiguredMessageList<String> APPLIED = ConfiguredMessageList.asStrings()
64+
ConfiguredMessage<String> APPLIED = ConfiguredMessage.asString()
6365
.defaults("&f成功为手上的 &2%(type) &f绑定了脚本 &a%(name) &f。")
6466
.params("type", "name").build();
6567

66-
public static class RESTRICTIONS extends ConfigurationRoot {
68+
interface RESTRICTIONS extends Configuration {
6769

68-
public final static ConfiguredMessageList<String> INVALID = ConfiguredMessageList.asStrings()
70+
ConfiguredMessage<String> INVALID = ConfiguredMessage.asString()
6971
.defaults("&c&l抱歉!&f由于配置的时间限制错误,该物品目前暂不可用。")
7072
.build();
7173

72-
public final static ConfiguredMessageList<String> NOT_STARTED = ConfiguredMessageList.asStrings()
74+
ConfiguredMessage<String> NOT_STARTED = ConfiguredMessage.asString()
7375
.defaults("&f该物品目前还到可使用的时间,请在 &a%(time) &f后使用~")
7476
.params("time")
7577
.build();
7678

77-
public final static ConfiguredMessageList<String> EXPIRED = ConfiguredMessageList.asStrings()
79+
ConfiguredMessage<String> EXPIRED = ConfiguredMessage.asString()
7880
.defaults("&c&l抱歉!&f由于该物品已过最后使用期限,故无法继续使用。")
7981
.params("time")
8082
.build();

0 commit comments

Comments
 (0)