1
1
mirror of https://github.com/geekfrog/PermissionsTime.git synced 2025-09-06 02:56:58 +00:00

新功能 + BUG fix

检测是否有新版本
提示权限包到期
玩家登录时删除过期的或无效数据
This commit is contained in:
2017-07-24 00:30:46 +08:00
parent 58349ee8c7
commit 8bc004eb12
22 changed files with 573 additions and 28 deletions

View File

@ -11,6 +11,7 @@ import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.configuration.MemorySection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitTask;
import gg.frog.mc.permissionstime.PluginMain;
@ -254,10 +255,8 @@ public class PermissionPackageBean implements IConfigBean {
subPpb.clearPlayer(player, plugin.getServer(), plugin.getPermission());
addPpb.givePlayer(player, plugin.getServer(), plugin.getPermission());
}
checkExpire(player, plugin);
BukkitTask task = taskMap.get(player.getUniqueId().toString());
if (task != null) {
plugin.getServer().getScheduler().cancelTask(task.getTaskId());
}
if (pdbList.size() > 0) {
delay = (delay / 1000 + 1) * 20;// 1秒=20ticks
task = plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@ -286,4 +285,24 @@ public class PermissionPackageBean implements IConfigBean {
plugin.getServer().getScheduler().cancelTask(task.getTaskId());
}
}
public static void checkExpire(OfflinePlayer player, PluginMain plugin) {
List<PlayerDataBean> playerDataList = plugin.getSqlManager().getAllTime(player.getUniqueId().toString());
long now = new Date().getTime();
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 + "&4你的权限包: &r{0}({1}), 已到期.", packageBean != null ? packageBean.getDisplayName() : LangCfg.MSG_UNKNOWN_PACKAGE, playerData.getPackageName()));
}
}
});
plugin.getSqlManager().delById(playerData.getId());
}
}
}
}