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