好像没上传干净
This commit is contained in:
@@ -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;
|
||||
@@ -54,9 +54,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
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.message.MsgUtils;
|
||||
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 +17,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 +28,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 (module.equalsIgnoreCase("-b")) {
|
||||
continue;
|
||||
}
|
||||
// 给予
|
||||
else if (module.equalsIgnoreCase("-a")) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user