This commit is contained in:
Izzel_Aliz
2018-05-09 13:11:59 +08:00
129 changed files with 7406 additions and 4399 deletions

View File

@@ -1,8 +1,8 @@
package me.skymc.tlm;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.fileutils.ConfigUtils;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.string.language2.Language2;
import me.skymc.tlm.module.TabooLibraryModule;
import me.skymc.tlm.module.sub.ModuleCommandChanger;
@@ -46,9 +46,8 @@ public class TLM {
// 载入模块
TabooLibraryModule.getInst().loadModules();
// 提示
MsgUtils.send("载入 &f" + TabooLibraryModule.getInst().getSize() + " &7个 &fTLM &7模块");
TLocale.Logger.info("TABOOLIB-MODULE.SUCCESS-LOADED", String.valueOf(TabooLibraryModule.getInst().getSize()));
}
/**
@@ -80,12 +79,7 @@ public class TLM {
*/
public void reloadConfig() {
config = ConfigUtils.saveDefaultConfig(Main.getInst(), "module.yml");
// 载入语言文件
try {
language = new Language2(config.getString("Language"), Main.getInst());
} catch (Exception e) {
MsgUtils.warn("语言文件不存在: &4" + config.getString("Language"));
}
language = new Language2(config.getString("Language"), Main.getInst());
}
/**
@@ -97,4 +91,12 @@ public class TLM {
public boolean isEnableModule(String name) {
return config.getStringList("EnableModule").contains(name);
}
public void loadedFall(String moduleName, String result, String location) {
TLocale.Logger.error("TABOOLIB-MODULE.FALL-LOADED", moduleName, result, location);
}
public void runtimeFall(String moduleName, String result, String location) {
TLocale.Logger.error("TABOOLIB-MODULE.FALL-RUNTIME", moduleName, result, location);
}
}

View File

@@ -17,7 +17,7 @@ public class TLMCommands implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command arg1, String arg2, String[] args) {
if (args.length == 0 || args[0].equalsIgnoreCase("help")) {
if (args.length == 0 || "help".equalsIgnoreCase(args[0])) {
if (sender.hasPermission("taboolib.admin")) {
TLM.getInst().getLanguage().get("COMMAND-HELP").send(sender);
} else {
@@ -26,7 +26,7 @@ public class TLMCommands implements CommandExecutor {
}
// 重载
else if (args[0].equalsIgnoreCase("reload")) {
else if ("reload".equalsIgnoreCase(args[0])) {
if (sender.hasPermission("taboolib.admin")) {
new TLMReloadCommand(sender, args);
} else {
@@ -35,7 +35,7 @@ public class TLMCommands implements CommandExecutor {
}
// 列出
else if (args[0].equalsIgnoreCase("list")) {
else if ("list".equalsIgnoreCase(args[0])) {
if (sender.hasPermission("taboolib.admin")) {
new TLMListCommand(sender, args);
} else {
@@ -44,7 +44,7 @@ public class TLMCommands implements CommandExecutor {
}
// InventorySave 模块
else if (args[0].equalsIgnoreCase("inv")) {
else if ("inv".equalsIgnoreCase(args[0])) {
if (sender.hasPermission("taboolib.admin")) {
new TLMInvCommand(sender, args);
} else {
@@ -53,7 +53,7 @@ public class TLMCommands implements CommandExecutor {
}
// Kit 模块
else if (args[0].equalsIgnoreCase("kit")) {
else if ("kit".equalsIgnoreCase(args[0])) {
new TLMKitCommand(sender, args);
} else {
TLM.getInst().getLanguage().get("COMMAND-ERROR").send(sender);

View File

@@ -43,12 +43,12 @@ public class TLMInvCommand extends SubCommand {
}
// 列出背包
else if (args[1].equalsIgnoreCase("list")) {
else if ("list".equalsIgnoreCase(args[1])) {
TLM.getInst().getLanguage().get("INV-LIST").addPlaceholder("$name", moduleInventorySave.getInventorys().toString()).send(sender);
}
// 查看背包
else if (args[1].equalsIgnoreCase("info")) {
else if ("info".equalsIgnoreCase(args[1])) {
// 如果是后台
if (!(sender instanceof Player)) {
TLM.getInst().getLanguage().get("INV-CONSOLE").send(sender);
@@ -108,7 +108,7 @@ public class TLMInvCommand extends SubCommand {
}
// 保存背包
else if (args[1].equalsIgnoreCase("save")) {
else if ("save".equalsIgnoreCase(args[1])) {
// 如果是后台
if (!(sender instanceof Player)) {
TLM.getInst().getLanguage().get("INV-CONSOLE").send(sender);
@@ -132,7 +132,7 @@ public class TLMInvCommand extends SubCommand {
}
// 覆盖背包
else if (args[1].equalsIgnoreCase("paste")) {
else if ("paste".equalsIgnoreCase(args[1])) {
// 判断长度
if (args.length < 3) {
TLM.getInst().getLanguage().get("INV-NAME").send(sender);
@@ -175,7 +175,7 @@ public class TLMInvCommand extends SubCommand {
}
// 删除背包
else if (args[1].equalsIgnoreCase("delete")) {
else if ("delete".equalsIgnoreCase(args[1])) {
// 判断长度
if (args.length < 3) {
TLM.getInst().getLanguage().get("INV-NAME").send(sender);

View File

@@ -38,7 +38,7 @@ public class TLMKitCommand extends SubCommand {
TLM.getInst().getLanguage().get("KIT-EMPTY").send(sender);
}
else if (args[1].equalsIgnoreCase("list")) {
else if ("list".equalsIgnoreCase(args[1])) {
// 判断权限
if (!sender.hasPermission("taboolib.kit.list")) {
TLM.getInst().getLanguage().get("NOPERMISSION-KIT-LIST").send(sender);
@@ -50,7 +50,7 @@ public class TLMKitCommand extends SubCommand {
}
}
else if (args[1].equalsIgnoreCase("reward")) {
else if ("reward".equalsIgnoreCase(args[1])) {
// 判断权限
if (!sender.hasPermission("taboolib.kit.reward")) {
TLM.getInst().getLanguage().get("NOPERMISSION-KIT-REWARD").send(sender);
@@ -130,7 +130,7 @@ public class TLMKitCommand extends SubCommand {
// 提示信息
TLM.getInst().getLanguage().get("KIT-SUCCESS").addPlaceholder("$kit", args[2]).send(sender);
}
else if (args[1].equalsIgnoreCase("reset")) {
else if ("reset".equalsIgnoreCase(args[1])) {
// 判断权限
if (!sender.hasPermission("taboolib.kit.reset")) {
TLM.getInst().getLanguage().get("NOPERMISSION-KIT-RESET").send(sender);

View File

@@ -24,12 +24,12 @@ public class TLMReloadCommand extends SubCommand {
MsgUtils.send(sender, "&4参数错误。");
}
else if (args[1].equalsIgnoreCase("tlm")) {
else if ("tlm".equalsIgnoreCase(args[1])) {
TLM.getInst().reloadConfig();
MsgUtils.send(sender, "&fTLM &7配置文件已重载。");
}
else if (args[1].equalsIgnoreCase("all")) {
else if ("all".equalsIgnoreCase(args[1])) {
TabooLibraryModule.getInst().reloadConfig();
MsgUtils.send(sender, "所有模块配置文件已重载。");
}

View File

@@ -27,7 +27,7 @@ public class ModuleCommandChanger implements ITabooLibraryModule, Listener {
// 判断命令
if (e.getMessage().startsWith(key)) {
// 判断执行方式
if (!getConfig().contains("Commands." + id + ".ReplaceMode") || getConfig().getString("Commands." + id + ".ReplaceMode").equals("PLAYER")) {
if (!getConfig().contains("Commands." + id + ".ReplaceMode") || "PLAYER".equals(getConfig().getString("Commands." + id + ".ReplaceMode"))) {
// 替换命令
e.setMessage(e.getMessage().replace(key, getConfig().getString("Commands." + id + ".Replace")));
return;
@@ -45,7 +45,7 @@ public class ModuleCommandChanger implements ITabooLibraryModule, Listener {
// 判断命令
if (e.getCommand().startsWith(key)) {
// 判断执行方式
if (!getConfig().contains("Commands." + id + ".ReplaceMode") || getConfig().getString("Commands." + id + ".ReplaceMode").equals("CONSOLE")) {
if (!getConfig().contains("Commands." + id + ".ReplaceMode") || "CONSOLE".equals(getConfig().getString("Commands." + id + ".ReplaceMode"))) {
// 替换命令
e.setCommand(e.getCommand().replace(key, getConfig().getString("Commands." + id + ".Replace")));
return;

View File

@@ -1,10 +1,13 @@
package me.skymc.tlm.module.sub;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.TabooLib;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.playerdata.DataUtils;
import me.skymc.tlm.TLM;
import me.skymc.tlm.annotation.DisableConfig;
import me.skymc.tlm.inventory.TLMInventoryHolder;
import me.skymc.tlm.module.ITabooLibraryModule;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
@@ -13,14 +16,10 @@ import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.TabooLib;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.playerdata.DataUtils;
import me.skymc.tlm.annotation.DisableConfig;
import me.skymc.tlm.inventory.TLMInventoryHolder;
import me.skymc.tlm.module.ITabooLibraryModule;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
/**
* @author sky
@@ -28,158 +27,148 @@ import me.skymc.tlm.module.ITabooLibraryModule;
*/
@DisableConfig
public class ModuleInventorySave implements ITabooLibraryModule, Listener {
private FileConfiguration conf;
@Override
public String getName() {
return "InventorySave";
}
@Override
public void onEnable() {
reloadConfig();
}
@Override
public void onReload() {
reloadConfig();
}
public void reloadConfig() {
conf = DataUtils.addPluginData("InventorySave", Main.getInst());
}
/**
* 保存玩家背包
*
* @param player 玩家
* @param name 名称
*/
public void saveInventory(Player player, String name) {
// 设置物品
for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) {
ItemStack item = player.getInventory().getItem(i);
conf.set(name + "." + i, item == null ? new ItemStack(Material.AIR) : item.clone());
}
}
/**
* 覆盖玩家背包
*
* @param player 玩家
* @param name 名称
*/
public void pasteInventory(Player player, String name) {
pasteInventory(player, name, "null");
}
/**
* 覆盖玩家背包
*
* @param player 玩家
* @param name 名称
* @param module 模式
*/
public void pasteInventory(Player player, String name, String module) {
// 如果背包不存在
if (!conf.contains(name)) {
MsgUtils.warn("模块执行异常: &4背包不存在");
MsgUtils.warn("模块: &4InventorySave");
MsgUtils.warn("位于: &4" + name);
return;
}
// 异常物品
List<ItemStack> otherItem = new ArrayList<>();
// 设置物品
for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) {
try {
ItemStack item = (ItemStack) conf.get(name + "." + i);
// 如果原本有物品
if (!ItemUtils.isNull(player.getInventory().getItem(i))) {
// 跳过
if (module.equalsIgnoreCase("-b")) {
continue;
}
// 给予
else if (module.equalsIgnoreCase("-a")) {
otherItem.add(item);
continue;
}
}
// 覆盖
player.getInventory().setItem(i, item);
}
catch (Exception e) {
MsgUtils.warn("模块执行异常: &4物品覆盖出错");
MsgUtils.warn("模块: &4InventorySave");
MsgUtils.warn("位于: &4" + name + ":" + i);
}
}
// 循环异常物品
for (ItemStack item : otherItem) {
player.getInventory().addItem(item);
}
}
/**
* 获取背包内所有物品
*
* @param name 背包名称
* @return {@link List}
*/
public List<ItemStack> getItems(String name) {
// 如果背包不存在
if (!conf.contains(name)) {
MsgUtils.warn("模块执行异常: &4背包不存在");
MsgUtils.warn("模块: &4InventorySave");
MsgUtils.warn("位于: &4" + name);
return new LinkedList<>();
}
List<ItemStack> items = new LinkedList<>();
// 设置物品
for (int i = 0 ; i < (TabooLib.getVerint() > 10800 ? 41 : 40) ; i++) {
try {
ItemStack item = (ItemStack) conf.get(name + "." + i);
items.add(item);
}
catch (Exception e) {
MsgUtils.warn("模块执行异常: &4物品获取出错");
MsgUtils.warn("模块: &4InventorySave");
MsgUtils.warn("位于: &4" + name + ":" + i);
}
}
return items;
}
/**
* 获取所有背包
*
* @return {@link Set}
*/
public Set<String> getInventorys() {
return conf.getConfigurationSection("").getKeys(false);
}
/**
* 删除背包
*
* @param name 名称
*/
public void deleteInventory(String name) {
conf.set(name, null);
}
@EventHandler
public void onClick(InventoryClickEvent e) {
if (!(e.getInventory().getHolder() instanceof TLMInventoryHolder)) {
return;
}
TLMInventoryHolder holder = (TLMInventoryHolder) e.getInventory().getHolder();
if (holder.getModule().equals(getName())) {
e.setCancelled(true);
}
}
private FileConfiguration conf;
@Override
public String getName() {
return "InventorySave";
}
@Override
public void onEnable() {
reloadConfig();
}
@Override
public void onReload() {
reloadConfig();
}
public void reloadConfig() {
conf = DataUtils.addPluginData("InventorySave", Main.getInst());
}
/**
* 保存玩家背包
*
* @param player 玩家
* @param name 名称
*/
public void saveInventory(Player player, String name) {
// 设置物品
for (int i = 0; i < (TabooLib.getVerint() > 10800 ? 41 : 40); i++) {
ItemStack item = player.getInventory().getItem(i);
conf.set(name + "." + i, item == null ? new ItemStack(Material.AIR) : item.clone());
}
}
/**
* 覆盖玩家背包
*
* @param player 玩家
* @param name 名称
*/
public void pasteInventory(Player player, String name) {
pasteInventory(player, name, "null");
}
/**
* 覆盖玩家背包
*
* @param player 玩家
* @param name 名称
* @param module 模式
*/
public void pasteInventory(Player player, String name, String module) {
// 如果背包不存在
if (!conf.contains(name)) {
TLM.getInst().runtimeFall("InventorySave", "InventoryNotFound", name);
return;
}
// 异常物品
List<ItemStack> otherItem = new ArrayList<>();
// 设置物品
for (int i = 0; i < (TabooLib.getVerint() > 10800 ? 41 : 40); i++) {
try {
ItemStack item = (ItemStack) conf.get(name + "." + i);
// 如果原本有物品
if (!ItemUtils.isNull(player.getInventory().getItem(i))) {
// 跳过
if ("-b".equalsIgnoreCase(module)) {
continue;
}
// 给予
else if ("-a".equalsIgnoreCase(module)) {
otherItem.add(item);
continue;
}
}
// 覆盖
player.getInventory().setItem(i, item);
} catch (Exception e) {
TLM.getInst().runtimeFall("InventorySave", "InventoryCoverFall", name);
}
}
// 循环异常物品
for (ItemStack item : otherItem) {
player.getInventory().addItem(item);
}
}
/**
* 获取背包内所有物品
*
* @param name 背包名称
* @return {@link List}
*/
public List<ItemStack> getItems(String name) {
// 如果背包不存在
if (!conf.contains(name)) {
TLM.getInst().runtimeFall("InventorySave", "InventoryNotFound", name);
return new LinkedList<>();
}
List<ItemStack> items = new LinkedList<>();
// 设置物品
for (int i = 0; i < (TabooLib.getVerint() > 10800 ? 41 : 40); i++) {
try {
ItemStack item = (ItemStack) conf.get(name + "." + i);
items.add(item);
} catch (Exception e) {
TLM.getInst().runtimeFall("InventorySave", "ItemStackLoadFall", name);
}
}
return items;
}
/**
* 获取所有背包
*
* @return {@link Set}
*/
public Set<String> getInventorys() {
return conf.getConfigurationSection("").getKeys(false);
}
/**
* 删除背包
*
* @param name 名称
*/
public void deleteInventory(String name) {
conf.set(name, null);
}
@EventHandler
public void onClick(InventoryClickEvent e) {
if (!(e.getInventory().getHolder() instanceof TLMInventoryHolder)) {
return;
}
TLMInventoryHolder holder = (TLMInventoryHolder) e.getInventory().getHolder();
if (holder.getModule().equals(getName())) {
e.setCancelled(true);
}
}
}

View File

@@ -1,169 +1,166 @@
package me.skymc.tlm.module.sub;
import java.util.ArrayList;
import java.util.List;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.other.DateUtils;
import me.skymc.taboolib.other.NumberUtils;
import me.skymc.taboolib.playerdata.DataUtils;
import me.skymc.tlm.TLM;
import me.skymc.tlm.module.ITabooLibraryModule;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import me.skymc.taboolib.inventory.ItemUtils;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.other.DateUtils;
import me.skymc.taboolib.other.NumberUtils;
import me.skymc.taboolib.playerdata.DataUtils;
import me.skymc.tlm.module.ITabooLibraryModule;
import java.util.ArrayList;
import java.util.List;
/**
* @author sky
* @since 2018年2月18日 下午12:13:55
*/
public class ModuleKits implements ITabooLibraryModule {
private FileConfiguration data;
@Override
public String getName() {
return "Kits";
}
@Override
public void onEnable() {
data = DataUtils.addPluginData("ModuleKits", null);
}
/**
* 设置玩家是否领取礼包
*
* @param player 玩家
*/
public void setPlayerReward(Player player, String kit, boolean reward) {
data.set(kit + "." + player.getName(), reward ? System.currentTimeMillis() : null);
}
/**
* 清空礼包数据
*
* @param kit 礼包
*/
public void resetKit(String kit) {
data.set(kit, null);
}
/**
* 玩家是否领取礼包
*
* @param player 玩家
* @param kit 礼包
* @return boolean
*/
public boolean isPlayerRewared(Player player, String kit) {
return data.contains(kit + "." + player.getName());
}
/**
* 礼包是否在冷却中
*
* @param player
* @param kit
* @return
*/
public boolean isPlayerCooldown(Player player, String kit) {
return System.currentTimeMillis() - data.getLong(kit + "." + player.getName()) < getCooldown(kit);
}
/**
* 礼包是否存在
*
* @param kit 礼包名
* @return boolean
*/
public boolean contains(String kit) {
return getConfig().contains("Kits." + kit);
}
/**
* 获取礼包冷却时间
*
* @param kit 礼包名
* @return long
*/
public long getCooldown(String kit) {
return DateUtils.formatDate(getConfig().getString("Kits." + kit + ".Cooldown"));
}
/**
* 获取礼包空间不足时的处理方式
*
* @param kit 礼包名
* @return boolean
*/
public Boolean isFullDrop(String kit) {
return getConfig().getBoolean("Kits." + kit + ".FullDrop");
}
/**
* 礼包是否只能领取一次
*
* @param kit 礼包名
* @return boolean
*/
public boolean isDisposable(String kit) {
return getConfig().getBoolean("Kits." + kit + ".Disposable");
}
/**
* 获取礼包权限
*
* @param kit 礼包名
* @return String
*/
public String getPermission(String kit) {
return getConfig().getString("Kits." + kit + ".Permission");
}
/**
* 获取礼包权限提示
*
* @param kit 礼包名
* @return String
*/
public String getPermissionMessage(String kit) {
return getConfig().getString("Kits." + kit + ".Permission-message").replace("&", "§");
}
/**
* 获取礼包物品
*
* @param kit 礼包名
* @return {@link List}
*/
public List<ItemStack> getItems(String kit) {
List<ItemStack> items = new ArrayList<>();
for (String itemStr : getConfig().getStringList("Kits." + kit + ".Items")) {
ItemStack item = ItemUtils.getCacheItem(itemStr.split(" ")[0]);
if (item != null) {
item = item.clone();
try {
item.setAmount(NumberUtils.getInteger(itemStr.split(" ")[1]));
items.add(item);
} catch (Exception e) {
MsgUtils.warn("模块配置载入异常: &4物品数量错误");
MsgUtils.warn("模块: &4Kits");
MsgUtils.warn("位于: &4" + itemStr);
}
}
}
return items;
}
/**
* 获取礼包命令
*
* @param kit 礼包名
* @return {@link List}
*/
public List<String> getCommands(String kit) {
return getConfig().contains("Kits." + kit + ".Commands") ? getConfig().getStringList("Kits." + kit + ".Commands") : new ArrayList<>();
}
private FileConfiguration data;
@Override
public String getName() {
return "Kits";
}
@Override
public void onEnable() {
data = DataUtils.addPluginData("ModuleKits", null);
}
/**
* 设置玩家是否领取礼包
*
* @param player 玩家
*/
public void setPlayerReward(Player player, String kit, boolean reward) {
data.set(kit + "." + player.getName(), reward ? System.currentTimeMillis() : null);
}
/**
* 清空礼包数据
*
* @param kit 礼包
*/
public void resetKit(String kit) {
data.set(kit, null);
}
/**
* 玩家是否领取礼包
*
* @param player 玩家
* @param kit 礼包
* @return boolean
*/
public boolean isPlayerRewared(Player player, String kit) {
return data.contains(kit + "." + player.getName());
}
/**
* 礼包是否在冷却中
*
* @param player
* @param kit
* @return
*/
public boolean isPlayerCooldown(Player player, String kit) {
return System.currentTimeMillis() - data.getLong(kit + "." + player.getName()) < getCooldown(kit);
}
/**
* 礼包是否存在
*
* @param kit 礼包名
* @return boolean
*/
public boolean contains(String kit) {
return getConfig().contains("Kits." + kit);
}
/**
* 获取礼包冷却时间
*
* @param kit 礼包名
* @return long
*/
public long getCooldown(String kit) {
return DateUtils.formatDate(getConfig().getString("Kits." + kit + ".Cooldown"));
}
/**
* 获取礼包空间不足时的处理方式
*
* @param kit 礼包名
* @return boolean
*/
public Boolean isFullDrop(String kit) {
return getConfig().getBoolean("Kits." + kit + ".FullDrop");
}
/**
* 礼包是否只能领取一次
*
* @param kit 礼包名
* @return boolean
*/
public boolean isDisposable(String kit) {
return getConfig().getBoolean("Kits." + kit + ".Disposable");
}
/**
* 获取礼包权限
*
* @param kit 礼包名
* @return String
*/
public String getPermission(String kit) {
return getConfig().getString("Kits." + kit + ".Permission");
}
/**
* 获取礼包权限提示
*
* @param kit 礼包名
* @return String
*/
public String getPermissionMessage(String kit) {
return getConfig().getString("Kits." + kit + ".Permission-message").replace("&", "§");
}
/**
* 获取礼包物品
*
* @param kit 礼包名
* @return {@link List}
*/
public List<ItemStack> getItems(String kit) {
List<ItemStack> items = new ArrayList<>();
for (String itemStr : getConfig().getStringList("Kits." + kit + ".Items")) {
ItemStack item = ItemUtils.getCacheItem(itemStr.split(" ")[0]);
if (item != null) {
item = item.clone();
try {
item.setAmount(NumberUtils.getInteger(itemStr.split(" ")[1]));
items.add(item);
} catch (Exception e) {
TLM.getInst().runtimeFall("Kits", "InvalidAmount", itemStr);
}
}
}
return items;
}
/**
* 获取礼包命令
*
* @param kit 礼包名
* @return {@link List}
*/
public List<String> getCommands(String kit) {
return getConfig().contains("Kits." + kit + ".Commands") ? getConfig().getStringList("Kits." + kit + ".Commands") : new ArrayList<>();
}
}

View File

@@ -1,112 +1,109 @@
package me.skymc.tlm.module.sub;
import java.util.Calendar;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import me.skymc.taboolib.Main;
import me.skymc.taboolib.message.MsgUtils;
import me.skymc.taboolib.other.DateUtils;
import me.skymc.taboolib.other.NumberUtils;
import me.skymc.taboolib.timecycle.TimeCycle;
import me.skymc.taboolib.timecycle.TimeCycleEvent;
import me.skymc.taboolib.timecycle.TimeCycleInitializeEvent;
import me.skymc.taboolib.timecycle.TimeCycleManager;
import me.skymc.tlm.TLM;
import me.skymc.tlm.module.ITabooLibraryModule;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.util.Calendar;
/**
* @author sky
* @since 2018年2月17日 下午11:23:38
*/
public class ModuleTimeCycle implements ITabooLibraryModule, Listener {
@Override
public String getName() {
return "TimeCycle";
}
@Override
public void onEnable() {
// 载入检查器
loadCycles();
}
@Override
public void onDisable() {
// 注销检查器
unloadCycles();
}
@Override
public void onReload() {
// 注销检查器
unloadCycles();
// 载入检查器
loadCycles();
}
@EventHandler
public void onTimeCycleInitialize(TimeCycleInitializeEvent e) {
if (e.getCycle().getName().contains("tlm|")) {
// 获取名称
String name = e.getCycle().getName().replace("tlm|", "");
// 如果有初始化时间配置
if (getConfig().contains("TimeCycle." + name + ".Initialise.InitialiseDate")) {
// 获取时间
Calendar date = Calendar.getInstance();
// 遍历初始化规则
for (String typeStr : getConfig().getStringList("TimeCycle." + name + ".Initialise.InitialiseDate")) {
try {
int type = (int) Calendar.class.getField(typeStr.split("=")[0]).get(Calendar.class);
date.set(type, NumberUtils.getInteger(typeStr.split("=")[1]));
} catch (Exception err) {
MsgUtils.warn("模块配置载入异常: &4日期类型错误");
MsgUtils.warn("模块: &4TimeCycle");
MsgUtils.warn("位于: &4" + typeStr);
}
}
e.setTimeLine(date.getTimeInMillis());
}
// 如果有初始化命令
if (getConfig().contains("TimeCycle." + name + ".Initialise.InitialiseCommand")) {
// 遍历初始化命令
for (String command : getConfig().getStringList("TimeCycle." + name + ".Initialise.InitialiseCommand")) {
// 执行命令
Bukkit.getScheduler().runTask(Main.getInst(), () -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command));
}
}
}
}
@EventHandler
public void onTimeCycle(TimeCycleEvent e) {
if (e.getCycle().getName().contains("tlm|")) {
// 获取名称
String name = e.getCycle().getName().replace("tlm|", "");
// 如果有更新命令
if (getConfig().contains("TimeCycle." + name + ".UpdateCommand")) {
// 遍历更新命令
for (String command : getConfig().getStringList("TimeCycle." + name + ".UpdateCommand")) {
// 执行命令
Bukkit.getScheduler().runTask(Main.getInst(), () -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command));
}
}
}
}
private void loadCycles() {
for (String name : getConfig().getConfigurationSection("TimeCycle").getKeys(false)) {
TimeCycleManager.register(new TimeCycle("tlm|" + name, DateUtils.formatDate(getConfig().getString("TimeCycle." + name + ".Cycle")), Main.getInst()));
}
}
private void unloadCycles() {
for (TimeCycle cycle : TimeCycleManager.getTimeCycles()) {
if (cycle.getName().startsWith("tlm|")) {
TimeCycleManager.cancel(cycle.getName());
}
}
}
@Override
public String getName() {
return "TimeCycle";
}
@Override
public void onEnable() {
// 载入检查器
loadCycles();
}
@Override
public void onDisable() {
// 注销检查器
unloadCycles();
}
@Override
public void onReload() {
// 注销检查器
unloadCycles();
// 载入检查器
loadCycles();
}
@EventHandler
public void onTimeCycleInitialize(TimeCycleInitializeEvent e) {
if (e.getCycle().getName().contains("tlm|")) {
// 获取名称
String name = e.getCycle().getName().replace("tlm|", "");
// 如果有初始化时间配置
if (getConfig().contains("TimeCycle." + name + ".Initialise.InitialiseDate")) {
// 获取时间
Calendar date = Calendar.getInstance();
// 遍历初始化规则
for (String typeStr : getConfig().getStringList("TimeCycle." + name + ".Initialise.InitialiseDate")) {
try {
int type = (int) Calendar.class.getField(typeStr.split("=")[0]).get(Calendar.class);
date.set(type, NumberUtils.getInteger(typeStr.split("=")[1]));
} catch (Exception ignored) {
TLM.getInst().runtimeFall("TimeCycle", "DateFormatFall", typeStr);
}
}
e.setTimeLine(date.getTimeInMillis());
}
// 如果有初始化命令
if (getConfig().contains("TimeCycle." + name + ".Initialise.InitialiseCommand")) {
// 遍历初始化命令
for (String command : getConfig().getStringList("TimeCycle." + name + ".Initialise.InitialiseCommand")) {
// 执行命令
Bukkit.getScheduler().runTask(Main.getInst(), () -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command));
}
}
}
}
@EventHandler
public void onTimeCycle(TimeCycleEvent e) {
if (e.getCycle().getName().contains("tlm|")) {
// 获取名称
String name = e.getCycle().getName().replace("tlm|", "");
// 如果有更新命令
if (getConfig().contains("TimeCycle." + name + ".UpdateCommand")) {
// 遍历更新命令
for (String command : getConfig().getStringList("TimeCycle." + name + ".UpdateCommand")) {
// 执行命令
Bukkit.getScheduler().runTask(Main.getInst(), () -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command));
}
}
}
}
private void loadCycles() {
for (String name : getConfig().getConfigurationSection("TimeCycle").getKeys(false)) {
TimeCycleManager.register(new TimeCycle("tlm|" + name, DateUtils.formatDate(getConfig().getString("TimeCycle." + name + ".Cycle")), Main.getInst()));
}
}
private void unloadCycles() {
for (TimeCycle cycle : TimeCycleManager.getTimeCycles()) {
if (cycle.getName().startsWith("tlm|")) {
TimeCycleManager.cancel(cycle.getName());
}
}
}
}