1
mirror of https://github.com/CarmJos/ScriptItems synced 2024-09-19 21:35:50 +00:00

测试时间限制

This commit is contained in:
Carm Jos 2022-03-13 12:44:00 +08:00
parent d28dc5319e
commit b0b94a4b95
3 changed files with 11 additions and 6 deletions

View File

@ -1,6 +1,7 @@
package cc.carm.plugin.commanditem.item; package cc.carm.plugin.commanditem.item;
import cc.carm.lib.easysql.api.util.TimeDateUtils; import cc.carm.lib.easysql.api.util.TimeDateUtils;
import cc.carm.plugin.commanditem.Main;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -17,6 +18,7 @@ public class ItemRestrictions {
public ItemRestrictions(long startTime, long endTime) { public ItemRestrictions(long startTime, long endTime) {
this.startTime = startTime; this.startTime = startTime;
this.endTime = endTime; this.endTime = endTime;
Main.debugging("ItemRestrictions: " + startTime + " -> " + endTime);
} }
/** /**
@ -34,14 +36,17 @@ public class ItemRestrictions {
} }
public CheckResult check() { public CheckResult check() {
if (startTime > 0 && startTime > System.currentTimeMillis()) return CheckResult.NOT_STARTED; if (getStartTime() < 0 && getEndTime() < 0) return CheckResult.AVAILABLE;
if (endTime > 0 && endTime < System.currentTimeMillis()) return CheckResult.EXPIRED; if (getStartTime() > 0 && getEndTime() > 0 && getStartTime() > getEndTime()) return CheckResult.INVALID;
if (getStartTime() > 0 && getStartTime() > System.currentTimeMillis()) return CheckResult.NOT_STARTED;
if (getEndTime() > 0 && getEndTime() < System.currentTimeMillis()) return CheckResult.EXPIRED;
return CheckResult.AVAILABLE; return CheckResult.AVAILABLE;
} }
public enum CheckResult { public enum CheckResult {
AVAILABLE, AVAILABLE,
INVALID,
NOT_STARTED, NOT_STARTED,
EXPIRED; EXPIRED;

View File

@ -54,8 +54,8 @@ public class ItemListener implements Listener {
ItemActionGroup actions = commandItem.getConfiguration().getPlayerActions(player); ItemActionGroup actions = commandItem.getConfiguration().getPlayerActions(player);
if (actions == null) return; if (actions == null) return;
actions.execute(player);
updateTime(player.getUniqueId()); updateTime(player.getUniqueId());
actions.execute(player);
} }
/** /**

View File

@ -38,15 +38,15 @@ restrictions:
# 若玩家拥有配置的权限,则会执行权限对应的操作; # 若玩家拥有配置的权限,则会执行权限对应的操作;
# 权限配置从上向下判断若权限设定为空则会使用default的操作。 # 权限配置从上向下判断若权限设定为空则会使用default的操作。
permissions: permissions:
normal: "prefix.item.use" have: "prefix.pro" # 在本示例中,先判断玩家是否已拥有前缀
have: "prefix.pro" normal: "prefix.item.use" # 在本示例中,将判断玩家是否可以使用该物品
# 玩家右键物品时执行的操作 # 玩家右键物品时执行的操作
actions: actions:
default: # 默认执行的操作 default: # 默认执行的操作
- "[message] &c您没有使用该物品的权限" - "[message] &c您没有使用该物品的权限"
normal: # 若有 normal 权限设定,则执行此操作 normal: # 若有 normal 权限设定,则执行此操作
- "[console] say %player_name% 获得了 %name% " - "[console] say %player_name% 获得了 Pro会员前缀 "
- "[console] lp user %player_name% permission set prefix.pro true" - "[console] lp user %player_name% permission set prefix.pro true"
- "[chat] /prefix" # 以玩家聊天的形式发出消息,若以 "/" 开头则会被视为命令 - "[chat] /prefix" # 以玩家聊天的形式发出消息,若以 "/" 开头则会被视为命令
- "[sound] ENTITY_PLAYER_LEVELUP" # 播放声音 - "[sound] ENTITY_PLAYER_LEVELUP" # 播放声音