mirror of
https://github.com/geekfrog/PermissionsTime.git
synced 2025-09-06 19:28:27 +00:00
修复了一堆BUG,不记得修复什么了...
This commit is contained in:
2
pom.xml
2
pom.xml
@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>gg.frog.mc</groupId>
|
<groupId>gg.frog.mc</groupId>
|
||||||
<artifactId>permissionstime</artifactId>
|
<artifactId>permissionstime</artifactId>
|
||||||
<version>0.4.2-SNAPSHOT</version>
|
<version>0.4.2-SNAPSHOT-b1001</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>PermissionsTime</name>
|
<name>PermissionsTime</name>
|
||||||
<description>支持跨服的权限限时插件</description>
|
<description>支持跨服的权限限时插件</description>
|
||||||
|
@ -14,6 +14,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
|
|
||||||
import gg.frog.mc.base.config.ConfigManager;
|
import gg.frog.mc.base.config.ConfigManager;
|
||||||
import gg.frog.mc.base.config.PluginCfg;
|
import gg.frog.mc.base.config.PluginCfg;
|
||||||
|
import gg.frog.mc.base.listener.BaseListener;
|
||||||
import gg.frog.mc.base.utils.FileUtil;
|
import gg.frog.mc.base.utils.FileUtil;
|
||||||
import gg.frog.mc.base.utils.StrUtil;
|
import gg.frog.mc.base.utils.StrUtil;
|
||||||
import gg.frog.mc.base.utils.UpdateCheck;
|
import gg.frog.mc.base.utils.UpdateCheck;
|
||||||
@ -38,7 +39,8 @@ public class PluginMain extends JavaPlugin {
|
|||||||
private Permission permission = null;
|
private Permission permission = null;
|
||||||
public static boolean enabledHdPlugin;
|
public static boolean enabledHdPlugin;
|
||||||
public static boolean enabledPlaceholder;
|
public static boolean enabledPlaceholder;
|
||||||
private Map<String, OfflinePlayer> playerMap = new ConcurrentHashMap<>();
|
private Map<String, String> PLAYER_UUID_MAP = new ConcurrentHashMap<>();
|
||||||
|
private Map<String, OfflinePlayer> OFFLINE_PLAYER_MAP = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public PluginMain() {
|
public PluginMain() {
|
||||||
PLUGIN_NAME = getDescription().getName();
|
PLUGIN_NAME = getDescription().getName();
|
||||||
@ -85,6 +87,7 @@ public class PluginMain extends JavaPlugin {
|
|||||||
* 这里可以注册多个
|
* 这里可以注册多个
|
||||||
*/
|
*/
|
||||||
private void registerListeners() {
|
private void registerListeners() {
|
||||||
|
pm.getServer().getPluginManager().registerEvents(new BaseListener(pm), pm);
|
||||||
pm.getServer().getPluginManager().registerEvents(new PtListener(pm), pm);
|
pm.getServer().getPluginManager().registerEvents(new PtListener(pm), pm);
|
||||||
pm.getServer().getPluginManager().registerEvents(new TagsListener(pm), pm);
|
pm.getServer().getPluginManager().registerEvents(new TagsListener(pm), pm);
|
||||||
}
|
}
|
||||||
@ -115,8 +118,8 @@ public class PluginMain extends JavaPlugin {
|
|||||||
return permission;
|
return permission;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, OfflinePlayer> getPlayerMap() {
|
public Map<String, OfflinePlayer> getOFFLINE_PLAYER_MAP() {
|
||||||
return playerMap;
|
return OFFLINE_PLAYER_MAP;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkPluginDepends() {
|
private boolean checkPluginDepends() {
|
||||||
@ -186,25 +189,16 @@ public class PluginMain extends JavaPlugin {
|
|||||||
return sm.updateDatabase();
|
return sm.updateDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlayerUUIDByName(String name) {
|
|
||||||
OfflinePlayer p = getOfflinePlayer(name);
|
|
||||||
if (p == null) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
return p.getUniqueId().toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public OfflinePlayer getOfflinePlayer(String name) {
|
public OfflinePlayer getOfflinePlayer(String name) {
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
OfflinePlayer p1 = playerMap.get(name);
|
OfflinePlayer p = OFFLINE_PLAYER_MAP.get(name);
|
||||||
if (p1 != null)
|
if (p != null)
|
||||||
return p1;
|
return p;
|
||||||
for (OfflinePlayer p2 : getServer().getOfflinePlayers()) {
|
for (OfflinePlayer p2 : getServer().getOfflinePlayers()) {
|
||||||
if (p2 == null)
|
if (p2 == null)
|
||||||
continue;
|
continue;
|
||||||
if (p2.getName().equalsIgnoreCase(name)) {
|
if (p2.getName().equalsIgnoreCase(name)) {
|
||||||
playerMap.put(name, p2);
|
OFFLINE_PLAYER_MAP.put(name, p2);
|
||||||
return p2;
|
return p2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -212,6 +206,26 @@ public class PluginMain extends JavaPlugin {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPlayerUUIDByName(String name) {
|
||||||
|
if (name != null) {
|
||||||
|
String uuid = PLAYER_UUID_MAP.get(name);
|
||||||
|
if (uuid != null) {
|
||||||
|
return uuid;
|
||||||
|
} else {
|
||||||
|
for (OfflinePlayer p : getServer().getOfflinePlayers()) {
|
||||||
|
if (p == null)
|
||||||
|
continue;
|
||||||
|
if (p.getName().equalsIgnoreCase(name)) {
|
||||||
|
uuid = p.getUniqueId().toString();
|
||||||
|
PLAYER_UUID_MAP.put(name, uuid);
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public void writeFailLog(String content, Object... args) {
|
public void writeFailLog(String content, Object... args) {
|
||||||
FileUtil.writeOnFile(getDataFolder() + "/failure.log", "[" + StrUtil.nowTimeString() + "] " + MessageFormat.format(content, args));
|
FileUtil.writeOnFile(getDataFolder() + "/failure.log", "[" + StrUtil.nowTimeString() + "] " + MessageFormat.format(content, args));
|
||||||
}
|
}
|
||||||
|
27
src/main/gg/frog/mc/base/listener/BaseListener.java
Normal file
27
src/main/gg/frog/mc/base/listener/BaseListener.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package gg.frog.mc.base.listener;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
|
import gg.frog.mc.base.PluginMain;
|
||||||
|
|
||||||
|
public class BaseListener implements Listener {
|
||||||
|
|
||||||
|
private PluginMain pm;
|
||||||
|
|
||||||
|
public BaseListener(PluginMain pm) {
|
||||||
|
this.pm = pm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onQuit(PlayerQuitEvent event) {
|
||||||
|
pm.getOFFLINE_PLAYER_MAP().remove(event.getPlayer().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onKick(PlayerKickEvent event) {
|
||||||
|
pm.getOFFLINE_PLAYER_MAP().remove(event.getPlayer().getName());
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import gg.frog.mc.base.PluginMain;
|
import gg.frog.mc.base.PluginMain;
|
||||||
@ -22,6 +22,7 @@ public class TagCmd implements Runnable {
|
|||||||
private String[] args;
|
private String[] args;
|
||||||
private CommandSender sender;
|
private CommandSender sender;
|
||||||
private boolean isPlayer;
|
private boolean isPlayer;
|
||||||
|
private TagType type = null;
|
||||||
|
|
||||||
public TagCmd(PluginMain pm, CommandSender sender, boolean isPlayer, String[] args) {
|
public TagCmd(PluginMain pm, CommandSender sender, boolean isPlayer, String[] args) {
|
||||||
this.pm = pm;
|
this.pm = pm;
|
||||||
@ -37,7 +38,7 @@ public class TagCmd implements Runnable {
|
|||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||||
List<ItemStack> itemList = new ArrayList<ItemStack>();
|
List<ItemStack> itemList = new ArrayList<ItemStack>();
|
||||||
List<ItemStack> disItemList = new ArrayList<ItemStack>();
|
List<ItemStack> disItemList = new ArrayList<ItemStack>();
|
||||||
TagType type = null;
|
|
||||||
Map<String, List<ItemStack>> p_i_map;
|
Map<String, List<ItemStack>> p_i_map;
|
||||||
if ("c".equals(args[1])) {
|
if ("c".equals(args[1])) {
|
||||||
type = TagNameCfg.TagType.NAMECOLOR_TYPE;
|
type = TagNameCfg.TagType.NAMECOLOR_TYPE;
|
||||||
@ -60,8 +61,7 @@ public class TagCmd implements Runnable {
|
|||||||
disItemList.addAll(p_i_map.get(p));
|
disItemList.addAll(p_i_map.get(p));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OfflinePlayer player = pm.getOfflinePlayer(sender.getName());
|
PlayerTagShow.show(pm, (Player) sender, type, itemList, disItemList);
|
||||||
PlayerTagShow.show(player, type, itemList, disItemList);
|
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PARAMETER_MISMATCH));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PARAMETER_MISMATCH));
|
||||||
sender.sendMessage(StrUtil.messageFormat(LangCfg.CMD_TAG, pm.PLUGIN_NAME_LOWER_CASE));
|
sender.sendMessage(StrUtil.messageFormat(LangCfg.CMD_TAG, pm.PLUGIN_NAME_LOWER_CASE));
|
||||||
|
@ -3,11 +3,12 @@ package gg.frog.mc.nametags.gui;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
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.LangCfg;
|
||||||
import gg.frog.mc.base.config.PluginCfg;
|
import gg.frog.mc.base.config.PluginCfg;
|
||||||
import gg.frog.mc.base.utils.StrUtil;
|
import gg.frog.mc.base.utils.StrUtil;
|
||||||
@ -18,14 +19,14 @@ import gg.frog.mc.nametags.model.PlayerTagBean;
|
|||||||
|
|
||||||
public class PlayerTagShow {
|
public class PlayerTagShow {
|
||||||
|
|
||||||
public static void show(OfflinePlayer player, TagType tagType, List<ItemStack> itemList, List<ItemStack> disItemList) {
|
public static void show(PluginMain pm, Player p, TagType tagType, List<ItemStack> itemList, List<ItemStack> disItemList) {
|
||||||
Inventory inventory = null;
|
Inventory inventory = null;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (itemList.size() > 0) {
|
if (itemList.size() > 0) {
|
||||||
inventory = Bukkit.createInventory(null, ((itemList.size() + disItemList.size()) % 9 == 0 ? (itemList.size() + disItemList.size()) : ((itemList.size() + disItemList.size()) / 9 + 1) * 9), StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§2§r"));
|
inventory = Bukkit.createInventory(null, ((itemList.size() + disItemList.size()) % 9 == 0 ? (itemList.size() + disItemList.size()) : ((itemList.size() + disItemList.size()) / 9 + 1) * 9), StrUtil.messageFormat(LangCfg.TAG_INVENTORY_NAME + "§r§5§9§2§0§2§r"));
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(p.getName());
|
||||||
PlayerTagBean playerTag = null;
|
PlayerTagBean playerTag = null;
|
||||||
if (TagNameCfg.PLAYER_TAG.containsKey(uuid)) {
|
if (uuid != null && TagNameCfg.PLAYER_TAG.containsKey(uuid)) {
|
||||||
playerTag = TagNameCfg.PLAYER_TAG.get(uuid);
|
playerTag = TagNameCfg.PLAYER_TAG.get(uuid);
|
||||||
if (playerTag != null) {
|
if (playerTag != null) {
|
||||||
for (ItemStack item : itemList) {
|
for (ItemStack item : itemList) {
|
||||||
@ -36,7 +37,7 @@ public class PlayerTagShow {
|
|||||||
String tag = lores.get(lores.size() - 1);
|
String tag = lores.get(lores.size() - 1);
|
||||||
tag = tag.length() > 2 ? tag.substring(2) : "";
|
tag = tag.length() > 2 ? tag.substring(2) : "";
|
||||||
if (tagType == TagType.NAMECOLOR_TYPE) {
|
if (tagType == TagType.NAMECOLOR_TYPE) {
|
||||||
meta.setDisplayName(meta.getDisplayName() + player.getName());
|
meta.setDisplayName(meta.getDisplayName() + p.getName());
|
||||||
playerTag.setNamecolor(tag);
|
playerTag.setNamecolor(tag);
|
||||||
} else if (tagType == TagType.PREFIX_TYPE) {
|
} else if (tagType == TagType.PREFIX_TYPE) {
|
||||||
playerTag.setPrefix(tag);
|
playerTag.setPrefix(tag);
|
||||||
@ -45,7 +46,7 @@ public class PlayerTagShow {
|
|||||||
}
|
}
|
||||||
for (int i = 0; i < lores.size(); i++) {
|
for (int i = 0; i < lores.size(); i++) {
|
||||||
if (lores.get(i).contains("%displayname%")) {
|
if (lores.get(i).contains("%displayname%")) {
|
||||||
lores.set(i, lores.get(i).replaceAll("%displayname%", playerTag.getDisplayNameStr(player.getPlayer())));// 效果
|
lores.set(i, lores.get(i).replaceAll("%displayname%", playerTag.getDisplayNameStr(p)));// 效果
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
meta.setLore(lores);
|
meta.setLore(lores);
|
||||||
@ -61,7 +62,7 @@ public class PlayerTagShow {
|
|||||||
String tag = lores.get(lores.size() - 1);
|
String tag = lores.get(lores.size() - 1);
|
||||||
tag = tag.length() > 2 ? tag.substring(2) : "";
|
tag = tag.length() > 2 ? tag.substring(2) : "";
|
||||||
if (tagType == TagType.NAMECOLOR_TYPE) {
|
if (tagType == TagType.NAMECOLOR_TYPE) {
|
||||||
meta.setDisplayName("§6§l§m" + meta.getDisplayName().substring(4) + player.getName());
|
meta.setDisplayName("§6§l§m" + meta.getDisplayName().substring(4) + p.getName());
|
||||||
playerTag.setNamecolor(tag);
|
playerTag.setNamecolor(tag);
|
||||||
} else if (tagType == TagType.PREFIX_TYPE) {
|
} else if (tagType == TagType.PREFIX_TYPE) {
|
||||||
meta.setDisplayName("§6§l§m" + meta.getDisplayName().substring(4));
|
meta.setDisplayName("§6§l§m" + meta.getDisplayName().substring(4));
|
||||||
@ -72,7 +73,7 @@ public class PlayerTagShow {
|
|||||||
}
|
}
|
||||||
for (int i = 0; i < lores.size(); i++) {
|
for (int i = 0; i < lores.size(); i++) {
|
||||||
if (lores.get(i).contains("%displayname%")) {
|
if (lores.get(i).contains("%displayname%")) {
|
||||||
lores.set(i, lores.get(i).replaceAll("%displayname%", playerTag.getDisplayNameStr(player.getPlayer())));// 效果
|
lores.set(i, lores.get(i).replaceAll("%displayname%", playerTag.getDisplayNameStr(p)));// 效果
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
meta.setLore(lores);
|
meta.setLore(lores);
|
||||||
@ -85,9 +86,9 @@ public class PlayerTagShow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inventory != null && size > 0) {
|
if (inventory != null && size > 0) {
|
||||||
player.getPlayer().openInventory(inventory);
|
p.openInventory(inventory);
|
||||||
} else {
|
} else {
|
||||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_TAG_DATA));
|
p.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_TAG_DATA));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package gg.frog.mc.nametags.listener;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -70,10 +70,9 @@ public class TagsListener implements Listener {
|
|||||||
List<String> lores = event.getCurrentItem().getItemMeta().getLore();
|
List<String> lores = event.getCurrentItem().getItemMeta().getLore();
|
||||||
if (lores.size() > 1) {
|
if (lores.size() > 1) {
|
||||||
String permissions = lores.get(lores.size() - 2);
|
String permissions = lores.get(lores.size() - 2);
|
||||||
permissions = permissions.length() > 4 ? permissions.substring(4) : "";
|
permissions = permissions.startsWith("§8§k") ? permissions.substring(4) : "noPermissions";
|
||||||
OfflinePlayer player = this.pm.getOfflinePlayer(event.getWhoClicked().getName());
|
String uuid = pm.getPlayerUUIDByName(event.getWhoClicked().getName());
|
||||||
String uuid = player.getUniqueId().toString();
|
if (permissions.length() == 0 || event.getWhoClicked().hasPermission(permissions)) {
|
||||||
if (permissions.length() == 0 || player.getPlayer().hasPermission(permissions)) {
|
|
||||||
if (TagNameCfg.PLAYER_TAG.containsKey(uuid)) {
|
if (TagNameCfg.PLAYER_TAG.containsKey(uuid)) {
|
||||||
String itemName = event.getCurrentItem().getItemMeta().getDisplayName();
|
String itemName = event.getCurrentItem().getItemMeta().getDisplayName();
|
||||||
PlayerTagBean playerTag = TagNameCfg.PLAYER_TAG.get(uuid);
|
PlayerTagBean playerTag = TagNameCfg.PLAYER_TAG.get(uuid);
|
||||||
@ -84,16 +83,18 @@ public class TagsListener implements Listener {
|
|||||||
} else if (itemName.startsWith(StrUtil.messageFormat(LangCfg.TAG_SUFFIX_ITEM_NAME + "§3§r "))) {
|
} else if (itemName.startsWith(StrUtil.messageFormat(LangCfg.TAG_SUFFIX_ITEM_NAME + "§3§r "))) {
|
||||||
playerTag.setSuffix(lores.get(lores.size() - 1).substring(2));
|
playerTag.setSuffix(lores.get(lores.size() - 1).substring(2));
|
||||||
} else {
|
} else {
|
||||||
|
event.getWhoClicked().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_PERMISSION));
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
playerTag.setPlayerDisplayName(player.getPlayer(), true);
|
playerTag.setPlayerDisplayName((Player) event.getWhoClicked(), true);
|
||||||
playerTag.saveConfig();
|
playerTag.saveConfig();
|
||||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_TAG_SET_SUCCESS));
|
event.getWhoClicked().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_TAG_SET_SUCCESS));
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_PERMISSION));
|
|
||||||
}
|
}
|
||||||
|
event.getWhoClicked().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_NO_PERMISSION));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -217,7 +217,7 @@ public class PlayerTagBean extends PluginConfig implements IConfigBean, Cloneabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getDisplayNameStr(Player player) {
|
public String getDisplayNameStr(Player player) {
|
||||||
return StrUtil.messageFormat(prefix + "§r" + namecolor + player.getName() + "§r" + suffix);
|
return StrUtil.messageFormat(player, prefix + "§r" + namecolor + player.getName() + "§r" + suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -66,7 +66,7 @@ public class GiveCmd implements Runnable {
|
|||||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||||
if (PluginCfg.IS_DEBUG) {
|
if (PluginCfg.IS_DEBUG) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString() + "\n" + time + unitName + "."));
|
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")) {
|
if (player.hasPermission("permissionstime.reload")) {
|
||||||
for (Player p : pm.getServer().getOnlinePlayers()) {
|
for (Player p : pm.getServer().getOnlinePlayers()) {
|
||||||
InventoryView inventory = p.getOpenInventory();
|
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();
|
inventory.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ public class PtCommand implements CommandExecutor, TabCompleter {
|
|||||||
} else {
|
} else {
|
||||||
for (Player p : pm.getServer().getOnlinePlayers()) {
|
for (Player p : pm.getServer().getOnlinePlayers()) {
|
||||||
InventoryView inventory = p.getOpenInventory();
|
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();
|
inventory.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ public class RemoveAllCmd implements Runnable {
|
|||||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||||
if (PluginCfg.IS_DEBUG) {
|
if (PluginCfg.IS_DEBUG) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid));
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ public class RemoveCmd implements Runnable {
|
|||||||
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||||
if (PluginCfg.IS_DEBUG) {
|
if (PluginCfg.IS_DEBUG) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString()));
|
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);
|
OfflinePlayer player = pm.getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_PROCESSING));
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(playerName);
|
||||||
if (PluginCfg.IS_DEBUG) {
|
if (PluginCfg.IS_DEBUG) {
|
||||||
sender.sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + uuid + "\n" + pack.toString() + "\n" + time + unitName + " ."));
|
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.Material;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import gg.frog.mc.base.PluginMain;
|
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.config.PluginCfg;
|
||||||
import gg.frog.mc.base.utils.StrUtil;
|
import gg.frog.mc.base.utils.StrUtil;
|
||||||
import gg.frog.mc.base.utils.config.PluginConfig;
|
import gg.frog.mc.base.utils.config.PluginConfig;
|
||||||
import gg.frog.mc.base.utils.nms.ItemUtil;
|
import gg.frog.mc.base.utils.nms.ItemUtil;
|
||||||
import gg.frog.mc.permissionstime.model.cfg.PermissionPackageBean;
|
import gg.frog.mc.permissionstime.model.cfg.PermissionPackageBean;
|
||||||
|
import gg.frog.mc.permissionstime.model.db.PlayerDataBean;
|
||||||
|
|
||||||
public class PackagesCfg extends PluginConfig {
|
public class PackagesCfg extends PluginConfig {
|
||||||
|
|
||||||
@ -67,6 +70,16 @@ public class PackagesCfg extends PluginConfig {
|
|||||||
allPermissions.addAll(e.getValue().getPermissions());
|
allPermissions.addAll(e.getValue().getPermissions());
|
||||||
allGroups.addAll(e.getValue().getGroups());
|
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) {
|
private ItemStack getPackageItem(String name, PermissionPackageBean ppb) {
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerPermissionShow {
|
|||||||
Inventory inventory = null;
|
Inventory inventory = null;
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (pdbList.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) {
|
for (PlayerDataBean pdb : pdbList) {
|
||||||
PermissionPackageBean ppb = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
PermissionPackageBean ppb = PackagesCfg.PACKAGES.get(pdb.getPackageName());
|
||||||
if (ppb != null && pdb.getGlobal() == ppb.getGlobal()) {
|
if (ppb != null && pdb.getGlobal() == ppb.getGlobal()) {
|
||||||
|
@ -25,21 +25,16 @@ public class PtListener implements Listener {
|
|||||||
this.pm = pm;
|
this.pm = pm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onJoin(PlayerLoginEvent event) {
|
public void onJoin(PlayerLoginEvent event) {
|
||||||
new Thread(new Runnable() {
|
try {
|
||||||
@Override
|
String uuid = pm.getPlayerUUIDByName(event.getPlayer().getName());
|
||||||
public void run() {
|
List<PlayerDataBean> pdbList = pm.getSqlManager().getTime(uuid);
|
||||||
try {
|
PermissionPackageBean.reloadPlayerPermissions(event.getPlayer(), pdbList, pm, false);
|
||||||
String uuid = pm.getPlayerUUIDByName(event.getPlayer().getName());
|
} catch (Exception e) {
|
||||||
List<PlayerDataBean> pdbList = pm.getSqlManager().getTime(uuid);
|
e.printStackTrace();
|
||||||
PermissionPackageBean.reloadPlayerPermissions(event.getPlayer(), pdbList, pm, false);
|
event.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||||
} catch (Exception e) {
|
}
|
||||||
e.printStackTrace();
|
|
||||||
event.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -54,7 +49,6 @@ public class PtListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
pm.getPlayerMap().remove(event.getPlayer().getName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -69,7 +63,6 @@ public class PtListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
pm.getPlayerMap().remove(event.getPlayer().getName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -220,11 +220,11 @@ public class PermissionPackageBean implements IConfigBean {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain plugin) {
|
public static void reloadPlayerPermissions(OfflinePlayer player, List<PlayerDataBean> pdbList, PluginMain pm) {
|
||||||
reloadPlayerPermissions(player, pdbList, plugin, true);
|
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 delay = -1;
|
||||||
long now = new Date().getTime();
|
long now = new Date().getTime();
|
||||||
PermissionPackageBean addPpb = new PermissionPackageBean();
|
PermissionPackageBean addPpb = new PermissionPackageBean();
|
||||||
@ -250,12 +250,12 @@ public class PermissionPackageBean implements IConfigBean {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (async) {
|
if (async) {
|
||||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
pm.getServer().getScheduler().runTask(pm, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
|
subPpb.clearPlayer(player, pm.getServer(), pm.getPermission());
|
||||||
addPpb.givePlayer(player, plugin.getServer(), plugin.getPermission());
|
addPpb.givePlayer(player, pm.getServer(), pm.getPermission());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
player.getPlayer().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + LangCfg.MSG_FAIL_SET_PERMISSION));
|
||||||
@ -263,19 +263,19 @@ public class PermissionPackageBean implements IConfigBean {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
|
subPpb.clearPlayer(player, pm.getServer(), pm.getPermission());
|
||||||
addPpb.givePlayer(player, plugin.getServer(), plugin.getPermission());
|
addPpb.givePlayer(player, pm.getServer(), pm.getPermission());
|
||||||
}
|
}
|
||||||
checkExpire(player, plugin);
|
checkExpire(player, pm);
|
||||||
String uuid = player.getUniqueId().toString();
|
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||||
BukkitTask task = taskMap.get(uuid);
|
BukkitTask task = taskMap.get(uuid);
|
||||||
if (pdbList.size() > 0) {
|
if (pdbList.size() > 0) {
|
||||||
delay = (delay / 1000 + 1) * 20;// 1秒=20ticks
|
delay = (delay / 1000 + 1) * 20;// 1秒=20ticks
|
||||||
task = plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
|
task = pm.getServer().getScheduler().runTaskLaterAsynchronously(pm, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
List<PlayerDataBean> tpdbList = plugin.getSqlManager().getTime(uuid);
|
List<PlayerDataBean> tpdbList = pm.getSqlManager().getTime(uuid);
|
||||||
reloadPlayerPermissions(player, tpdbList, plugin);
|
reloadPlayerPermissions(player, tpdbList, pm);
|
||||||
}
|
}
|
||||||
}, delay);
|
}, delay);
|
||||||
taskMap.put(uuid, task);
|
taskMap.put(uuid, task);
|
||||||
@ -289,30 +289,32 @@ public class PermissionPackageBean implements IConfigBean {
|
|||||||
* @param plugin
|
* @param plugin
|
||||||
* @throws Exception
|
* @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();
|
PermissionPackageBean subPpb = new PermissionPackageBean();
|
||||||
subPpb.getPermissions().addAll(PackagesCfg.allPermissions);
|
subPpb.getPermissions().addAll(PackagesCfg.allPermissions);
|
||||||
subPpb.getGroups().addAll(PackagesCfg.allGroups);
|
subPpb.getGroups().addAll(PackagesCfg.allGroups);
|
||||||
plugin.getServer().getScheduler().runTask(plugin, new Runnable() {
|
pm.getServer().getScheduler().runTask(pm, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
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) {
|
if (task != null) {
|
||||||
plugin.getServer().getScheduler().cancelTask(task.getTaskId());
|
pm.getServer().getScheduler().cancelTask(task.getTaskId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void checkExpire(OfflinePlayer player, PluginMain plugin) {
|
public static void checkExpire(OfflinePlayer player, PluginMain pm) {
|
||||||
List<PlayerDataBean> playerDataList = plugin.getSqlManager().getAllTime(player.getUniqueId().toString());
|
String uuid = pm.getPlayerUUIDByName(player.getName());
|
||||||
|
List<PlayerDataBean> playerDataList = pm.getSqlManager().getAllTime(uuid);
|
||||||
long now = new Date().getTime();
|
long now = new Date().getTime();
|
||||||
for (PlayerDataBean playerData : playerDataList) {
|
for (PlayerDataBean playerData : playerDataList) {
|
||||||
if (playerData.getExpire() < now) {
|
if (playerData.getExpire() < now) {
|
||||||
PermissionPackageBean packageBean = PackagesCfg.PACKAGES.get(playerData.getPackageName());
|
PermissionPackageBean packageBean = PackagesCfg.PACKAGES.get(playerData.getPackageName());
|
||||||
if ((packageBean == null && !playerData.getGlobal()) || (packageBean != null && playerData.getGlobal() == packageBean.getGlobal())) {
|
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
|
@Override
|
||||||
public void run() {
|
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()));
|
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()) {
|
for (String commands : packageBean.getExpireCommands()) {
|
||||||
try {
|
try {
|
||||||
commands = StrUtil.messageFormat(player.getPlayer(), commands);
|
commands = StrUtil.messageFormat(player.getPlayer(), commands);
|
||||||
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), commands);
|
pm.getServer().dispatchCommand(pm.getServer().getConsoleSender(), commands);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
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