aboutsummaryrefslogtreecommitdiff
path: root/spark-bungeecord/src/main/java/me
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2019-04-28 15:37:32 +0100
committerLuck <git@lucko.me>2019-05-04 23:22:32 +0100
commitc3ae37e88f967a21522af7d0cb79a571326cd7e9 (patch)
tree7ce46c61407dacdff3cabaeb1ffc8eb5e7cd614a /spark-bungeecord/src/main/java/me
parent51fa2b3e64f021c3c0535f9f931d3fae27ca7adc (diff)
downloadspark-c3ae37e88f967a21522af7d0cb79a571326cd7e9.tar.gz
spark-c3ae37e88f967a21522af7d0cb79a571326cd7e9.tar.bz2
spark-c3ae37e88f967a21522af7d0cb79a571326cd7e9.zip
Start implementing activity log feature
Diffstat (limited to 'spark-bungeecord/src/main/java/me')
-rw-r--r--spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/BungeeCordCommandSender.java61
-rw-r--r--spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/SparkBungeeCordPlugin.java42
2 files changed, 73 insertions, 30 deletions
diff --git a/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/BungeeCordCommandSender.java b/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/BungeeCordCommandSender.java
new file mode 100644
index 0000000..d3a831c
--- /dev/null
+++ b/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/BungeeCordCommandSender.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of spark.
+ *
+ * Copyright (c) lucko (Luck) <luck@lucko.me>
+ * Copyright (c) contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package me.lucko.spark.bungeecord;
+
+import me.lucko.spark.common.CommandSender;
+import net.kyori.text.Component;
+import net.kyori.text.adapter.bungeecord.TextAdapter;
+
+public class BungeeCordCommandSender implements CommandSender {
+ private final net.md_5.bungee.api.CommandSender sender;
+
+ public BungeeCordCommandSender(net.md_5.bungee.api.CommandSender sender) {
+ this.sender = sender;
+ }
+
+ @Override
+ public String getName() {
+ return this.sender.getName();
+ }
+
+ @Override
+ public void sendMessage(Component message) {
+ TextAdapter.sendComponent(this.sender, message);
+ }
+
+ @Override
+ public boolean hasPermission(String permission) {
+ return this.sender.hasPermission(permission);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ BungeeCordCommandSender that = (BungeeCordCommandSender) o;
+ return this.sender.equals(that.sender);
+ }
+
+ @Override
+ public int hashCode() {
+ return this.sender.hashCode();
+ }
+}
diff --git a/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/SparkBungeeCordPlugin.java b/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/SparkBungeeCordPlugin.java
index ba2ee99..193ae06 100644
--- a/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/SparkBungeeCordPlugin.java
+++ b/spark-bungeecord/src/main/java/me/lucko/spark/bungeecord/SparkBungeeCordPlugin.java
@@ -20,27 +20,24 @@
package me.lucko.spark.bungeecord;
+import me.lucko.spark.common.CommandSender;
import me.lucko.spark.common.SparkPlatform;
import me.lucko.spark.common.SparkPlugin;
import me.lucko.spark.common.sampler.ThreadDumper;
import me.lucko.spark.common.sampler.TickCounter;
-import net.kyori.text.Component;
-import net.kyori.text.adapter.bungeecord.TextAdapter;
-import net.md_5.bungee.api.ChatColor;
-import net.md_5.bungee.api.CommandSender;
-import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.TabExecutor;
import java.nio.file.Path;
-import java.util.Collections;
-import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
-public class SparkBungeeCordPlugin extends Plugin implements SparkPlugin<CommandSender> {
+public class SparkBungeeCordPlugin extends Plugin implements SparkPlugin {
- private final SparkPlatform<CommandSender> platform = new SparkPlatform<>(this);
+ private final SparkPlatform platform = new SparkPlatform(this);
@Override
public void onEnable() {
@@ -70,15 +67,10 @@ public class SparkBungeeCordPlugin extends Plugin implements SparkPlugin<Command
@Override
public Set<CommandSender> getSendersWithPermission(String permission) {
- Set<CommandSender> senders = new HashSet<>(getProxy().getPlayers());
+ List<net.md_5.bungee.api.CommandSender> senders = new LinkedList<>(getProxy().getPlayers());
senders.removeIf(sender -> !sender.hasPermission(permission));
senders.add(getProxy().getConsole());
- return senders;
- }
-
- @Override
- public void sendMessage(CommandSender sender, Component message) {
- TextAdapter.sendComponent(sender, message);
+ return senders.stream().map(BungeeCordCommandSender::new).collect(Collectors.toSet());
}
@Override
@@ -105,23 +97,13 @@ public class SparkBungeeCordPlugin extends Plugin implements SparkPlugin<Command
}
@Override
- public void execute(CommandSender sender, String[] args) {
- if (!sender.hasPermission("spark")) {
- TextComponent msg = new TextComponent("You do not have permission to use this command.");
- msg.setColor(ChatColor.RED);
- sender.sendMessage(msg);
- return;
- }
-
- this.plugin.platform.executeCommand(sender, args);
+ public void execute(net.md_5.bungee.api.CommandSender sender, String[] args) {
+ this.plugin.platform.executeCommand(new BungeeCordCommandSender(sender), args);
}
@Override
- public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
- if (!sender.hasPermission("spark")) {
- return Collections.emptyList();
- }
- return this.plugin.platform.tabCompleteCommand(sender, args);
+ public Iterable<String> onTabComplete(net.md_5.bungee.api.CommandSender sender, String[] args) {
+ return this.plugin.platform.tabCompleteCommand(new BungeeCordCommandSender(sender), args);
}
}
}