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.