diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index a80f167..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,21 +0,0 @@ -stages: - - build - -variables: - name: "UltimateModeration" - path: "/builds/$CI_PROJECT_PATH" - version: "1.2.3" - -build: - stage: build - image: maven:3.5.3-jdk-8 - script: - - find $path/ -type f -name "*.xml" -print0 | xargs -0 sed -i -e s/maven-version-number/$version/g - - find $path/ -type f -name "*.yml" -print0 | xargs -0 sed -i -e s/maven-version-number/$version/g - - mvn clean package - - find $path/ -depth -path '*original*' -delete - - mv $path/target/*.jar $path/ - artifacts: - name: $name-$version - paths: - - "$path/*.jar" diff --git a/pom.xml b/pom.xml index 4ccd6b9..80543cd 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda UltimateModeration 4.0.0 - maven-version-number + 1.2.4 clean install UltimateModeration-${project.version} @@ -16,6 +16,28 @@ 1.8 + + com.google.code.maven-replacer-plugin + replacer + 1.5.3 + + + prepare-package + + replace + + + + + ${project.build.directory}/classes/plugin.yml + + + maven-version-number + ${project.version} + + + + org.apache.maven.plugins maven-shade-plugin @@ -67,12 +89,18 @@ org.spigotmc spigot - 1.14.4 + 1.15 + + + com.songoda + abledskyblock + 79.1 + provided com.songoda SongodaCore - LATEST + maven-version-number compile diff --git a/src/main/java/com/songoda/ultimatemoderation/UltimateModeration.java b/src/main/java/com/songoda/ultimatemoderation/UltimateModeration.java index d87c549..4785d7c 100644 --- a/src/main/java/com/songoda/ultimatemoderation/UltimateModeration.java +++ b/src/main/java/com/songoda/ultimatemoderation/UltimateModeration.java @@ -29,6 +29,7 @@ import com.songoda.ultimatemoderation.tickets.TicketStatus; import com.songoda.ultimatemoderation.utils.Methods; import com.songoda.ultimatemoderation.utils.gui.AbstractGUI; import org.bukkit.Bukkit; +import org.bukkit.plugin.PluginManager; import java.util.List; import java.util.UUID; @@ -111,18 +112,21 @@ public class UltimateModeration extends SongodaPlugin { // Register Listeners guiManager.init(); AbstractGUI.initializeListeners(this); - Bukkit.getPluginManager().registerEvents(new CommandListener(this), this); - Bukkit.getPluginManager().registerEvents(new DeathListener(this), this); - Bukkit.getPluginManager().registerEvents(new MoveListener(this), this); - Bukkit.getPluginManager().registerEvents(new DropListener(this), this); - Bukkit.getPluginManager().registerEvents(new InventoryListener(this), this); - Bukkit.getPluginManager().registerEvents(new ChatListener(this), this); - Bukkit.getPluginManager().registerEvents(new LoginListener(this), this); - Bukkit.getPluginManager().registerEvents(new MobTargetLister(), this); - Bukkit.getPluginManager().registerEvents(new BlockListener(this), this); + PluginManager pluginManager = Bukkit.getPluginManager(); + pluginManager.registerEvents(new CommandListener(this), this); + pluginManager.registerEvents(new DeathListener(this), this); + pluginManager.registerEvents(new MoveListener(this), this); + pluginManager.registerEvents(new DropListener(this), this); + pluginManager.registerEvents(new InventoryListener(this), this); + pluginManager.registerEvents(new ChatListener(this), this); + pluginManager.registerEvents(new LoginListener(this), this); + pluginManager.registerEvents(new MobTargetLister(), this); + pluginManager.registerEvents(new BlockListener(this), this); + if (pluginManager.isPluginEnabled("FabledSkyBlock")) + pluginManager.registerEvents(new SkyBlockListener(this), this); if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) - Bukkit.getPluginManager().registerEvents(new SpyingDismountListener(), this); + pluginManager.registerEvents(new SpyingDismountListener(), this); // Start tasks SlowModeTask.startTask(this); diff --git a/src/main/java/com/songoda/ultimatemoderation/listeners/ChatListener.java b/src/main/java/com/songoda/ultimatemoderation/listeners/ChatListener.java index c68f928..eabb146 100644 --- a/src/main/java/com/songoda/ultimatemoderation/listeners/ChatListener.java +++ b/src/main/java/com/songoda/ultimatemoderation/listeners/ChatListener.java @@ -38,6 +38,12 @@ public class ChatListener implements Listener { @EventHandler public void onChat(AsyncPlayerChatEvent event) { Player player = event.getPlayer(); + if (!onChat(player, event.getMessage())) + event.setCancelled(true); + } + + public static boolean onChat(Player player, String message) { + UltimateModeration instance = UltimateModeration.getInstance(); long slowmode = slowModeOverride == 0 ? Methods.parseTime(Settings.SLOW_MODE.getString()) : slowModeOverride; @@ -46,33 +52,35 @@ public class ChatListener implements Listener { if (chats.size() != 0) { Log last = chats.get(chats.size() - 1); if ((System.currentTimeMillis() - last.sent) < slowmode) { - event.setCancelled(true); - return; + return false; } } } + boolean isCancelled = false; + for (StaffChannel channel : instance.getStaffChatManager().getChats().values()) { if (!channel.listMembers().contains(player.getUniqueId())) continue; - event.setCancelled(true); - channel.processMessage(event.getMessage(), player); + isCancelled = true; + channel.processMessage(message, player); } if (!isChatToggled && !player.hasPermission("um.togglechat.bypass")) { - event.setCancelled(true); + isCancelled = true; instance.getLocale().getMessage("command.togglechat.muted").sendPrefixedMessage(player); } List appliedPunishments = instance.getPunishmentManager().getPlayer(player).getActivePunishments(PunishmentType.MUTE); if (!appliedPunishments.isEmpty()) { appliedPunishments.get(0).sendMessage(player); - event.setCancelled(true); + isCancelled = true; } // Log chat. - chatLog.add(new Log(player.getUniqueId(), System.currentTimeMillis(), event.getMessage())); + chatLog.add(new Log(player.getUniqueId(), System.currentTimeMillis(), message)); + return !isCancelled; } public static void setSlowModeOverride(long slowModeOverride) { @@ -83,7 +91,7 @@ public class ChatListener implements Listener { return new ArrayList<>(chatLog); } - public class Log { + public static class Log { private UUID player; private long sent; diff --git a/src/main/java/com/songoda/ultimatemoderation/listeners/SkyBlockListener.java b/src/main/java/com/songoda/ultimatemoderation/listeners/SkyBlockListener.java new file mode 100644 index 0000000..588dd02 --- /dev/null +++ b/src/main/java/com/songoda/ultimatemoderation/listeners/SkyBlockListener.java @@ -0,0 +1,30 @@ +package com.songoda.ultimatemoderation.listeners; + +import com.songoda.skyblock.api.event.player.PlayerIslandChatEvent; +import com.songoda.ultimatemoderation.UltimateModeration; +import com.songoda.ultimatemoderation.staffchat.StaffChatManager; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; + +import java.util.List; + +public class SkyBlockListener implements Listener { + + private UltimateModeration instance; + + public SkyBlockListener(UltimateModeration ultimateModeration) { + this.instance = ultimateModeration; + } + + @EventHandler + public void onIslandChat(PlayerIslandChatEvent event) { + if (!ChatListener.onChat(event.getPlayer(), event.getMessage())) + event.setCancelled(true); + } + +} diff --git a/src/main/java/com/songoda/ultimatemoderation/storage/Storage.java b/src/main/java/com/songoda/ultimatemoderation/storage/Storage.java index 41b9858..d392778 100644 --- a/src/main/java/com/songoda/ultimatemoderation/storage/Storage.java +++ b/src/main/java/com/songoda/ultimatemoderation/storage/Storage.java @@ -49,7 +49,7 @@ public abstract class Storage { new StorageItem("duration", appliedPunishment.getDuration()), new StorageItem("reason", appliedPunishment.getReason()), new StorageItem("victim", appliedPunishment.getVictim().toString()), - new StorageItem("punisher", appliedPunishment.getPunisher().toString()), + new StorageItem("punisher", appliedPunishment.getPunisher() == null ? null : appliedPunishment.getPunisher().toString()), new StorageItem("expiration", appliedPunishment.getExpiration())); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2bd703e..3c3ceb0 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ main: com.songoda.ultimatemoderation.UltimateModeration version: maven-version-number author: Songoda api-version: 1.13 -softdepend: [Vault] +softdepend: [Vault, FabledSkyBlock] commands: UltimateModeration: description: View information on this plugin.