diff --git a/.idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_gc1751b8_228.xml b/.idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_g4519d5f_237.xml
old mode 100755
new mode 100644
similarity index 55%
rename from .idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_gc1751b8_228.xml
rename to .idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_g4519d5f_237.xml
index f3ec3e7..dc72500
--- a/.idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_gc1751b8_228.xml
+++ b/.idea/libraries/Maven__com_github_TBMCPlugins_ButtonCore_Towny_master_v1_0_g4519d5f_237.xml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_gson_gson_2_2_4.xml b/.idea/libraries/Maven__com_google_code_gson_gson_2_2_4.xml
deleted file mode 100755
index 4533c1b..0000000
--- a/.idea/libraries/Maven__com_google_code_gson_gson_2_2_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_ess3_Essentials_2_13_1.xml b/.idea/libraries/Maven__net_ess3_Essentials_2_13_1.xml
new file mode 100644
index 0000000..bbc5141
--- /dev/null
+++ b/.idea/libraries/Maven__net_ess3_Essentials_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_9_SNAPSHOT.xml b/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_9_SNAPSHOT.xml
deleted file mode 100755
index 51bddd3..0000000
--- a/.idea/libraries/Maven__net_md_5_bungeecord_chat_1_9_SNAPSHOT.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_12_2_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_12_2_R0_1_SNAPSHOT.xml
index b6f88ae..8cc2f18 100644
--- a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_12_2_R0_1_SNAPSHOT.xml
+++ b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_12_2_R0_1_SNAPSHOT.xml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_9_2_R0_1_SNAPSHOT.xml b/.idea/libraries/Maven__org_spigotmc_spigot_api_1_9_2_R0_1_SNAPSHOT.xml
deleted file mode 100755
index 19b00a4..0000000
--- a/.idea/libraries/Maven__org_spigotmc_spigot_api_1_9_2_R0_1_SNAPSHOT.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_15.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_15.xml
deleted file mode 100755
index 02d9152..0000000
--- a/.idea/libraries/Maven__org_yaml_snakeyaml_1_15.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BuildConfigUpdater/BuildConfigUpdater.iml b/BuildConfigUpdater/BuildConfigUpdater.iml
index 56fbaa2..4902d56 100644
--- a/BuildConfigUpdater/BuildConfigUpdater.iml
+++ b/BuildConfigUpdater/BuildConfigUpdater.iml
@@ -11,8 +11,7 @@
-
-
+
diff --git a/ButtonCore/pom.xml b/ButtonCore/pom.xml
index ca4aeb0..3750f03 100755
--- a/ButtonCore/pom.xml
+++ b/ButtonCore/pom.xml
@@ -87,6 +87,10 @@
vault-repo
http://nexus.hc.to/content/repositories/pub_releases
+
+ ess-repo
+ http://repo.ess3.net/content/repositories/essrel/
+
@@ -145,6 +149,12 @@
master-SNAPSHOT
provided
+
+ net.ess3
+ Essentials
+ 2.13.1
+ provided
+
TBMCPlugins
diff --git a/ButtonCore/src/main/java/buttondevteam/core/CommandCaller.java b/ButtonCore/src/main/java/buttondevteam/core/CommandCaller.java
index 51fc3ed..7ab952a 100755
--- a/ButtonCore/src/main/java/buttondevteam/core/CommandCaller.java
+++ b/ButtonCore/src/main/java/buttondevteam/core/CommandCaller.java
@@ -37,6 +37,8 @@ public class CommandCaller implements CommandExecutor {
else {
pc.setExecutor(instance);
String[] helptext = cmd.GetHelpText(topcmd);
+ if (helptext == null || helptext.length == 0)
+ throw new Exception("Command " + cmd.GetCommandPath() + " has no help text!");
pc.setUsage(helptext.length > 1 ? helptext[1] : helptext[0]);
}
}
@@ -64,7 +66,7 @@ public class CommandCaller implements CommandExecutor {
}
return true;
}
- if (cmd.isModOnly() && !MainPlugin.permission.has(sender, "tbmc.admin")) {
+ if (cmd.isModOnly() && (MainPlugin.permission != null ? !MainPlugin.permission.has(sender, "tbmc.admin") : !sender.isOp())) {
sender.sendMessage("§cYou need to be a mod to use this command.");
return true;
}
diff --git a/ButtonCore/src/main/java/buttondevteam/core/MainPlugin.java b/ButtonCore/src/main/java/buttondevteam/core/MainPlugin.java
index 03ba171..ca4c6bc 100755
--- a/ButtonCore/src/main/java/buttondevteam/core/MainPlugin.java
+++ b/ButtonCore/src/main/java/buttondevteam/core/MainPlugin.java
@@ -7,12 +7,14 @@ import buttondevteam.lib.chat.ChatRoom;
import buttondevteam.lib.chat.Color;
import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.lib.player.TBMCPlayerBase;
+import com.earth2me.essentials.Essentials;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
+import javax.annotation.Nullable;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -22,8 +24,10 @@ import java.util.logging.Logger;
public class MainPlugin extends JavaPlugin {
public static MainPlugin Instance;
- public static Permission permission;
+ @Nullable
+ public static Permission permission;
public static boolean Test;
+ public static Essentials ess;
private PluginDescriptionFile pdfFile;
private Logger logger;
@@ -60,6 +64,7 @@ public class MainPlugin extends JavaPlugin {
} catch (IOException e) {
TBMCCoreAPI.SendException("Failed to write plugin list!", e);
}
+ ess = Essentials.getPlugin(Essentials.class);
logger.info(pdfFile.getName() + " has been Enabled (V." + pdfFile.getVersion() + ") Test: " + Test + ".");
}
diff --git a/ButtonCore/src/main/java/buttondevteam/core/PlayerListener.java b/ButtonCore/src/main/java/buttondevteam/core/PlayerListener.java
index 97def0f..6314b27 100755
--- a/ButtonCore/src/main/java/buttondevteam/core/PlayerListener.java
+++ b/ButtonCore/src/main/java/buttondevteam/core/PlayerListener.java
@@ -3,17 +3,30 @@ package buttondevteam.core;
import buttondevteam.lib.TBMCSystemChatEvent;
import buttondevteam.lib.player.TBMCPlayerBase;
import org.bukkit.Bukkit;
+import org.bukkit.Statistic;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+
+import static buttondevteam.core.MainPlugin.permission;
+
public class PlayerListener implements Listener {
@EventHandler(priority = EventPriority.NORMAL)
public void OnPlayerJoin(PlayerJoinEvent event) {
TBMCPlayerBase.joinPlayer(event.getPlayer());
+ if (permission != null && !permission.playerInGroup(event.getPlayer(), "member")
+ && (new Date(event.getPlayer().getFirstPlayed()).toInstant().plus(7, ChronoUnit.DAYS).isBefore(Instant.now())
+ || event.getPlayer().getStatistic(Statistic.PLAY_ONE_TICK) > 20 * 3600 * 12)) {
+ permission.playerAddGroup(null, event.getPlayer(), "member");
+ event.getPlayer().sendMessage("§bYou are a member now. YEEHAW");
+ }
}
@EventHandler(priority = EventPriority.NORMAL)
diff --git a/ButtonCore/src/main/java/buttondevteam/core/PrimeRestartCommand.java b/ButtonCore/src/main/java/buttondevteam/core/PrimeRestartCommand.java
index f1e5bef..5ab0bcc 100644
--- a/ButtonCore/src/main/java/buttondevteam/core/PrimeRestartCommand.java
+++ b/ButtonCore/src/main/java/buttondevteam/core/PrimeRestartCommand.java
@@ -28,6 +28,9 @@ public class PrimeRestartCommand extends TBMCCommandBase {
@Override
public String[] GetHelpText(String alias) {
- return new String[0];
+ return new String[]{ //
+ "§6---- Prime restart ----", //
+ "Restarts the server as soon as nobody is online." //
+ };
}
}
diff --git a/ButtonCore/src/main/java/buttondevteam/lib/chat/Channel.java b/ButtonCore/src/main/java/buttondevteam/lib/chat/Channel.java
index 9c1b075..a7b2c2d 100755
--- a/ButtonCore/src/main/java/buttondevteam/lib/chat/Channel.java
+++ b/ButtonCore/src/main/java/buttondevteam/lib/chat/Channel.java
@@ -71,7 +71,7 @@ public class Channel {
public static Function inGroupFilter(String permgroup) {
return noScoreResult(
s -> s.isOp() || (permgroup != null
- ? s instanceof Player && MainPlugin.permission.playerInGroup((Player) s, permgroup) : false),
+ ? s instanceof Player && MainPlugin.permission != null && MainPlugin.permission.playerInGroup((Player) s, permgroup) : false),
"You need to be a(n) " + (permgroup != null ? permgroup : "OP") + " to use this channel.");
}
diff --git a/ButtonCore/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java b/ButtonCore/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
index 118b0e2..3dbcf76 100755
--- a/ButtonCore/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
+++ b/ButtonCore/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
@@ -66,7 +66,7 @@ public class TBMCChatAPI {
if (cmd.getKey().startsWith(command + " ")) {
if (cmd.getValue().isPlayerOnly() && !(sender instanceof Player))
continue;
- if (cmd.getValue().isModOnly() && !MainPlugin.permission.has(sender, "tbmc.admin"))
+ if (cmd.getValue().isModOnly() && (MainPlugin.permission != null ? !MainPlugin.permission.has(sender, "tbmc.admin") : !sender.isOp()))
continue;
int ind = cmd.getKey().indexOf(' ', command.length() + 2);
if (ind >= 0) {