mirror of
https://github.com/kaboomserver/extras.git
synced 2025-02-11 03:29:50 +00:00
Migrate commands to Adventure, add new commands
New additions are Adventure-centric.
This commit is contained in:
parent
6bb5f374e3
commit
04b8ce1c3c
22 changed files with 337 additions and 138 deletions
36
README.md
36
README.md
|
@ -5,23 +5,25 @@ Extras is a Bukkit plugin that that adds extra functionality to the Kaboom serve
|
|||
## Commands
|
||||
|
||||
| Command | Aliases | Permission | Description |
|
||||
| ------- | ----- | ---------- | ----------- |
|
||||
|/broadcastraw | /bcraw, /tellraw | extras.broadcastraw | Broadcasts raw text to the server|
|
||||
|/broadcastvanilla | /bcv | extras.broadcastvanilla | Broadcasts text in vanilla style|
|
||||
|/clearchat | /cc | extras.clearchat | Clears messages from the chat|
|
||||
|/console | | extras.console | Broadcasts a message as the console|
|
||||
|/destroyentities | /de | extras.destroyentities | Destroys all entities in every world|
|
||||
|/enchantall | | extras.enchantall | Adds every enchantment to a held item|
|
||||
|/jumpscare | /scare | extras.jumpscare | Scares a player|
|
||||
|/kaboom | | extras.kaboom | I wonder...|
|
||||
|/ping | /ms, /delay | extras.ping | Gets your ping|
|
||||
|/prefix | /rank, /tag | extras.prefix | Changes your tag|
|
||||
|/pumpkin | | extras.pumpkin | Places a pumpkin on a player's head|
|
||||
|/serverinfo | /specs | extras.serverinfo | Shows detailed server information|
|
||||
|/skin | | extras.skin | Changes your skin|
|
||||
|/spawn | | extras.spawn | Teleports you to spawn|
|
||||
|/spidey | | extras.spidey | Annoying little spider...|
|
||||
|/username | | extras.username | Changes your username on the server|
|
||||
|-----------------------|----------------------------------------------|-----------------------------|---------------------------------------------------------------|
|
||||
| /broadcastminimessage | /broadcastmm, /bcmm | extras.broadcastminimessage | Broadcasts a deserialized MiniMessage component |
|
||||
| /broadcastraw | /bcraw, /tellraw | extras.broadcastraw | Broadcasts raw text to the server |
|
||||
| /broadcastvanilla | /bcv | extras.broadcastvanilla | Broadcasts text in vanilla style |
|
||||
| /clearchat | /cc | extras.clearchat | Clears messages from the chat |
|
||||
| /console | | extras.console | Broadcasts a message as the console |
|
||||
| /destroyentities | /de | extras.destroyentities | Destroys all entities in every world |
|
||||
| /enchantall | | extras.enchantall | Adds every enchantment to a held item |
|
||||
| /getjson | /gj, /gmm | extras.getjson | Gets the JSON of a deserialized MiniMessage/legacy component |
|
||||
| /jumpscare | /scare | extras.jumpscare | Scares a player |
|
||||
| /kaboom | | extras.kaboom | I wonder... |
|
||||
| /ping | /ms, /delay | extras.ping | Gets your ping |
|
||||
| /prefix | /rank, /tag | extras.prefix | Changes your tag |
|
||||
| /pumpkin | | extras.pumpkin | Places a pumpkin on a player's head |
|
||||
| /serverinfo | /specs | extras.serverinfo | Shows detailed server information |
|
||||
| /skin | | extras.skin | Changes your skin |
|
||||
| /spawn | | extras.spawn | Teleports you to spawn |
|
||||
| /spidey | | extras.spidey | Annoying little spider... |
|
||||
| /username | | extras.username | Changes your username on the server |
|
||||
|
||||
|
||||
## Compiling
|
||||
|
|
|
@ -1,20 +1,18 @@
|
|||
package pw.kaboom.extras;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.WorldType;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import pw.kaboom.extras.commands.CommandBroadcastMM;
|
||||
import pw.kaboom.extras.commands.CommandBroadcastVanilla;
|
||||
import pw.kaboom.extras.commands.CommandClearChat;
|
||||
import pw.kaboom.extras.commands.CommandConsole;
|
||||
import pw.kaboom.extras.commands.CommandDestroyEntities;
|
||||
import pw.kaboom.extras.commands.CommandEnchantAll;
|
||||
import pw.kaboom.extras.commands.CommandGetJSON;
|
||||
import pw.kaboom.extras.commands.CommandJumpscare;
|
||||
import pw.kaboom.extras.commands.CommandKaboom;
|
||||
import pw.kaboom.extras.commands.CommandPing;
|
||||
|
@ -44,6 +42,9 @@ import pw.kaboom.extras.modules.server.ServerGameRule;
|
|||
import pw.kaboom.extras.modules.server.ServerTabComplete;
|
||||
import pw.kaboom.extras.modules.server.ServerTick;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
|
||||
public final class Main extends JavaPlugin {
|
||||
private File prefixConfigFile;
|
||||
private FileConfiguration prefixConfig;
|
||||
|
@ -72,11 +73,13 @@ public final class Main extends JavaPlugin {
|
|||
prefixConfig = YamlConfiguration.loadConfiguration(prefixConfigFile);
|
||||
|
||||
/* Commands */
|
||||
this.getCommand("broadcastminimessage").setExecutor(new CommandBroadcastMM());
|
||||
this.getCommand("broadcastvanilla").setExecutor(new CommandBroadcastVanilla());
|
||||
this.getCommand("clearchat").setExecutor(new CommandClearChat());
|
||||
this.getCommand("console").setExecutor(new CommandConsole());
|
||||
this.getCommand("destroyentities").setExecutor(new CommandDestroyEntities());
|
||||
this.getCommand("enchantall").setExecutor(new CommandEnchantAll());
|
||||
this.getCommand("getjson").setExecutor(new CommandGetJSON());
|
||||
this.getCommand("jumpscare").setExecutor(new CommandJumpscare());
|
||||
this.getCommand("kaboom").setExecutor(new CommandKaboom());
|
||||
this.getCommand("ping").setExecutor(new CommandPing());
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class CommandBroadcastMM implements CommandExecutor {
|
||||
private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage();
|
||||
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <message ..>", NamedTextColor.RED));
|
||||
} else {
|
||||
Bukkit.broadcast(MINI_MESSAGE.deserialize(String.join(" ", args)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,15 +1,23 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandBroadcastVanilla implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <message ..>");
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <message ..>",
|
||||
NamedTextColor.RED));
|
||||
} else {
|
||||
Command.broadcastCommandMessage(sender, ChatColor.translateAlternateColorCodes(
|
||||
'&', String.join(" ", args)));
|
||||
|
|
|
@ -1,23 +1,32 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
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;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandClearChat implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
final int maxMessages = 100;
|
||||
Component clearChatComponent = Component.empty();
|
||||
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
for (int i = 0; i < maxMessages; ++i) {
|
||||
onlinePlayer.sendMessage("");
|
||||
}
|
||||
onlinePlayer.sendMessage(ChatColor.DARK_GREEN + "The chat has been cleared");
|
||||
for (int i = 0; i < maxMessages; i++) {
|
||||
clearChatComponent = clearChatComponent
|
||||
.append(Component.newline());
|
||||
}
|
||||
|
||||
Bukkit.getServer().broadcast(clearChatComponent
|
||||
.append(Component
|
||||
.text("The chat has been cleared",
|
||||
NamedTextColor.DARK_GREEN)));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,24 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandConsole implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <message ..>");
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <message ..>",
|
||||
NamedTextColor.RED));
|
||||
} else {
|
||||
Bukkit.dispatchCommand(
|
||||
Bukkit.getConsoleSender(),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
|
@ -8,9 +9,13 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandDestroyEntities implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
int entityCount = 0;
|
||||
int worldCount = 0;
|
||||
|
@ -25,8 +30,9 @@ public final class CommandDestroyEntities implements CommandExecutor {
|
|||
worldCount++;
|
||||
}
|
||||
|
||||
sender.sendMessage("Successfully destroyed " + entityCount + " entities in "
|
||||
+ worldCount + " worlds");
|
||||
sender.sendMessage(Component.text(
|
||||
"Successfully destroyed " + entityCount + " entities in "
|
||||
+ worldCount + " worlds"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
|
@ -9,22 +10,29 @@ import org.bukkit.enchantments.Enchantment;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandEnchantAll implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
final ItemStack item = player.getInventory().getItemInMainHand();
|
||||
|
||||
if (Material.AIR.equals(item.getType())) {
|
||||
player.sendMessage("Please hold an item in your hand to enchant it");
|
||||
player.sendMessage(Component
|
||||
.text("Please hold an item in your hand to enchant it"));
|
||||
} else {
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
item.addUnsafeEnchantment(enchantment, Short.MAX_VALUE);
|
||||
}
|
||||
player.sendMessage("I killed Martin.");
|
||||
player.sendMessage(Component
|
||||
.text("I killed Martin."));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
39
src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java
Normal file
39
src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java
Normal file
|
@ -0,0 +1,39 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class CommandGetJSON implements CommandExecutor {
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <message ..>", NamedTextColor.RED));
|
||||
} else {
|
||||
final String message = String.join(" ", args);
|
||||
Component createdComponent = LegacyComponentSerializer
|
||||
.legacyAmpersand()
|
||||
.deserialize(message);
|
||||
|
||||
String asJson = GsonComponentSerializer.gson().serialize(createdComponent);
|
||||
|
||||
Component feedback = Component.empty()
|
||||
.append(Component.text("Your component as JSON (click to copy): "))
|
||||
.append(Component.text(asJson, NamedTextColor.GREEN))
|
||||
.clickEvent(ClickEvent.copyToClipboard(asJson));
|
||||
|
||||
sender.sendMessage(feedback);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.command.Command;
|
||||
|
@ -9,6 +10,8 @@ import org.bukkit.command.CommandExecutor;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandJumpscare implements CommandExecutor {
|
||||
private void createJumpscare(final Player player) {
|
||||
final int count = 4;
|
||||
|
@ -20,24 +23,31 @@ public final class CommandJumpscare implements CommandExecutor {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <player>");
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <player>",
|
||||
NamedTextColor.RED));
|
||||
} else {
|
||||
if (args[0].equals("*") || args[0].equals("**")) {
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
createJumpscare(onlinePlayer);
|
||||
}
|
||||
sender.sendMessage("Successfully created jumpscare for every player");
|
||||
sender.sendMessage(Component
|
||||
.text("Successfully created jumpscare for every player"));
|
||||
} else {
|
||||
final Player target = Bukkit.getPlayer(args[0]);
|
||||
if (target != null) {
|
||||
createJumpscare(target);
|
||||
sender.sendMessage("Successfully created jumpscare for player \""
|
||||
+ target.getName() + "\"");
|
||||
sender.sendMessage(Component
|
||||
.text("Successfully created jumpscare for player \""
|
||||
+ target.getName() + "\""));
|
||||
} else {
|
||||
sender.sendMessage("Player \"" + args[0] + "\" not found");
|
||||
sender.sendMessage(Component
|
||||
.text("Player \"" + args[0] + "\" not found"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
|
@ -11,9 +10,14 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public final class CommandKaboom implements CommandExecutor {
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
final Player player = (Player) sender;
|
||||
boolean explode = ThreadLocalRandom.current().nextBoolean();
|
||||
|
@ -38,10 +42,10 @@ public final class CommandKaboom implements CommandExecutor {
|
|||
explodeLocation.getBlock().setType(Material.LAVA);
|
||||
}
|
||||
|
||||
player.sendMessage("Forgive me :c");
|
||||
player.sendMessage(Component.text("Forgive me :c"));
|
||||
} else {
|
||||
player.getInventory().setItemInMainHand(new ItemStack(Material.CAKE));
|
||||
player.sendMessage("Have a nice day :)");
|
||||
player.sendMessage(Component.text("Have a nice day :)"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
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;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandPing implements CommandExecutor {
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
Player target;
|
||||
|
||||
|
@ -20,39 +25,39 @@ public final class CommandPing implements CommandExecutor {
|
|||
}
|
||||
|
||||
if (target == null) {
|
||||
sender.sendMessage("Player \"" + args[0] + "\" not found");
|
||||
sender.sendMessage(Component
|
||||
.text("Player \"" + args[0] + "\" not found"));
|
||||
return true;
|
||||
}
|
||||
|
||||
final int ping = target.spigot().getPing();
|
||||
final int d = (int) Math.floor((float) ping / 100);
|
||||
ChatColor highlighting = ChatColor.WHITE;
|
||||
NamedTextColor highlighting = NamedTextColor.WHITE;
|
||||
|
||||
switch (d) {
|
||||
case 0:
|
||||
highlighting = ChatColor.GREEN;
|
||||
highlighting = NamedTextColor.GREEN;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
highlighting = ChatColor.YELLOW;
|
||||
highlighting = NamedTextColor.YELLOW;
|
||||
break;
|
||||
case 5:
|
||||
highlighting = ChatColor.RED;
|
||||
highlighting = NamedTextColor.RED;
|
||||
break;
|
||||
default:
|
||||
if (d > 5) {
|
||||
highlighting = ChatColor.DARK_RED;
|
||||
highlighting = NamedTextColor.DARK_RED;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("Your ping is " + highlighting + ping + "ms.");
|
||||
} else {
|
||||
sender.sendMessage(target.getName() + "'s ping is " + highlighting + ping + "ms.");
|
||||
}
|
||||
sender.sendMessage(Component.text((args.length == 0 ?
|
||||
"Your" : target.getName() + "'s") + " ping is ")
|
||||
.append(Component.text(ping, highlighting))
|
||||
.append(Component.text("ms.", highlighting)));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,49 +1,57 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.File;
|
||||
|
||||
public final class CommandPrefix implements CommandExecutor {
|
||||
private static final File PREFIX_CONFIG_FILE = JavaPlugin
|
||||
.getPlugin(Main.class).getPrefixConfigFile();
|
||||
private static final FileConfiguration PREFIX_CONFIG = JavaPlugin
|
||||
.getPlugin(Main.class).getPrefixConfig();
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command cmd, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command cmd,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
|
||||
try {
|
||||
if (args.length == 0) {
|
||||
player.sendMessage(ChatColor.RED + "Usage: /" + label + " <prefix|off>");
|
||||
player.sendMessage(Component
|
||||
.text("Usage: /" + label + " <prefix|off>",
|
||||
NamedTextColor.RED));
|
||||
} else if ("off".equalsIgnoreCase(args[0])) {
|
||||
PREFIX_CONFIG.set(player.getUniqueId().toString(), null);
|
||||
PREFIX_CONFIG.save(PREFIX_CONFIG_FILE);
|
||||
player.sendMessage("You no longer have a tag");
|
||||
player.sendMessage(Component
|
||||
.text("You no longer have a tag"));
|
||||
} else {
|
||||
PREFIX_CONFIG.set(player.getUniqueId().toString(), String.join(" ", args));
|
||||
PREFIX_CONFIG.save(PREFIX_CONFIG_FILE);
|
||||
player.sendMessage("You now have the tag: "
|
||||
+ ChatColor.translateAlternateColorCodes(
|
||||
'&', String.join(" ", args)));
|
||||
player.sendMessage(Component.text("You now have the tag: ")
|
||||
.append(LegacyComponentSerializer.legacyAmpersand()
|
||||
.deserialize(String.join(" ", args))));
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
player.sendMessage("Something went wrong while saving the prefix. "
|
||||
+ "Please check console.");
|
||||
player.sendMessage(Component
|
||||
.text("Something went wrong while saving the prefix. " +
|
||||
"Please check console."));
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
|
@ -9,15 +10,21 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandPumpkin implements CommandExecutor {
|
||||
private void placePumpkin(final Player player) {
|
||||
player.getInventory().setHelmet(new ItemStack(Material.CARVED_PUMPKIN));
|
||||
}
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <player>");
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <player>",
|
||||
NamedTextColor.RED));
|
||||
} else {
|
||||
if (args[0].equals("*") || args[0].equals("**")) {
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.net.InetAddress;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public final class CommandServerInfo implements CommandExecutor {
|
||||
private void sendInfoMessage(final CommandSender target, final String description,
|
||||
final String value) {
|
||||
target.sendMessage(
|
||||
ChatColor.GRAY + description + ": "
|
||||
+ ChatColor.WHITE + value
|
||||
);
|
||||
Component.text(description, NamedTextColor.GRAY)
|
||||
.append(Component.text(": " + value, NamedTextColor.WHITE)));
|
||||
}
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
try {
|
||||
sendInfoMessage(sender, "Hostname",
|
||||
|
|
|
@ -1,31 +1,39 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import pw.kaboom.extras.helpers.SkinDownloader;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandSkin implements CommandExecutor {
|
||||
private long millis;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
|
||||
final long millisDifference = System.currentTimeMillis() - millis;
|
||||
|
||||
if (args.length == 0) {
|
||||
player.sendMessage(ChatColor.RED + "Usage: /" + label + " <username>");
|
||||
player.sendMessage(Component
|
||||
.text("Usage: /" + label + " <username>",
|
||||
NamedTextColor.RED));
|
||||
} else if (millisDifference <= 2000) {
|
||||
player.sendMessage("Please wait a few seconds before changing your skin");
|
||||
player.sendMessage(Component
|
||||
.text("Please wait a few seconds before changing your skin"));
|
||||
} else {
|
||||
final String name = args[0];
|
||||
final boolean shouldSendMessage = true;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
@ -11,14 +12,20 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandSpawn implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
final World world = Bukkit.getWorld("world");
|
||||
final World defaultWorld = Bukkit.getWorld("world");
|
||||
final World world = (defaultWorld == null) ? Bukkit.getWorlds().get(0) : defaultWorld;
|
||||
final Location spawnLocation = world.getSpawnLocation();
|
||||
final int maxWorldHeight = 256;
|
||||
|
||||
|
@ -34,7 +41,8 @@ public final class CommandSpawn implements CommandExecutor {
|
|||
}
|
||||
}
|
||||
|
||||
player.sendMessage("Successfully moved to spawn");
|
||||
player.sendMessage(Component
|
||||
.text("Successfully moved to spawn"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
|
@ -10,11 +11,16 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.util.BlockIterator;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandSpidey implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
final World world = player.getWorld();
|
||||
|
|
|
@ -1,21 +1,30 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
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;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandTellraw implements CommandExecutor {
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <message ..>");
|
||||
sender.sendMessage(Component
|
||||
.text("Usage: /" + label + " <message ..>", NamedTextColor.RED));
|
||||
} else {
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
onlinePlayer.sendMessage(ChatColor.translateAlternateColorCodes(
|
||||
'&', String.join(" ", args)));
|
||||
final Component message = LegacyComponentSerializer.legacyAmpersand()
|
||||
.deserialize(String.join(" ", args));
|
||||
|
||||
for (Player onlinePlayer: Bukkit.getOnlinePlayers()) {
|
||||
onlinePlayer.sendMessage(message);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package pw.kaboom.extras.commands;
|
||||
|
||||
import com.destroystokyo.paper.profile.PlayerProfile;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
|
@ -8,16 +11,19 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.destroystokyo.paper.profile.PlayerProfile;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CommandUsername implements CommandExecutor {
|
||||
private long millis;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label,
|
||||
public boolean onCommand(final @Nonnull CommandSender sender,
|
||||
final @Nonnull Command command,
|
||||
final @Nonnull String label,
|
||||
final String[] args) {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
sender.sendMessage("Command has to be run by a player");
|
||||
sender.sendMessage(Component
|
||||
.text("Command has to be run by a player"));
|
||||
} else {
|
||||
final Player player = (Player) sender;
|
||||
|
||||
|
@ -28,27 +34,33 @@ public final class CommandUsername implements CommandExecutor {
|
|||
final long millisDifference = System.currentTimeMillis() - millis;
|
||||
|
||||
if (args.length == 0) {
|
||||
player.sendMessage(ChatColor.RED + "Usage: /" + label + " <username>");
|
||||
player.sendMessage(Component
|
||||
.text("Usage: /" + label + " <username>",
|
||||
NamedTextColor.RED));
|
||||
} else if (name.equals(player.getName())) {
|
||||
player.sendMessage("You already have the username \"" + name + "\"");
|
||||
player.sendMessage(Component
|
||||
.text("You already have the username \"" + name + "\""));
|
||||
} else if (millisDifference <= 2000) {
|
||||
player.sendMessage("Please wait a few seconds before changing your username");
|
||||
player.sendMessage(Component
|
||||
.text("Please wait a few seconds before changing your username."));
|
||||
} else {
|
||||
if (Bukkit.getPlayer(name) != null
|
||||
&& Bukkit.getPlayer(name).isOnline()) {
|
||||
player.sendMessage("A player with that username is already logged in");
|
||||
if (Bukkit.getPlayer(name) != null) {
|
||||
player.sendMessage(Component
|
||||
.text("A player with that username is already logged in."));
|
||||
return true;
|
||||
}
|
||||
|
||||
final PlayerProfile profile = player.getPlayerProfile();
|
||||
|
||||
//FIXME Marked for removal
|
||||
profile.setName(name);
|
||||
|
||||
player.setPlayerProfile(profile);
|
||||
|
||||
millis = System.currentTimeMillis();
|
||||
|
||||
player.sendMessage("Successfully set your username to \"" + name + "\"");
|
||||
player.sendMessage(Component
|
||||
.text("Successfully set your username to \"" + name + "\""));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -2,6 +2,7 @@ package pw.kaboom.extras.modules.player;
|
|||
|
||||
import io.papermc.paper.chat.ChatRenderer;
|
||||
import io.papermc.paper.event.player.AsyncChatEvent;
|
||||
import javax.annotation.Nonnull;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
|
@ -12,7 +13,6 @@ import org.bukkit.event.EventHandler;
|
|||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -52,10 +52,10 @@ public final class PlayerChat implements Listener {
|
|||
public static class PlayerChatRenderer implements ChatRenderer {
|
||||
|
||||
@Override
|
||||
public @NotNull Component render(@NotNull Player player,
|
||||
@NotNull Component displayName,
|
||||
@NotNull Component component,
|
||||
@NotNull Audience audience) {
|
||||
public @Nonnull Component render(@Nonnull Player player,
|
||||
@Nonnull Component displayName,
|
||||
@Nonnull Component component,
|
||||
@Nonnull Audience audience) {
|
||||
Component newComponent = Component.empty();
|
||||
final String legacyPrefix = PREFIX_CONFIG.getString(player.getUniqueId().toString());
|
||||
final Component prefix = legacyPrefix == null ?
|
||||
|
|
|
@ -5,12 +5,16 @@ api-version: 1.13
|
|||
version: master
|
||||
|
||||
commands:
|
||||
broadcastminimessage:
|
||||
aliases: [ broadcastmm, bcmm ]
|
||||
description: Broadcasts a deserialized MiniMessage component
|
||||
permission: extras.broadcastminimessage
|
||||
broadcastraw:
|
||||
aliases: [bcraw, tellraw]
|
||||
aliases: [ bcraw, tellraw ]
|
||||
description: Broadcasts raw text to the server
|
||||
permission: extras.broadcastraw
|
||||
broadcastvanilla:
|
||||
aliases: [bcv]
|
||||
aliases: [ bcv ]
|
||||
description: Broadcasts text in vanilla style
|
||||
permission: extras.broadcastvanilla
|
||||
clearchat:
|
||||
|
@ -27,6 +31,10 @@ commands:
|
|||
enchantall:
|
||||
description: Adds every enchantment to a held item
|
||||
permission: extras.enchantall
|
||||
getjson:
|
||||
aliases: [ gj, gmm ]
|
||||
description: Gets the JSON of a deserialized MiniMessage/legacy component
|
||||
permission: extras.getjson
|
||||
jumpscare:
|
||||
aliases: scare
|
||||
description: Scares a player
|
||||
|
|
Loading…
Reference in a new issue