mirror of
https://github.com/geekfrog/PermissionsTime.git
synced 2025-09-09 23:21:23 +00:00
修复了一堆BUG,不记得修复什么了...
This commit is contained in:
@ -66,7 +66,7 @@ public class GiveCmd implements Runnable {
|
||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
String uuid = player.getUniqueId().toString();
|
||||
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||
if (PluginCfg.IS_DEBUG) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString() + "\n" + time + unitName + "."));
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public class PtCommand implements CommandExecutor, TabCompleter {
|
||||
if (player.hasPermission("permissionstime.reload")) {
|
||||
for (Player p : pm.getServer().getOnlinePlayers()) {
|
||||
InventoryView inventory = p.getOpenInventory();
|
||||
if (inventory != null && (StrUtil.messageFormat(LangCfg.INVENTORY_NAME + "§r§5§9§2§0§r").equals(inventory.getTitle()) || StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§r").equals(inventory.getTitle()))) {
|
||||
if (inventory != null && (StrUtil.messageFormat(LangCfg.INVENTORY_NAME + "§r§5§9§2§0§1§r").equals(inventory.getTitle()) || StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§2§r").equals(inventory.getTitle()))) {
|
||||
inventory.close();
|
||||
}
|
||||
}
|
||||
@ -70,7 +70,7 @@ public class PtCommand implements CommandExecutor, TabCompleter {
|
||||
} else {
|
||||
for (Player p : pm.getServer().getOnlinePlayers()) {
|
||||
InventoryView inventory = p.getOpenInventory();
|
||||
if (inventory != null && (StrUtil.messageFormat(LangCfg.INVENTORY_NAME + "§r§5§9§2§0§r").equals(inventory.getTitle()) || StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§r").equals(inventory.getTitle()))) {
|
||||
if (inventory != null && (StrUtil.messageFormat(LangCfg.INVENTORY_NAME + "§r§5§9§2§0§1§r").equals(inventory.getTitle()) || StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§2§r").equals(inventory.getTitle()))) {
|
||||
inventory.close();
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public class RemoveAllCmd implements Runnable {
|
||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
String uuid = player.getUniqueId().toString();
|
||||
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||
if (PluginCfg.IS_DEBUG) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid));
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ public class RemoveCmd implements Runnable {
|
||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
String uuid = player.getUniqueId().toString();
|
||||
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||
if (PluginCfg.IS_DEBUG) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString()));
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ public class SetCmd implements Runnable {
|
||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
String uuid = player.getUniqueId().toString();
|
||||
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||
if (PluginCfg.IS_DEBUG) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString() + "\n" + time + unitName + " ."));
|
||||
}
|
||||
|
@ -13,15 +13,18 @@ import java.util.logging.Level;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import gg.frog.mc.base.PluginMain;
|
||||
import gg.frog.mc.base.config.LangCfg;
|
||||
import gg.frog.mc.base.config.PluginCfg;
|
||||
import gg.frog.mc.base.utils.StrUtil;
|
||||
import gg.frog.mc.base.utils.config.PluginConfig;
|
||||
import gg.frog.mc.base.utils.nms.ItemUtil;
|
||||
import gg.frog.mc.permissionstime.model.cfg.PermissionPackageBean;
|
||||
import gg.frog.mc.permissionstime.model.db.PlayerDataBean;
|
||||
|
||||
public class PackagesCfg extends PluginConfig {
|
||||
|
||||
@ -67,6 +70,16 @@ public class PackagesCfg extends PluginConfig {
|
||||
allPermissions.addAll(e.getValue().getPermissions());
|
||||
allGroups.addAll(e.getValue().getGroups());
|
||||
}
|
||||
for (Player player : pm.getServer().getOnlinePlayers()) {
|
||||
try {
|
||||
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||
List<PlayerDataBean> pdbList = pm.getSqlManager().getTime(uuid);
|
||||
PermissionPackageBean.reloadPlayerPermissions(player, pdbList, pm, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ItemStack getPackageItem(String name, PermissionPackageBean ppb) {
|
||||
|
@ -21,7 +21,7 @@ public class PlayerPermissionShow {
|
||||
Inventory inventory = null;
|
||||
int size = 0;
|
||||
if (pdbList.size() > 0) {
|
||||
inventory = Bukkit.createInventory(null, (pdbList.size() % 9 == 0 ? pdbList.size() : (pdbList.size() / 9 + 1) * 9), StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§1§r"));
|
||||
inventory = Bukkit.createInventory(null, (pdbList.size() % 9 == 0 ? pdbList.size() : (pdbList.size() / 9 + 1) * 9), StrUtil.messageFormat(LangCfg.INVENTORY_NAME + "§r§5§9§2§0§1§r"));
|
||||
for (PlayerDataBean pdb : pdbList) {
|
||||
PermissionPackageBean ppb = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||
if (ppb != null && pdb.getGlobal() == ppb.getGlobal()) {
|
||||
|
@ -25,21 +25,16 @@ public class PtListener implements Listener {
|
||||
this.pm = pm;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onJoin(PlayerLoginEvent event) {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
String uuid = pm.getPlayerUUIDByName(event.getPlayer().getName());
|
||||
List<PlayerDataBean> pdbList = pm.getSqlManager().getTime(uuid);
|
||||
PermissionPackageBean.reloadPlayerPermissions(event.getPlayer(), pdbList, pm, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
event.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
try {
|
||||
String uuid = pm.getPlayerUUIDByName(event.getPlayer().getName());
|
||||
List<PlayerDataBean> pdbList = pm.getSqlManager().getTime(uuid);
|
||||
PermissionPackageBean.reloadPlayerPermissions(event.getPlayer(), pdbList, pm, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
event.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -54,7 +49,6 @@ public class PtListener implements Listener {
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
pm.getPlayerMap().remove(event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -69,7 +63,6 @@ public class PtListener implements Listener {
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
pm.getPlayerMap().remove(event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -220,11 +220,11 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
}
|
||||
}
|
||||
|
||||
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain plugin) {
|
||||
reloadPlayerPermissions(player, pdbList, plugin, true);
|
||||
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain pm) {
|
||||
reloadPlayerPermissions(player, pdbList, pm, true);
|
||||
}
|
||||
|
||||
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain plugin, boolean async) {
|
||||
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain pm, boolean async) {
|
||||
long delay = -1;
|
||||
long now = new Date().getTime();
|
||||
PermissionPackageBean addPpb = new PermissionPackageBean();
|
||||
@ -250,12 +250,12 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
}
|
||||
}
|
||||
if (async) {
|
||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
||||
pm.getServer().getScheduler().runTask(pm, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
|
||||
addPpb.givePlayer(player, plugin.getServer(), plugin.getPermission());
|
||||
subPpb.clearPlayer(player, pm.getServer(), pm.getPermission());
|
||||
addPpb.givePlayer(player, pm.getServer(), pm.getPermission());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||
@ -263,19 +263,19 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
|
||||
addPpb.givePlayer(player, plugin.getServer(), plugin.getPermission());
|
||||
subPpb.clearPlayer(player, pm.getServer(), pm.getPermission());
|
||||
addPpb.givePlayer(player, pm.getServer(), pm.getPermission());
|
||||
}
|
||||
checkExpire(player, plugin);
|
||||
String uuid = player.getUniqueId().toString();
|
||||
checkExpire(player, pm);
|
||||
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||
BukkitTask task = taskMap.get(uuid);
|
||||
if (pdbList.size() > 0) {
|
||||
delay = (delay / 1000 + 1) * 20;// 1秒=20ticks
|
||||
task = plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
||||
task = pm.getServer().getScheduler().runTaskLaterAsynchronously(pm, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
List<PlayerDataBean> tpdbList = plugin.getSqlManager().getTime(uuid);
|
||||
reloadPlayerPermissions(player, tpdbList, plugin);
|
||||
List<PlayerDataBean> tpdbList = pm.getSqlManager().getTime(uuid);
|
||||
reloadPlayerPermissions(player, tpdbList, pm);
|
||||
}
|
||||
}, delay);
|
||||
taskMap.put(uuid, task);
|
||||
@ -289,30 +289,32 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
* @param plugin
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void delPlayerAllPermissions(OfflinePlayer player, PluginMain plugin) throws Exception {
|
||||
public static void delPlayerAllPermissions(OfflinePlayer player, PluginMain pm) throws Exception {
|
||||
PermissionPackageBean subPpb = new PermissionPackageBean();
|
||||
subPpb.getPermissions().addAll(PackagesCfg.allPermissions);
|
||||
subPpb.getGroups().addAll(PackagesCfg.allGroups);
|
||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
||||
pm.getServer().getScheduler().runTask(pm, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
|
||||
subPpb.clearPlayer(player, pm.getServer(), pm.getPermission());
|
||||
}
|
||||
});
|
||||
BukkitTask task = taskMap.get(player.getUniqueId().toString());
|
||||
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||
BukkitTask task = taskMap.get(uuid);
|
||||
if (task != null) {
|
||||
plugin.getServer().getScheduler().cancelTask(task.getTaskId());
|
||||
pm.getServer().getScheduler().cancelTask(task.getTaskId());
|
||||
}
|
||||
}
|
||||
|
||||
public static void checkExpire(OfflinePlayer player, PluginMain plugin) {
|
||||
List<PlayerDataBean> playerDataList = plugin.getSqlManager().getAllTime(player.getUniqueId().toString());
|
||||
public static void checkExpire(OfflinePlayer player, PluginMain pm) {
|
||||
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||
List<PlayerDataBean> playerDataList = pm.getSqlManager().getAllTime(uuid);
|
||||
long now = new Date().getTime();
|
||||
for (PlayerDataBean playerData : playerDataList) {
|
||||
if (playerData.getExpire() < now) {
|
||||
PermissionPackageBean packageBean = PackagesCfg.PACKAGES.get(playerData.getPackageName());
|
||||
if ((packageBean == null && !playerData.getGlobal()) || (packageBean != null && playerData.getGlobal() == packageBean.getGlobal())) {
|
||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
||||
pm.getServer().getScheduler().runTask(pm, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_IS_EXPIRATION_DATE, packageBean != null ? packageBean.getDisplayName() : LangCfg.MSG_UNKNOWN_PACKAGE, playerData.getPackageName()));
|
||||
@ -320,7 +322,7 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
for (String commands : packageBean.getExpireCommands()) {
|
||||
try {
|
||||
commands = StrUtil.messageFormat(player.getPlayer(), commands);
|
||||
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), commands);
|
||||
pm.getServer().dispatchCommand(pm.getServer().getConsoleSender(), commands);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -328,7 +330,7 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
}
|
||||
}
|
||||
});
|
||||
plugin.getSqlManager().delById(playerData.getId());
|
||||
pm.getSqlManager().delById(playerData.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user