1
mirror of https://github.com/CarmJos/ScriptItems synced 2024-09-19 21:35:50 +00:00

修改类名

This commit is contained in:
Carm Jos 2022-03-13 18:29:17 +08:00
parent 8dcef9431c
commit e19e6b0627
11 changed files with 88 additions and 108 deletions

View File

@ -2,7 +2,7 @@ package cc.carm.plugin.scriptitems.command;
import cc.carm.plugin.scriptitems.ScriptItemsAPI; import cc.carm.plugin.scriptitems.ScriptItemsAPI;
import cc.carm.plugin.scriptitems.configuration.PluginMessages; 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.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -50,7 +50,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter {
return true; return true;
} }
ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]); ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[1]);
if (settings == null) { if (settings == null) {
PluginMessages.NOT_EXISTS.send(sender, args[1]); PluginMessages.NOT_EXISTS.send(sender, args[1]);
return true; return true;
@ -81,7 +81,7 @@ public class ScriptItemsCommand implements CommandExecutor, TabCompleter {
return true; return true;
} }
ItemSettings settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]); ScriptConfiguration settings = ScriptItemsAPI.getItemsManager().getItemSettings(args[2]);
if (settings == null) { if (settings == null) {
PluginMessages.NOT_EXISTS.send(sender, args[2]); PluginMessages.NOT_EXISTS.send(sender, args[2]);
return true; return true;

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -4,17 +4,17 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
public class ItemAction { public class ScriptAction {
@NotNull ItemActionType type; @NotNull ScriptActionType type;
@Nullable String actionContent; @Nullable String actionContent;
public ItemAction(@NotNull ItemActionType type, @Nullable String actionContent) { public ScriptAction(@NotNull ScriptActionType type, @Nullable String actionContent) {
this.type = type; this.type = type;
this.actionContent = actionContent; this.actionContent = actionContent;
} }
public @NotNull ItemActionType getType() { public @NotNull ScriptActionType getType() {
return type; return type;
} }
@ -26,17 +26,17 @@ public class ItemAction {
return getType().execute(player, getActionContent()); 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; if (actionString == null) return null;
int prefixStart = actionString.indexOf("["); int prefixStart = actionString.indexOf("[");
int prefixEnd = actionString.indexOf("]"); int prefixEnd = actionString.indexOf("]");
if (prefixStart < 0 || prefixEnd < 0) return null; if (prefixStart < 0 || prefixEnd < 0) return null;
String prefix = actionString.substring(prefixStart + 1, prefixEnd); String prefix = actionString.substring(prefixStart + 1, prefixEnd);
ItemActionType actionType = ItemActionType.read(prefix); ScriptActionType actionType = ScriptActionType.read(prefix);
if (actionType == null) return null; if (actionType == null) return null;
return new ItemAction(actionType, actionString.substring(prefixEnd + 1).trim()); return new ScriptAction(actionType, actionString.substring(prefixEnd + 1).trim());
} }

View File

@ -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);
}
}

View File

@ -13,7 +13,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.function.BiFunction; 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; 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; this.executor = executor;
} }
@ -112,8 +112,8 @@ public enum ItemActionType {
return getExecutor().apply(player, content); return getExecutor().apply(player, content);
} }
public static ItemActionType read(String string) { public static ScriptActionType read(String string) {
return Arrays.stream(ItemActionType.values()) return Arrays.stream(ScriptActionType.values())
.filter(action -> action.name().equalsIgnoreCase(string)) .filter(action -> action.name().equalsIgnoreCase(string))
.findFirst().orElse(null); .findFirst().orElse(null);
} }

View File

@ -13,21 +13,21 @@ import java.io.File;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
public class ItemSettings { public class ScriptConfiguration {
protected final @NotNull String identifier; protected final @NotNull String identifier;
@Nullable String name; @Nullable String name;
@Nullable ItemStackConfig item; @Nullable ItemStackConfig item;
@NotNull ItemRestrictions restrictions; @NotNull ScriptRestrictions restrictions;
@NotNull Map<String, String> permissions; @NotNull Map<String, String> permissions;
@NotNull Map<String, ItemActionGroup> actions; @NotNull Map<String, ScriptActionGroup> actions;
public ItemSettings(@NotNull String identifier, @Nullable String name, public ScriptConfiguration(@NotNull String identifier, @Nullable String name,
@Nullable ItemStackConfig item, @NotNull ItemRestrictions restrictions, @Nullable ItemStackConfig item, @NotNull ScriptRestrictions restrictions,
@NotNull Map<String, String> permissions, @NotNull Map<String, String> permissions,
@NotNull Map<String, ItemActionGroup> actions) { @NotNull Map<String, ScriptActionGroup> actions) {
this.identifier = identifier; this.identifier = identifier;
this.name = name; this.name = name;
this.item = item; this.item = item;
@ -64,23 +64,23 @@ public class ItemSettings {
} }
public @NotNull ItemRestrictions getRestrictions() { public @NotNull ScriptRestrictions getRestrictions() {
return restrictions; return restrictions;
} }
public ItemRestrictions.CheckResult checkRestrictions() { public ScriptRestrictions.CheckResult checkRestrictions() {
return getRestrictions().check(); return getRestrictions().check();
} }
public @NotNull Map<String, ItemActionGroup> getActions() { public @NotNull Map<String, ScriptActionGroup> getActions() {
return this.actions; return this.actions;
} }
public @Nullable ItemActionGroup getDefaultActions() { public @Nullable ScriptActionGroup getDefaultActions() {
return getActions().get("default"); return getActions().get("default");
} }
public @Nullable ItemActionGroup getPlayerActions(@NotNull Player player) { public @Nullable ScriptActionGroup getPlayerActions(@NotNull Player player) {
@NotNull String actionGroup = getPermissions().entrySet().stream() @NotNull String actionGroup = getPermissions().entrySet().stream()
.filter(entry -> player.hasPermission(entry.getValue())) .filter(entry -> player.hasPermission(entry.getValue()))
.map(Map.Entry::getKey).findFirst().orElse("default"); .map(Map.Entry::getKey).findFirst().orElse("default");
@ -92,21 +92,21 @@ public class ItemSettings {
return ScriptItemsAPI.getItemsManager().applyTag(originalItem, identifier, UUID.randomUUID()); 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)); 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"); String identifier = config.getString("identifier");
if (identifier == null) throw new Exception("identifier not provided."); if (identifier == null) throw new Exception("identifier not provided.");
return new ItemSettings( return new ScriptConfiguration(
identifier, config.getString("name"), identifier, config.getString("name"),
config.isItemStack("item") ? config.isItemStack("item") ?
ItemStackConfig.create(config.getItemStack("item")) : ItemStackConfig.create(config.getItemStack("item")) :
ItemStackConfig.read(config.getConfigurationSection("item")), ItemStackConfig.read(config.getConfigurationSection("item")),
ItemRestrictions.read(config.getConfigurationSection("restrictions")), ScriptRestrictions.read(config.getConfigurationSection("restrictions")),
ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)), ConfigManager.readStringMap(config.getConfigurationSection("permissions"), (s -> s)),
ConfigManager.readListMap(config.getConfigurationSection("actions"), ItemActionGroup::read) ConfigManager.readListMap(config.getConfigurationSection("actions"), ScriptActionGroup::read)
); );
} }
} }

View File

@ -9,10 +9,10 @@ public class ScriptItem {
@NotNull UUID uuid; @NotNull UUID uuid;
@NotNull ItemSettings settings; @NotNull ScriptConfiguration settings;
@NotNull ItemStack itemStack; @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.uuid = uuid;
this.settings = settings; this.settings = settings;
this.itemStack = itemStack; this.itemStack = itemStack;
@ -22,7 +22,7 @@ public class ScriptItem {
return uuid; return uuid;
} }
public @NotNull ItemSettings getSettings() { public @NotNull ScriptConfiguration getSettings() {
return settings; return settings;
} }

View File

@ -11,16 +11,16 @@ import org.jetbrains.annotations.Nullable;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
public class ItemRestrictions { public class ScriptRestrictions {
long startTime; long startTime;
long endTime; long endTime;
public ItemRestrictions() { public ScriptRestrictions() {
this(-1, -1); this(-1, -1);
} }
public ItemRestrictions(long startTime, long endTime) { public ScriptRestrictions(long startTime, long endTime) {
this.startTime = startTime; this.startTime = startTime;
this.endTime = endTime; this.endTime = endTime;
} }
@ -64,10 +64,10 @@ public class ItemRestrictions {
); );
Supplier<@Nullable EasyMessageList> message; Supplier<@Nullable EasyMessageList> message;
Function<@NotNull ItemRestrictions, Object[]> params; Function<@NotNull ScriptRestrictions, Object[]> params;
CheckResult(@NotNull Supplier<@Nullable EasyMessageList> message, CheckResult(@NotNull Supplier<@Nullable EasyMessageList> message,
@NotNull Function<@NotNull ItemRestrictions, @Nullable Object[]> params) { @NotNull Function<@NotNull ScriptRestrictions, @Nullable Object[]> params) {
this.message = message; this.message = message;
this.params = params; this.params = params;
} }
@ -76,7 +76,7 @@ public class ItemRestrictions {
return message; return message;
} }
public void send(Player player, ItemRestrictions restrictions) { public void send(Player player, ScriptRestrictions restrictions) {
Object[] params = this.params.apply(restrictions); Object[] params = this.params.apply(restrictions);
if (params == null) { if (params == null) {
getMessage().get().send(player); getMessage().get().send(player);
@ -87,9 +87,9 @@ public class ItemRestrictions {
} }
public static @NotNull ItemRestrictions read(@Nullable ConfigurationSection section) { public static @NotNull ScriptRestrictions read(@Nullable ConfigurationSection section) {
if (section == null) return new ItemRestrictions(); if (section == null) return new ScriptRestrictions();
return new ItemRestrictions( return new ScriptRestrictions(
TimeDateUtils.parseTimeMillis(section.getString("time.start")), TimeDateUtils.parseTimeMillis(section.getString("time.start")),
TimeDateUtils.parseTimeMillis(section.getString("time.end")) TimeDateUtils.parseTimeMillis(section.getString("time.end"))
); );

View File

@ -4,9 +4,9 @@ import cc.carm.plugin.scriptitems.ScriptItemsAPI;
import cc.carm.plugin.scriptitems.configuration.PluginConfig; import cc.carm.plugin.scriptitems.configuration.PluginConfig;
import cc.carm.plugin.scriptitems.configuration.PluginMessages; import cc.carm.plugin.scriptitems.configuration.PluginMessages;
import cc.carm.plugin.scriptitems.item.ScriptItem; import cc.carm.plugin.scriptitems.item.ScriptItem;
import cc.carm.plugin.scriptitems.item.ItemActionGroup; import cc.carm.plugin.scriptitems.item.ScriptActionGroup;
import cc.carm.plugin.scriptitems.item.ItemRestrictions; import cc.carm.plugin.scriptitems.item.ScriptRestrictions;
import cc.carm.plugin.scriptitems.item.ItemSettings; import cc.carm.plugin.scriptitems.item.ScriptConfiguration;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Item; import org.bukkit.entity.Item;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -49,17 +49,17 @@ public class ItemListener implements Listener {
} }
updateTime(player.getUniqueId()); updateTime(player.getUniqueId());
ItemSettings settings = scriptItem.getSettings(); ScriptConfiguration settings = scriptItem.getSettings();
// 检查物品的相关使用限制是否满足要求 // 检查物品的相关使用限制是否满足要求
ItemRestrictions.CheckResult result = settings.getRestrictions().check(); ScriptRestrictions.CheckResult result = settings.getRestrictions().check();
if (result != ItemRestrictions.CheckResult.AVAILABLE) { if (result != ScriptRestrictions.CheckResult.AVAILABLE) {
result.send(player, settings.getRestrictions()); // 发送提示 result.send(player, settings.getRestrictions()); // 发送提示
return; return;
} }
// 获取玩家的对应操作组 // 获取玩家的对应操作组
ItemActionGroup actions = settings.getPlayerActions(player); ScriptActionGroup actions = settings.getPlayerActions(player);
if (actions == null) return; if (actions == null) return;
actions.execute(player); actions.execute(player);

View File

@ -1,7 +1,7 @@
package cc.carm.plugin.scriptitems.manager; package cc.carm.plugin.scriptitems.manager;
import cc.carm.plugin.scriptitems.Main; 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.item.ScriptItem;
import cc.carm.plugin.scriptitems.util.JarResourceUtils; import cc.carm.plugin.scriptitems.util.JarResourceUtils;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
@ -23,7 +23,7 @@ public class ItemsManager {
private static final String FOLDER_NAME = "items"; 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 idKey;
protected NamespacedKey uuidKey; protected NamespacedKey uuidKey;
@ -60,18 +60,18 @@ public class ItemsManager {
.filter(File::isFile) .filter(File::isFile)
.collect(Collectors.toList()); .collect(Collectors.toList());
HashMap<String, ItemSettings> dataItems = new HashMap<>(); HashMap<String, ScriptConfiguration> dataItems = new HashMap<>();
if (files.size() > 0) { if (files.size() > 0) {
for (File file : files) { for (File file : files) {
String fileName = file.getName(); String fileName = file.getName();
if (fileName.startsWith(".")) continue; if (fileName.startsWith(".")) continue;
try { try {
ItemSettings item = ItemSettings.load(file); ScriptConfiguration item = ScriptConfiguration.load(file);
Main.info(" 完成物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")"); Main.info(" 完成脚本物品加载 [#" + item.getIdentifier() + "] " + item.getName() + " (" + fileName + ")");
dataItems.put(item.getIdentifier(), item); dataItems.put(item.getIdentifier(), item);
} catch (Exception ex) { } catch (Exception ex) {
Main.severe("在加载物品 " + file.getAbsolutePath() + " 时出错,请检查配置!"); Main.severe("在加载脚本物品 " + file.getAbsolutePath() + " 时出错,请检查配置!");
Main.severe("Error occurred when loading item #" + file.getAbsolutePath() + " !"); Main.severe("Error occurred when loading item #" + file.getAbsolutePath() + " !");
ex.printStackTrace(); ex.printStackTrace();
} }
@ -86,11 +86,11 @@ public class ItemsManager {
} }
@Unmodifiable @Unmodifiable
public Map<String, ItemSettings> listItemSettings() { public Map<String, ScriptConfiguration> listItemSettings() {
return ImmutableMap.copyOf(items); return ImmutableMap.copyOf(items);
} }
public @Nullable ItemSettings getItemSettings(@NotNull String identifier) { public @Nullable ScriptConfiguration getItemSettings(@NotNull String identifier) {
return items.get(identifier); return items.get(identifier);
} }
@ -114,7 +114,7 @@ public class ItemsManager {
String settingsID = container.getCustomTag(this.idKey, ItemTagType.STRING); String settingsID = container.getCustomTag(this.idKey, ItemTagType.STRING);
String itemUUID = container.getCustomTag(this.uuidKey, ItemTagType.STRING); String itemUUID = container.getCustomTag(this.uuidKey, ItemTagType.STRING);
if (settingsID == null || itemUUID == null) return null; if (settingsID == null || itemUUID == null) return null;
ItemSettings settings = getItemSettings(settingsID); ScriptConfiguration settings = getItemSettings(settingsID);
if (settings == null) return null; if (settings == null) return null;
return new ScriptItem(UUID.fromString(itemUUID), settings, item); return new ScriptItem(UUID.fromString(itemUUID), settings, item);
} }