mirror of
https://github.com/CarmJos/ScriptItems
synced 2024-09-19 21:35:50 +00:00
修改类名
This commit is contained in:
parent
8dcef9431c
commit
e19e6b0627
@ -2,7 +2,7 @@ package cc.carm.plugin.scriptitems.command;
|
||||
|
||||
import cc.carm.plugin.scriptitems.ScriptItemsAPI;
|
||||
import cc.carm.plugin.scriptitems.configuration.PluginMessages;
|
||||
import cc.carm.plugin.scriptitems.item.ItemSettings;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptConfiguration;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
@ -50,7 +50,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter {
|
||||
return true;
|
||||
}
|
||||
|
||||
ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]);
|
||||
ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]);
|
||||
if (settings == null) {
|
||||
PluginMessages.NOT_EXISTS.send(sender, args[1]);
|
||||
return true;
|
||||
@ -81,7 +81,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter {
|
||||
return true;
|
||||
}
|
||||
|
||||
ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]);
|
||||
ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]);
|
||||
if (settings == null) {
|
||||
PluginMessages.NOT_EXISTS.send(sender, args[2]);
|
||||
return true;
|
||||
|
@ -1,29 +0,0 @@
|
||||
package cc.carm.plugin.scriptitems.item;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ItemActionGroup {
|
||||
|
||||
|
||||
List<ItemAction> actions;
|
||||
|
||||
public ItemActionGroup(List<ItemAction> actions) {
|
||||
this.actions = actions;
|
||||
}
|
||||
|
||||
public void execute(Player player) {
|
||||
actions.forEach(action -> action.execute(player));
|
||||
}
|
||||
|
||||
public static @NotNull ItemActionGroup read(@NotNull List<String> actionsString) {
|
||||
List<ItemAction> actions = actionsString.stream()
|
||||
.map(ItemAction::read).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
return new ItemActionGroup(actions);
|
||||
}
|
||||
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
package cc.carm.plugin.scriptitems.item;
|
||||
|
||||
public enum ItemExecuteResult {
|
||||
|
||||
SUCCESS(0),
|
||||
FAILED(1),
|
||||
|
||||
;
|
||||
|
||||
int id;
|
||||
|
||||
ItemExecuteResult(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
}
|
@ -4,17 +4,17 @@ import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ItemAction {
|
||||
public class ScriptAction {
|
||||
|
||||
@NotNull ItemActionType type;
|
||||
@NotNull ScriptActionType type;
|
||||
@Nullable String actionContent;
|
||||
|
||||
public ItemAction(@NotNull ItemActionType type, @Nullable String actionContent) {
|
||||
public ScriptAction(@NotNull ScriptActionType type, @Nullable String actionContent) {
|
||||
this.type = type;
|
||||
this.actionContent = actionContent;
|
||||
}
|
||||
|
||||
public @NotNull ItemActionType getType() {
|
||||
public @NotNull ScriptActionType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@ -26,17 +26,17 @@ public class ItemAction {
|
||||
return getType().execute(player, getActionContent());
|
||||
}
|
||||
|
||||
public static @Nullable ItemAction read(@Nullable String actionString) {
|
||||
public static @Nullable ScriptAction read(@Nullable String actionString) {
|
||||
if (actionString == null) return null;
|
||||
int prefixStart = actionString.indexOf("[");
|
||||
int prefixEnd = actionString.indexOf("]");
|
||||
if (prefixStart < 0 || prefixEnd < 0) return null;
|
||||
|
||||
String prefix = actionString.substring(prefixStart + 1, prefixEnd);
|
||||
ItemActionType actionType = ItemActionType.read(prefix);
|
||||
ScriptActionType actionType = ScriptActionType.read(prefix);
|
||||
if (actionType == null) return null;
|
||||
|
||||
return new ItemAction(actionType, actionString.substring(prefixEnd + 1).trim());
|
||||
return new ScriptAction(actionType, actionString.substring(prefixEnd + 1).trim());
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,29 @@
|
||||
package cc.carm.plugin.scriptitems.item;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ScriptActionGroup {
|
||||
|
||||
|
||||
List<ScriptAction> actions;
|
||||
|
||||
public ScriptActionGroup(List<ScriptAction> actions) {
|
||||
this.actions = actions;
|
||||
}
|
||||
|
||||
public void execute(Player player) {
|
||||
actions.forEach(action -> action.execute(player));
|
||||
}
|
||||
|
||||
public static @NotNull ScriptActionGroup read(@NotNull List<String> actionsString) {
|
||||
List<ScriptAction> actions = actionsString.stream()
|
||||
.map(ScriptAction::read).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
return new ScriptActionGroup(actions);
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
public enum ItemActionType {
|
||||
public enum ScriptActionType {
|
||||
|
||||
/**
|
||||
* 以玩家聊天的形式执行
|
||||
@ -100,7 +100,7 @@ public enum ItemActionType {
|
||||
|
||||
BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor;
|
||||
|
||||
ItemActionType(BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor) {
|
||||
ScriptActionType(BiFunction<@NotNull Player, @Nullable String, @NotNull Boolean> executor) {
|
||||
this.executor = executor;
|
||||
}
|
||||
|
||||
@ -112,8 +112,8 @@ public enum ItemActionType {
|
||||
return getExecutor().apply(player, content);
|
||||
}
|
||||
|
||||
public static ItemActionType read(String string) {
|
||||
return Arrays.stream(ItemActionType.values())
|
||||
public static ScriptActionType read(String string) {
|
||||
return Arrays.stream(ScriptActionType.values())
|
||||
.filter(action -> action.name().equalsIgnoreCase(string))
|
||||
.findFirst().orElse(null);
|
||||
}
|
@ -13,21 +13,21 @@ import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ItemSettings {
|
||||
public class ScriptConfiguration {
|
||||
|
||||
protected final @NotNull String identifier;
|
||||
@Nullable String name;
|
||||
|
||||
@Nullable ItemStackConfig item;
|
||||
@NotNull ItemRestrictions restrictions;
|
||||
@NotNull ScriptRestrictions restrictions;
|
||||
|
||||
@NotNull Map<String, String> permissions;
|
||||
@NotNull Map<String, ItemActionGroup> actions;
|
||||
@NotNull Map<String, ScriptActionGroup> actions;
|
||||
|
||||
public ItemSettings(@NotNull String identifier, @Nullable String name,
|
||||
@Nullable ItemStackConfig item, @NotNull ItemRestrictions restrictions,
|
||||
@NotNull Map<String, String> permissions,
|
||||
@NotNull Map<String, ItemActionGroup> actions) {
|
||||
public ScriptConfiguration(@NotNull String identifier, @Nullable String name,
|
||||
@Nullable ItemStackConfig item, @NotNull ScriptRestrictions restrictions,
|
||||
@NotNull Map<String, String> permissions,
|
||||
@NotNull Map<String, ScriptActionGroup> actions) {
|
||||
this.identifier = identifier;
|
||||
this.name = name;
|
||||
this.item = item;
|
||||
@ -64,23 +64,23 @@ public class ItemSettings {
|
||||
}
|
||||
|
||||
|
||||
public @NotNull ItemRestrictions getRestrictions() {
|
||||
public @NotNull ScriptRestrictions getRestrictions() {
|
||||
return restrictions;
|
||||
}
|
||||
|
||||
public ItemRestrictions.CheckResult checkRestrictions() {
|
||||
public ScriptRestrictions.CheckResult checkRestrictions() {
|
||||
return getRestrictions().check();
|
||||
}
|
||||
|
||||
public @NotNull Map<String, ItemActionGroup> getActions() {
|
||||
public @NotNull Map<String, ScriptActionGroup> getActions() {
|
||||
return this.actions;
|
||||
}
|
||||
|
||||
public @Nullable ItemActionGroup getDefaultActions() {
|
||||
public @Nullable ScriptActionGroup getDefaultActions() {
|
||||
return getActions().get("default");
|
||||
}
|
||||
|
||||
public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) {
|
||||
public @Nullable ScriptActionGroup getPlayerActions(@NotNull Player player) {
|
||||
@NotNull String actionGroup = getPermissions().entrySet().stream()
|
||||
.filter(entry -> player.hasPermission(entry.getValue()))
|
||||
.map(Map.Entry::getKey).findFirst().orElse("default");
|
||||
@ -92,21 +92,21 @@ public class ItemSettings {
|
||||
return ScriptItemsAPI.getItemsManager().applyTag(originalItem, identifier, UUID.randomUUID());
|
||||
}
|
||||
|
||||
public static @NotNull ItemSettings load(@NotNull File file) throws Exception {
|
||||
public static @NotNull ScriptConfiguration load(@NotNull File file) throws Exception {
|
||||
return load(YamlConfiguration.loadConfiguration(file));
|
||||
}
|
||||
|
||||
public static @NotNull ItemSettings load(@NotNull FileConfiguration config) throws Exception {
|
||||
public static @NotNull ScriptConfiguration load(@NotNull FileConfiguration config) throws Exception {
|
||||
String identifier = config.getString("identifier");
|
||||
if (identifier == null) throw new Exception("identifier not provided.");
|
||||
return new ItemSettings(
|
||||
return new ScriptConfiguration(
|
||||
identifier, config.getString("name"),
|
||||
config.isItemStack("item") ?
|
||||
ItemStackConfig.create(config.getItemStack("item")) :
|
||||
ItemStackConfig.read(config.getConfigurationSection("item")),
|
||||
ItemRestrictions.read(config.getConfigurationSection("restrictions")),
|
||||
ScriptRestrictions.read(config.getConfigurationSection("restrictions")),
|
||||
ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)),
|
||||
ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read)
|
||||
ConfigManager.readListMap(config.getConfigurationSection("actions"), ScriptActionGroup::read)
|
||||
);
|
||||
}
|
||||
}
|
@ -9,10 +9,10 @@ public class ScriptItem {
|
||||
|
||||
@NotNull UUID uuid;
|
||||
|
||||
@NotNull ItemSettings settings;
|
||||
@NotNull ScriptConfiguration settings;
|
||||
@NotNull ItemStack itemStack;
|
||||
|
||||
public ScriptItem(@NotNull UUID uuid, @NotNull ItemSettings settings, @NotNull ItemStack itemStack) {
|
||||
public ScriptItem(@NotNull UUID uuid, @NotNull ScriptConfiguration settings, @NotNull ItemStack itemStack) {
|
||||
this.uuid = uuid;
|
||||
this.settings = settings;
|
||||
this.itemStack = itemStack;
|
||||
@ -22,7 +22,7 @@ public class ScriptItem {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public @NotNull ItemSettings getSettings() {
|
||||
public @NotNull ScriptConfiguration getSettings() {
|
||||
return settings;
|
||||
}
|
||||
|
||||
|
@ -11,16 +11,16 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ItemRestrictions {
|
||||
public class ScriptRestrictions {
|
||||
|
||||
long startTime;
|
||||
long endTime;
|
||||
|
||||
public ItemRestrictions() {
|
||||
public ScriptRestrictions() {
|
||||
this(-1, -1);
|
||||
}
|
||||
|
||||
public ItemRestrictions(long startTime, long endTime) {
|
||||
public ScriptRestrictions(long startTime, long endTime) {
|
||||
this.startTime = startTime;
|
||||
this.endTime = endTime;
|
||||
}
|
||||
@ -64,10 +64,10 @@ public class ItemRestrictions {
|
||||
);
|
||||
|
||||
Supplier<@Nullable EasyMessageList> message;
|
||||
Function<@NotNull ItemRestrictions, Object[]> params;
|
||||
Function<@NotNull ScriptRestrictions, Object[]> params;
|
||||
|
||||
CheckResult(@NotNull Supplier<@Nullable EasyMessageList> message,
|
||||
@NotNull Function<@NotNull ItemRestrictions, @Nullable Object[]> params) {
|
||||
@NotNull Function<@NotNull ScriptRestrictions, @Nullable Object[]> params) {
|
||||
this.message = message;
|
||||
this.params = params;
|
||||
}
|
||||
@ -76,7 +76,7 @@ public class ItemRestrictions {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void send(Player player, ItemRestrictions restrictions) {
|
||||
public void send(Player player, ScriptRestrictions restrictions) {
|
||||
Object[] params = this.params.apply(restrictions);
|
||||
if (params == null) {
|
||||
getMessage().get().send(player);
|
||||
@ -87,9 +87,9 @@ public class ItemRestrictions {
|
||||
|
||||
}
|
||||
|
||||
public static @NotNull ItemRestrictions read(@Nullable ConfigurationSection section) {
|
||||
if (section == null) return new ItemRestrictions();
|
||||
return new ItemRestrictions(
|
||||
public static @NotNull ScriptRestrictions read(@Nullable ConfigurationSection section) {
|
||||
if (section == null) return new ScriptRestrictions();
|
||||
return new ScriptRestrictions(
|
||||
TimeDateUtils.parseTimeMillis(section.getString("time.start")),
|
||||
TimeDateUtils.parseTimeMillis(section.getString("time.end"))
|
||||
);
|
@ -4,9 +4,9 @@ import cc.carm.plugin.scriptitems.ScriptItemsAPI;
|
||||
import cc.carm.plugin.scriptitems.configuration.PluginConfig;
|
||||
import cc.carm.plugin.scriptitems.configuration.PluginMessages;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptItem;
|
||||
import cc.carm.plugin.scriptitems.item.ItemActionGroup;
|
||||
import cc.carm.plugin.scriptitems.item.ItemRestrictions;
|
||||
import cc.carm.plugin.scriptitems.item.ItemSettings;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptActionGroup;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptRestrictions;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptConfiguration;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -49,17 +49,17 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
updateTime(player.getUniqueId());
|
||||
|
||||
ItemSettings settings = scriptItem.getSettings();
|
||||
ScriptConfiguration settings = scriptItem.getSettings();
|
||||
|
||||
// 检查物品的相关使用限制是否满足要求
|
||||
ItemRestrictions.CheckResult result = settings.getRestrictions().check();
|
||||
if (result != ItemRestrictions.CheckResult.AVAILABLE) {
|
||||
ScriptRestrictions.CheckResult result = settings.getRestrictions().check();
|
||||
if (result != ScriptRestrictions.CheckResult.AVAILABLE) {
|
||||
result.send(player, settings.getRestrictions()); // 发送提示
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取玩家的对应操作组
|
||||
ItemActionGroup actions = settings.getPlayerActions(player);
|
||||
ScriptActionGroup actions = settings.getPlayerActions(player);
|
||||
if (actions == null) return;
|
||||
|
||||
actions.execute(player);
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cc.carm.plugin.scriptitems.manager;
|
||||
|
||||
import cc.carm.plugin.scriptitems.Main;
|
||||
import cc.carm.plugin.scriptitems.item.ItemSettings;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptConfiguration;
|
||||
import cc.carm.plugin.scriptitems.item.ScriptItem;
|
||||
import cc.carm.plugin.scriptitems.util.JarResourceUtils;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@ -23,7 +23,7 @@ public class ItemsManager {
|
||||
|
||||
private static final String FOLDER_NAME = "items";
|
||||
|
||||
public HashMap<String, ItemSettings> items = new HashMap<>();
|
||||
public HashMap<String, ScriptConfiguration> items = new HashMap<>();
|
||||
|
||||
protected NamespacedKey idKey;
|
||||
protected NamespacedKey uuidKey;
|
||||
@ -60,18 +60,18 @@ public class ItemsManager {
|
||||
.filter(File::isFile)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
HashMap<String, ItemSettings> dataItems = new HashMap<>();
|
||||
HashMap<String, ScriptConfiguration> dataItems = new HashMap<>();
|
||||
|
||||
if (files.size() > 0) {
|
||||
for (File file : files) {
|
||||
String fileName = file.getName();
|
||||
if (fileName.startsWith(".")) continue;
|
||||
try {
|
||||
ItemSettings item = ItemSettings.load(file);
|
||||
Main.info(" 完成物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")");
|
||||
ScriptConfiguration item = ScriptConfiguration.load(file);
|
||||
Main.info(" 完成脚本物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")");
|
||||
dataItems.put(item.getIdentifier(), item);
|
||||
} catch (Exception ex) {
|
||||
Main.severe("在加载物品 " + file.getAbsolutePath() + " 时出错,请检查配置!");
|
||||
Main.severe("在加载脚本物品 " + file.getAbsolutePath() + " 时出错,请检查配置!");
|
||||
Main.severe("Error occurred when loading item #" + file.getAbsolutePath() + " !");
|
||||
ex.printStackTrace();
|
||||
}
|
||||
@ -86,11 +86,11 @@ public class ItemsManager {
|
||||
}
|
||||
|
||||
@Unmodifiable
|
||||
public Map<String, ItemSettings> listItemSettings() {
|
||||
public Map<String, ScriptConfiguration> listItemSettings() {
|
||||
return ImmutableMap.copyOf(items);
|
||||
}
|
||||
|
||||
public @Nullable ItemSettings getItemSettings(@NotNull String identifier) {
|
||||
public @Nullable ScriptConfiguration getItemSettings(@NotNull String identifier) {
|
||||
return items.get(identifier);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ public class ItemsManager {
|
||||
String settingsID = container.getCustomTag(this.idKey, ItemTagType.STRING);
|
||||
String itemUUID = container.getCustomTag(this.uuidKey, ItemTagType.STRING);
|
||||
if (settingsID == null || itemUUID == null) return null;
|
||||
ItemSettings settings = getItemSettings(settingsID);
|
||||
ScriptConfiguration settings = getItemSettings(settingsID);
|
||||
if (settings == null) return null;
|
||||
return new ScriptItem(UUID.fromString(itemUUID), settings, item);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user