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) {