Add KickFromBungeeCommand

This commit is contained in:
Len 2024-04-26 09:50:03 +02:00
parent b2eab51b72
commit 18cb07f34e
3 changed files with 55 additions and 0 deletions

View File

@ -51,5 +51,9 @@ bukkit {
description = "${rootProject.name} admin command."
permission = "${rootProject.name}.command.admin"
}
register("kickfrombungee") {
description = "${rootProject.name} admin command."
}
}
}

View File

@ -2,6 +2,7 @@ package com.alttd.cometskyblock;
import com.alttd.cometskyblock.challenges.ChallengeHandler;
import com.alttd.cometskyblock.challenges.ChallengeLoader;
import com.alttd.cometskyblock.commands.KickFromBungeeCommand;
import com.alttd.cometskyblock.commands.admin.SkyBlockCommand;
import com.alttd.cometskyblock.commands.challenges.ChallengeCommand;
import com.alttd.cometskyblock.commands.island.IslandCommand;
@ -102,6 +103,7 @@ public class CometSkyBlockPlugin extends JavaPlugin implements CometSkyBlockAPI
getCommand("island").setExecutor(new IslandCommand(this));
getCommand("challenges").setExecutor(new ChallengeCommand(this));
getCommand("skyblock").setExecutor( new SkyBlockCommand(this));
getCommand("kickfrombungee").setExecutor( new KickFromBungeeCommand());
}
public void loadEventListeners() {

View File

@ -0,0 +1,49 @@
package com.alttd.cometskyblock.commands;
import com.alttd.cometskyblock.CometSkyBlockPlugin;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class KickFromBungeeCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender.hasPermission("utility.kickfrombungee")) {
if (!(args.length == 0)) {
Player target = Bukkit.getPlayer(args[0]);
if (target != null) {
String reason = join(args, ' ' , 1, args.length);
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("KickPlayer");
out.writeUTF(target.getName());
out.writeUTF(ChatColor.translateAlternateColorCodes('&', reason));
target.sendPluginMessage(CometSkyBlockPlugin.instance(), "BungeeCord", out.toByteArray());
}
}
}
return true;
}
public static String join(final String[] array, final char delimiter, final int startIndex, final int endIndex) {
if (array == null) {
return null;
}
if (endIndex - startIndex <= 0) {
return "";
}
final StringBuilder stringBuilder = new StringBuilder(array.length * 5 + array.length - 1);
for (int i = startIndex; i < endIndex; i++) {
stringBuilder
.append(array[i])
.append(delimiter);
}
return stringBuilder.substring(0, stringBuilder.length() - 1);
}
}