From 220829a206bc43c42ff620619bcff5a3ea4e648b Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Wed, 5 Feb 2020 19:34:29 +0100 Subject: [PATCH] Restart counter, member cmd #78 #69 --- .idea/compiler.xml | 56 +++++++++++++------ .idea/encodings.xml | 2 + BuildConfigUpdater/BuildConfigUpdater.iml | 19 +++++++ ButtonProcessor/ButtonProcessor.iml | 9 +++ Chroma-Core/Chroma-Core.iml | 30 ++++++++++ .../core/component/members/MemberCommand.java | 22 ++++++++ .../component/members/MemberComponent.java | 24 +++++++- .../restart/ScheduledRestartCommand.java | 2 +- CorePOM/CorePOM.iml | 4 +- 9 files changed, 147 insertions(+), 21 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 3fb39be..b5342db 100755 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -3,22 +3,6 @@ - - - - - - - - - - - - - - - - @@ -42,12 +26,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index a98a4bf..adcb5b6 100755 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -4,5 +4,7 @@ + + \ No newline at end of file diff --git a/BuildConfigUpdater/BuildConfigUpdater.iml b/BuildConfigUpdater/BuildConfigUpdater.iml index 2f5a2de..781a0fd 100644 --- a/BuildConfigUpdater/BuildConfigUpdater.iml +++ b/BuildConfigUpdater/BuildConfigUpdater.iml @@ -32,5 +32,24 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ButtonProcessor/ButtonProcessor.iml b/ButtonProcessor/ButtonProcessor.iml index a6bf3b9..6a0a7be 100755 --- a/ButtonProcessor/ButtonProcessor.iml +++ b/ButtonProcessor/ButtonProcessor.iml @@ -27,5 +27,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/Chroma-Core/Chroma-Core.iml b/Chroma-Core/Chroma-Core.iml index 6f05621..112e8d8 100644 --- a/Chroma-Core/Chroma-Core.iml +++ b/Chroma-Core/Chroma-Core.iml @@ -39,6 +39,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberCommand.java b/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberCommand.java index 1059b26..395b71c 100644 --- a/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberCommand.java +++ b/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberCommand.java @@ -7,6 +7,13 @@ import buttondevteam.lib.chat.ICommand2MC; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Date; + +import static buttondevteam.core.MainPlugin.permission; @CommandClass(modOnly = true, path = "member", helpText = { // "Member command", // @@ -44,4 +51,19 @@ public class MemberCommand extends ICommand2MC { }); return true; } + + @Command2.Subcommand + public void def(CommandSender sender) { + if(!(sender instanceof Player)) { + sender.sendMessage("§cYou need to be a player to use this command."); + return; + } + Player player= (Player) sender; + String msg; + if (component.checkMember(player)) + msg="You are a member."; + else { + component.getRegTime(player); + } + } } diff --git a/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberComponent.java b/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberComponent.java index 0c13f10..9ebb00f 100644 --- a/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberComponent.java +++ b/Chroma-Core/src/main/java/buttondevteam/core/component/members/MemberComponent.java @@ -5,6 +5,7 @@ import buttondevteam.lib.architecture.Component; import buttondevteam.lib.architecture.ComponentMetadata; import buttondevteam.lib.architecture.ConfigData; import org.bukkit.Statistic; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @@ -61,9 +62,7 @@ public class MemberComponent extends Component implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - if (permission != null && !permission.playerInGroup(event.getPlayer(), memberGroup().get()) - && (new Date(event.getPlayer().getFirstPlayed()).toInstant().plus(registeredForDays().get(), ChronoUnit.DAYS).isBefore(Instant.now()) - || event.getPlayer().getStatistic(playtime.getKey()) > playtime.getValue() * playedHours().get())) { + if (checkMember(event.getPlayer()) && (checkRegTime(event.getPlayer()) || checkPlayTime(event.getPlayer()))) { try { if (permission.playerAddGroup(null, event.getPlayer(), memberGroup().get())) { event.getPlayer().sendMessage("§bYou are a member now. YEEHAW"); @@ -77,4 +76,23 @@ public class MemberComponent extends Component implements Listener { } } + public boolean checkMember(Player player) { + return permission != null && !permission.playerInGroup(player, memberGroup().get()); + } + + public boolean checkRegTime(Player player) { + return new Date(player.getFirstPlayed()).toInstant().plus(registeredForDays().get(), ChronoUnit.DAYS).isBefore(Instant.now()); + } + + public boolean checkPlayTime(Player player) { + return player.getStatistic(playtime.getKey()) > playtime.getValue() * playedHours().get()); + } + + public long getRegTime(Player player) { + Instant date = new Date(player.getFirstPlayed()).toInstant().plus(registeredForDays().get(), ChronoUnit.DAYS); + if(date.isBefore(Instant.now())) + return date.toEpochMilli()-Instant.now().toEpochMilli(); + return -1; + } + } diff --git a/Chroma-Core/src/main/java/buttondevteam/core/component/restart/ScheduledRestartCommand.java b/Chroma-Core/src/main/java/buttondevteam/core/component/restart/ScheduledRestartCommand.java index 9b4002d..e9fd7c0 100755 --- a/Chroma-Core/src/main/java/buttondevteam/core/component/restart/ScheduledRestartCommand.java +++ b/Chroma-Core/src/main/java/buttondevteam/core/component/restart/ScheduledRestartCommand.java @@ -54,7 +54,7 @@ public class ScheduledRestartCommand extends ICommand2MC { restartbar.getPlayers().forEach(p -> restartbar.removePlayer(p)); Bukkit.spigot().restart(); } - if (restartCounter % 200 == 0) + if (restartCounter % 200 == 0 && Bukkit.getOnlinePlayers().size()>0) TBMCChatAPI.SendSystemMessage(Channel.GlobalChat, Channel.RecipientTestResult.ALL, "§c-- The server is restarting in " + restartCounter / 20 + " seconds! (/press)", component.getRestartBroadcast()); restartbar.setProgress(restartCounter / (double) restarttime); restartbar.setTitle(String.format("Server restart in %.2f", restartCounter / 20f)); diff --git a/CorePOM/CorePOM.iml b/CorePOM/CorePOM.iml index c3eb881..de84cf2 100644 --- a/CorePOM/CorePOM.iml +++ b/CorePOM/CorePOM.iml @@ -5,7 +5,7 @@ - + @@ -16,5 +16,7 @@ + + \ No newline at end of file