From 4ecb2c7c27ced082996374d419eff2d066d02f58 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 7 Dec 2016 21:27:50 +0000 Subject: [PATCH] Closes #58 - Disable OP commands on Sponge --- .../lucko/luckperms/common/constants/Message.java | 1 + default-lang.yml | 1 + .../me/lucko/luckperms/sponge/SpongeListener.java | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/common/src/main/java/me/lucko/luckperms/common/constants/Message.java b/common/src/main/java/me/lucko/luckperms/common/constants/Message.java index 81d9f3ed..8e4a8de2 100644 --- a/common/src/main/java/me/lucko/luckperms/common/constants/Message.java +++ b/common/src/main/java/me/lucko/luckperms/common/constants/Message.java @@ -41,6 +41,7 @@ public enum Message { PLAYER_OFFLINE("&cOffline", false), LOADING_ERROR("Permissions data could not be loaded. Please contact an administrator.", true), OP_DISABLED("&bThe vanilla OP system is disabled on this server.", false), + OP_DISABLED_SPONGE("&2Server Operator status has no effect when a permission plugin is installed. Please edit user data directly.", true), LOG("&3LOG &3&l> {0}", true), COMMAND_NOT_RECOGNISED("Command not recognised.", true), diff --git a/default-lang.yml b/default-lang.yml index 311844d1..b99b59c4 100644 --- a/default-lang.yml +++ b/default-lang.yml @@ -8,6 +8,7 @@ player-online: "&aOnline" player-offline: "&cOffline" loading-error: "Permissions data could not be loaded. Please contact an administrator." op-disabled: "&bThe vanilla OP system is disabled on this server." +op-disabled-sponge: "&2Server Operator status has no effect when a permission plugin is installed. Please edit user data directly." log: "&3LOG &3&l> {0}" command-not-recognised: "Command not recognised." diff --git a/sponge/src/main/java/me/lucko/luckperms/sponge/SpongeListener.java b/sponge/src/main/java/me/lucko/luckperms/sponge/SpongeListener.java index 71136bf5..99609ad8 100644 --- a/sponge/src/main/java/me/lucko/luckperms/sponge/SpongeListener.java +++ b/sponge/src/main/java/me/lucko/luckperms/sponge/SpongeListener.java @@ -29,9 +29,11 @@ import me.lucko.luckperms.common.core.model.User; import me.lucko.luckperms.common.utils.AbstractListener; import me.lucko.luckperms.sponge.timings.LPTiming; +import org.spongepowered.api.command.CommandSource; import org.spongepowered.api.entity.living.player.Player; import org.spongepowered.api.event.Listener; import org.spongepowered.api.event.Order; +import org.spongepowered.api.event.command.SendCommandEvent; import org.spongepowered.api.event.network.ClientConnectionEvent; import org.spongepowered.api.profile.GameProfile; import org.spongepowered.api.text.serializer.TextSerializers; @@ -114,4 +116,15 @@ public class SpongeListener extends AbstractListener { onLeave(e.getTargetEntity().getUniqueId()); } } + + @Listener + public void onSendCommand(SendCommandEvent e) { + CommandSource source = e.getCause().first(CommandSource.class).orElse(null); + if (source == null) return; + + final String name = e.getCommand().toLowerCase(); + if (name.equals("op") || name.equals("deop")) { + Message.OP_DISABLED_SPONGE.send(plugin.getSenderFactory().wrap(source)); + } + } }