mirror of
https://github.com/geekfrog/PermissionsTime.git
synced 2025-09-06 11:06:58 +00:00
跨服与非跨服权限包同名兼容处理
This commit is contained in:
@ -16,45 +16,53 @@ import gg.frog.mc.permissionstime.utils.StrUtil;
|
||||
|
||||
public class GetCmd implements Runnable {
|
||||
|
||||
private PluginMain pm;
|
||||
private SqlManager sm;
|
||||
private String[] args;
|
||||
private CommandSender sender;
|
||||
private PluginMain pm;
|
||||
private SqlManager sm;
|
||||
private String[] args;
|
||||
private CommandSender sender;
|
||||
|
||||
public GetCmd(PluginMain pm, CommandSender sender, String[] args) {
|
||||
this.pm = pm;
|
||||
this.sm = pm.getSqlManager();
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
}
|
||||
public GetCmd(PluginMain pm, CommandSender sender, String[] args) {
|
||||
this.pm = pm;
|
||||
this.sm = pm.getSqlManager();
|
||||
this.sender = sender;
|
||||
this.args = args;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (args.length == 2) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
OfflinePlayer p = pm.getOfflinePlayer(args[1]);
|
||||
if (p != null) {
|
||||
List<PlayerDataBean> ps = sm.getTime(p.getUniqueId().toString());
|
||||
if (ps.size() > 0) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NUM_OF_PACKAGES, args[1], ps.size()));
|
||||
for (PlayerDataBean pdb : ps) {
|
||||
String expireString = StrUtil.timestampToString(pdb.getExpire());
|
||||
PermissionPackageBean pc = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||
if (pc != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_EXPIRATION_DATE, pdb.getGlobal() ? "*" : "", pc.getDisplayName(), pdb.getPackageName(), expireString, StrUtil.getLeftTime(pdb.getExpire())));
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_EXPIRATION_DATE, pdb.getGlobal() ? "*" : "", LangCfg.MSG_UNKNOWN_PACKAGE, pdb.getPackageName(), expireString, StrUtil.getLeftTime(pdb.getExpire())));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_DATA));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_FIND_PLAYER, args[1]));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PARAMETER_MISMATCH));
|
||||
sender.sendMessage(StrUtil.messageFormat(LangCfg.CMD_GET, pm.PLUGIN_NAME_LOWER_CASE));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void run() {
|
||||
if (args.length == 2) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||
OfflinePlayer p = pm.getOfflinePlayer(args[1]);
|
||||
if (p != null) {
|
||||
List<PlayerDataBean> ps = sm.getTime(p.getUniqueId().toString());
|
||||
if (ps.size() > 0) {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NUM_OF_PACKAGES,
|
||||
args[1], ps.size()));
|
||||
for (PlayerDataBean pdb : ps) {
|
||||
String expireString = StrUtil.timestampToString(pdb.getExpire());
|
||||
PermissionPackageBean pc = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||
if (!pdb.getGlobal() || pc != null) {
|
||||
sender.sendMessage(StrUtil.messageFormat(
|
||||
PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_EXPIRATION_DATE, pdb.getGlobal() ? "*" : "",
|
||||
pc != null ? pc.getDisplayName() : LangCfg.MSG_UNKNOWN_PACKAGE,
|
||||
pdb.getPackageName(), expireString, StrUtil.getLeftTime(pdb.getExpire())));
|
||||
} else {
|
||||
sender.sendMessage(
|
||||
StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_EXPIRATION_DATE,
|
||||
pdb.getGlobal() ? "*" : "", LangCfg.MSG_UNKNOWN_PACKAGE,
|
||||
pdb.getPackageName(), expireString, StrUtil.getLeftTime(pdb.getExpire())));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_DATA));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(
|
||||
StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_FIND_PLAYER, args[1]));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PARAMETER_MISMATCH));
|
||||
sender.sendMessage(StrUtil.messageFormat(LangCfg.CMD_GET, pm.PLUGIN_NAME_LOWER_CASE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import gg.frog.mc.permissionstime.config.LangCfg;
|
||||
import gg.frog.mc.permissionstime.config.PackagesCfg;
|
||||
import gg.frog.mc.permissionstime.model.cfg.PermissionPackageBean;
|
||||
import gg.frog.mc.permissionstime.model.db.PlayerDataBean;
|
||||
import gg.frog.mc.permissionstime.utils.StrUtil;
|
||||
|
||||
@ -18,8 +19,9 @@ public class PlayerPermissionShow {
|
||||
public static void show(Player p, List<PlayerDataBean> pdbList) {
|
||||
Inventory 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&r"));
|
||||
for (PlayerDataBean pdb : pdbList) {
|
||||
ItemStack item = PackagesCfg.PACKAGE_ITEMS.get(pdb.getPackageName());
|
||||
if (item != null) {
|
||||
PermissionPackageBean ppb = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||
if (ppb != null && pdb.getGlobal() == ppb.getGlobal()) {
|
||||
ItemStack item = PackagesCfg.PACKAGE_ITEMS.get(pdb.getPackageName());
|
||||
ItemStack tItem = item.clone();
|
||||
ItemMeta meta = tItem.getItemMeta();
|
||||
List<String> lores = meta.getLore();
|
||||
|
@ -246,7 +246,7 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
}
|
||||
}
|
||||
PermissionPackageBean p = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||
if (p != null) {
|
||||
if (p != null && pdb.getGlobal() == p.getGlobal()) {
|
||||
addPpb.getPermissions().addAll(p.getPermissions());
|
||||
subPpb.getPermissions().removeAll(p.getPermissions());
|
||||
addPpb.getGroups().addAll(p.getGroups());
|
||||
@ -308,27 +308,32 @@ public class PermissionPackageBean implements IConfigBean {
|
||||
for (PlayerDataBean playerData : playerDataList) {
|
||||
if (playerData.getExpire() < now) {
|
||||
PermissionPackageBean packageBean = PackagesCfg.PACKAGES.get(playerData.getPackageName());
|
||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player p = player.getPlayer();
|
||||
if (p != null) {
|
||||
p.sendMessage(StrUtil.messageFormat(
|
||||
PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_IS_EXPIRATION_DATE,
|
||||
packageBean != null ? packageBean.getDisplayName() : LangCfg.MSG_UNKNOWN_PACKAGE,
|
||||
playerData.getPackageName()));
|
||||
for (String commands : packageBean.getExpireCommands()) {
|
||||
try {
|
||||
commands = StrUtil.messageFormat(player.getPlayer(), commands);
|
||||
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), commands);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
if ((packageBean == null && !playerData.getGlobal())
|
||||
|| (packageBean != null && playerData.getGlobal() == packageBean.getGlobal())) {
|
||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Player p = player.getPlayer();
|
||||
if (p != null) {
|
||||
p.sendMessage(
|
||||
StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_IS_EXPIRATION_DATE,
|
||||
packageBean != null ? packageBean.getDisplayName()
|
||||
: LangCfg.MSG_UNKNOWN_PACKAGE,
|
||||
playerData.getPackageName()));
|
||||
for (String commands : packageBean.getExpireCommands()) {
|
||||
try {
|
||||
commands = StrUtil.messageFormat(player.getPlayer(), commands);
|
||||
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(),
|
||||
commands);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
plugin.getSqlManager().delById(playerData.getId());
|
||||
});
|
||||
plugin.getSqlManager().delById(playerData.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user