mirror of https://github.com/Minestom/Minestom.git
update demos
This commit is contained in:
parent
f2897eedca
commit
35f9161d19
|
@ -1,14 +1,12 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.minestom.server.chat.ChatColor;
|
||||
import net.minestom.server.chat.ColoredText;
|
||||
import net.kyori.adventure.inventory.Book;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.item.metadata.WrittenBookMeta;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BookCommand extends Command {
|
||||
public BookCommand() {
|
||||
|
@ -21,7 +19,7 @@ public class BookCommand extends Command {
|
|||
|
||||
private boolean playerCondition(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for players");
|
||||
sender.sendMessage(Component.text("The command is only available for players"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -30,16 +28,11 @@ public class BookCommand extends Command {
|
|||
private void execute(CommandSender sender, CommandContext context) {
|
||||
Player player = sender.asPlayer();
|
||||
|
||||
final WrittenBookMeta bookMeta = new WrittenBookMeta();
|
||||
bookMeta.setAuthor(player.getUsername());
|
||||
bookMeta.setGeneration(WrittenBookMeta.WrittenBookGeneration.ORIGINAL);
|
||||
bookMeta.setTitle(player.getUsername() + "'s Book");
|
||||
bookMeta.setPages(List.of(
|
||||
ColoredText.of(ChatColor.RED, "Page one"),
|
||||
ColoredText.of(ChatColor.BRIGHT_GREEN, "Page two"),
|
||||
ColoredText.of(ChatColor.BLUE, "Page three")
|
||||
));
|
||||
|
||||
player.openBook(bookMeta);
|
||||
player.openBook(Book.builder()
|
||||
.author(Component.text(player.getUsername()))
|
||||
.title(Component.text(player.getUsername() + "'s Book"))
|
||||
.pages(Component.text("Page one", NamedTextColor.RED),
|
||||
Component.text("Page two", NamedTextColor.GREEN),
|
||||
Component.text("Page three", NamedTextColor.BLUE)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandProcessor;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
|
@ -38,11 +39,11 @@ public class DimensionCommand implements CommandProcessor {
|
|||
|
||||
Optional<Instance> targetInstance = MinecraftServer.getInstanceManager().getInstances().stream().filter(in -> in.getDimensionType() == targetDimensionType).findFirst();
|
||||
if (targetInstance.isPresent()) {
|
||||
player.sendMessage("You were in " + instance.getDimensionType());
|
||||
player.sendMessage(Component.text("You were in " + instance.getDimensionType()));
|
||||
player.setInstance(targetInstance.get());
|
||||
player.sendMessage("You are now in " + targetDimensionType);
|
||||
player.sendMessage(Component.text("You are now in " + targetDimensionType));
|
||||
} else {
|
||||
player.sendMessage("Could not find instance with dimension " + targetDimensionType);
|
||||
player.sendMessage(Component.text("Could not find instance with dimension " + targetDimensionType));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
|
@ -36,7 +38,9 @@ public class GamemodeCommand extends Command {
|
|||
}
|
||||
|
||||
private void usage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Usage: /gamemode [player] <gamemode>");
|
||||
sender.sendMessage(Component.text("Usage: /gamemode [player] <gamemode>")
|
||||
.hoverEvent(Component.text("Click to get this command."))
|
||||
.clickEvent(ClickEvent.suggestCommand("/gamemode player gamemode")));
|
||||
}
|
||||
|
||||
private void executeOnSelf(CommandSender sender, CommandContext context) {
|
||||
|
@ -45,7 +49,7 @@ public class GamemodeCommand extends Command {
|
|||
GameMode gamemode = context.get("gamemode");
|
||||
assert gamemode != null; // mode is not supposed to be null, because gamemodeName will be valid
|
||||
player.setGameMode(gamemode);
|
||||
player.sendMessage("You are now playing in " + gamemode.toString().toLowerCase());
|
||||
player.sendMessage(Component.text("You are now playing in " + gamemode.toString().toLowerCase()));
|
||||
}
|
||||
|
||||
private void executeOnOther(CommandSender sender, CommandContext context) {
|
||||
|
@ -55,20 +59,20 @@ public class GamemodeCommand extends Command {
|
|||
assert gamemode != null; // mode is not supposed to be null, because gamemodeName will be valid
|
||||
assert target != null;
|
||||
target.setGameMode(gamemode);
|
||||
target.sendMessage("You are now playing in " + gamemode.toString().toLowerCase());
|
||||
target.sendMessage(Component.text("You are now playing in " + gamemode.toString().toLowerCase()));
|
||||
}
|
||||
|
||||
private void targetCallback(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("'" + exception.getInput() + "' is not a valid player name.");
|
||||
sender.sendMessage(Component.text("'" + exception.getInput() + "' is not a valid player name."));
|
||||
}
|
||||
|
||||
private void gameModeCallback(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("'" + exception.getInput() + "' is not a valid gamemode!");
|
||||
sender.sendMessage(Component.text("'" + exception.getInput() + "' is not a valid gamemode!"));
|
||||
}
|
||||
|
||||
private boolean isAllowed(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for player");
|
||||
sender.sendMessage(Component.text("The command is only available for player"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
|
@ -30,18 +31,18 @@ public class HealthCommand extends Command {
|
|||
|
||||
private boolean condition(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for player");
|
||||
sender.sendMessage(Component.text("The command is only available for player"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void defaultExecutor(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Correct usage: health [set/add] [number]");
|
||||
sender.sendMessage(Component.text("Correct usage: health [set/add] [number]"));
|
||||
}
|
||||
|
||||
private void onModeError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'set' or 'add'");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'set' or 'add'"));
|
||||
}
|
||||
|
||||
private void onValueError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
|
@ -49,16 +50,16 @@ public class HealthCommand extends Command {
|
|||
final String input = exception.getInput();
|
||||
switch (error) {
|
||||
case ArgumentNumber.NOT_NUMBER_ERROR:
|
||||
sender.sendMessage("SYNTAX ERROR: '" + input + "' isn't a number!");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + input + "' isn't a number!"));
|
||||
break;
|
||||
case ArgumentNumber.RANGE_ERROR:
|
||||
sender.sendMessage("SYNTAX ERROR: " + input + " is not between 0 and 100");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: " + input + " is not between 0 and 100"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void sendSuggestionMessage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("/health " + context.get("mode") + " [Integer]");
|
||||
sender.sendMessage(Component.text("/health " + args.get("mode") + " [Integer]"));
|
||||
}
|
||||
|
||||
private void onHealthCommand(CommandSender sender, CommandContext context) {
|
||||
|
@ -75,7 +76,7 @@ public class HealthCommand extends Command {
|
|||
break;
|
||||
}
|
||||
|
||||
player.sendMessage("You have now " + player.getHealth() + " health");
|
||||
player.sendMessage(Component.text("You have now " + player.getHealth() + " health"));
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
|
@ -31,7 +32,7 @@ public class HorseCommand extends Command {
|
|||
|
||||
private boolean condition(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for player");
|
||||
sender.sendMessage(Component.text("The command is only available for player"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -42,21 +43,21 @@ public class HorseCommand extends Command {
|
|||
}
|
||||
|
||||
private void onBabyError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'true' or 'false'");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'true' or 'false'"));
|
||||
}
|
||||
|
||||
private void onMarkingError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
String values = Stream.of(HorseMeta.Marking.values())
|
||||
.map(value -> "'" + value.name().toLowerCase(Locale.ROOT) + "'")
|
||||
.collect(Collectors.joining(", "));
|
||||
sender.sendMessage("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by " + values + ".");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by " + values + "."));
|
||||
}
|
||||
|
||||
private void onColorError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
String values = Stream.of(HorseMeta.Color.values())
|
||||
.map(value -> "'" + value.name().toLowerCase(Locale.ROOT) + "'")
|
||||
.collect(Collectors.joining(", "));
|
||||
sender.sendMessage("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by " + values + ".");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by " + values + "."));
|
||||
}
|
||||
|
||||
private void onHorseCommand(CommandSender sender, CommandContext context) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -26,42 +27,42 @@ public class LoadExtensionCommand extends Command {
|
|||
}
|
||||
|
||||
private void usage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Usage: /load <extension file name>");
|
||||
sender.sendMessage(Component.text("Usage: /load <extension file name>"));
|
||||
}
|
||||
|
||||
private void execute(CommandSender sender, CommandContext context) {
|
||||
String name = join(context.getStringArray("extensionName"));
|
||||
sender.sendMessage("extensionFile = " + name + "....");
|
||||
sender.sendMessage(Component.text("extensionFile = "+name+"...."));
|
||||
|
||||
ExtensionManager extensionManager = MinecraftServer.getExtensionManager();
|
||||
Path extensionFolder = extensionManager.getExtensionFolder().toPath().toAbsolutePath();
|
||||
Path extensionJar = extensionFolder.resolve(name);
|
||||
try {
|
||||
if (!extensionJar.toFile().getCanonicalPath().startsWith(extensionFolder.toFile().getCanonicalPath())) {
|
||||
sender.sendMessage("File name '" + name + "' does not represent a file inside the extensions folder. Will not load");
|
||||
if(!extensionJar.toFile().getCanonicalPath().startsWith(extensionFolder.toFile().getCanonicalPath())) {
|
||||
sender.sendMessage(Component.text("File name '"+name+"' does not represent a file inside the extensions folder. Will not load"));
|
||||
return;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
sender.sendMessage("Failed to load extension: " + e.getMessage());
|
||||
sender.sendMessage(Component.text("Failed to load extension: "+e.getMessage()));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
boolean managed = extensionManager.loadDynamicExtension(extensionJar.toFile());
|
||||
if (managed) {
|
||||
sender.sendMessage("Extension loaded!");
|
||||
if(managed) {
|
||||
sender.sendMessage(Component.text("Extension loaded!"));
|
||||
} else {
|
||||
sender.sendMessage("Failed to load extension, check your logs.");
|
||||
sender.sendMessage(Component.text("Failed to load extension, check your logs."));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
sender.sendMessage("Failed to load extension: " + e.getMessage());
|
||||
sender.sendMessage(Component.text("Failed to load extension: "+e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
private void extensionCallback(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("'" + exception.getInput() + "' is not a valid extension name!");
|
||||
sender.sendMessage(Component.text("'" + exception.getInput() + "' is not a valid extension name!"));
|
||||
}
|
||||
|
||||
private String join(String[] extensionNameParts) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -19,17 +20,17 @@ public class PlayersCommand extends Command {
|
|||
private void usage(CommandSender sender, CommandContext context) {
|
||||
final Collection<Player> players = MinecraftServer.getConnectionManager().getOnlinePlayers();
|
||||
final int playerCount = players.size();
|
||||
sender.sendMessage("Total players: " + playerCount);
|
||||
sender.sendMessage(Component.text("Total players: " + playerCount));
|
||||
final int limit = 15;
|
||||
if (playerCount <= limit) {
|
||||
for (final Player player : players) {
|
||||
sender.sendMessage(player.getUsername());
|
||||
sender.sendMessage(Component.text(player.getUsername()));
|
||||
}
|
||||
} else {
|
||||
for (final Player player : players.stream().limit(limit).collect(Collectors.toList())) {
|
||||
sender.sendMessage(player.getUsername());
|
||||
sender.sendMessage(Component.text(player.getUsername()));
|
||||
}
|
||||
sender.sendMessage("...");
|
||||
sender.sendMessage(Component.text("..."));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -17,7 +18,7 @@ public class PotionCommand extends Command {
|
|||
setCondition(this::condition);
|
||||
|
||||
setDefaultExecutor(((sender, args) -> {
|
||||
sender.sendMessage("Usage: /potion [type] [duration (seconds)]");
|
||||
sender.sendMessage(Component.text("Usage: /potion [type] [duration (seconds)]"));
|
||||
}));
|
||||
|
||||
var potionArg = ArgumentType.Potion("potion");
|
||||
|
@ -28,7 +29,7 @@ public class PotionCommand extends Command {
|
|||
|
||||
private boolean condition(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for players");
|
||||
sender.sendMessage(Component.text("The command is only available for players"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -39,7 +40,7 @@ public class PotionCommand extends Command {
|
|||
final PotionEffect potion = context.get("potion");
|
||||
final int duration = context.get("duration");
|
||||
|
||||
player.sendMessage(player.getActiveEffects().toString());
|
||||
player.sendMessage(Component.text(player.getActiveEffects().toString()));
|
||||
player.addEffect(new Potion(
|
||||
potion,
|
||||
(byte) 0,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -42,12 +43,12 @@ public class ReloadExtensionCommand extends Command {
|
|||
}
|
||||
|
||||
private void usage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Usage: /reload <extension name>");
|
||||
sender.sendMessage(Component.text("Usage: /reload <extension name>"));
|
||||
}
|
||||
|
||||
private void execute(CommandSender sender, CommandContext context) {
|
||||
String name = join(context.getStringArray("extensionName"));
|
||||
sender.sendMessage("extensionName = " + name + "....");
|
||||
sender.sendMessage(Component.text("extensionName = " + name + "...."));
|
||||
|
||||
ExtensionManager extensionManager = MinecraftServer.getExtensionManager();
|
||||
Extension ext = extensionManager.getExtension(name);
|
||||
|
@ -68,12 +69,12 @@ public class ReloadExtensionCommand extends Command {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("Extension '" + name + "' does not exist.");
|
||||
sender.sendMessage(Component.text("Extension '" + name + "' does not exist."));
|
||||
}
|
||||
}
|
||||
|
||||
private void gameModeCallback(CommandSender sender, ArgumentSyntaxException argumentSyntaxException) {
|
||||
sender.sendMessage("'" + argumentSyntaxException.getInput() + "' is not a valid extension name!");
|
||||
sender.sendMessage(Component.text("'" + argumentSyntaxException.getInput() + "' is not a valid extension name!"));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
|
@ -25,18 +26,18 @@ public class ShootCommand extends Command {
|
|||
|
||||
private boolean condition(CommandSender sender, String commandString) {
|
||||
if (!sender.isPlayer()) {
|
||||
sender.sendMessage("The command is only available for player");
|
||||
sender.sendMessage(Component.text("The command is only available for player"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void defaultExecutor(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Correct usage: shoot [default/spectral/colored]");
|
||||
sender.sendMessage(Component.text("Correct usage: shoot [default/spectral/colored]"));
|
||||
}
|
||||
|
||||
private void onTypeError(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'default', 'spectral' or 'colored'");
|
||||
sender.sendMessage(Component.text("SYNTAX ERROR: '" + exception.getInput() + "' should be replaced by 'default', 'spectral' or 'colored'"));
|
||||
}
|
||||
|
||||
private void onShootCommand(CommandSender sender, CommandContext context) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -14,7 +15,7 @@ public class TeleportCommand extends Command {
|
|||
public TeleportCommand() {
|
||||
super("tp");
|
||||
|
||||
setDefaultExecutor((source, context) -> source.sendMessage("Usage: /tp x y z"));
|
||||
setDefaultExecutor((source, context) -> source.sendMessage(Component.text("Usage: /tp x y z")));
|
||||
|
||||
var posArg = ArgumentType.RelativeVec3("pos");
|
||||
var playerArg = ArgumentType.Word("player");
|
||||
|
@ -30,7 +31,7 @@ public class TeleportCommand extends Command {
|
|||
Player player = (Player) sender;
|
||||
player.teleport(pl.getPosition());
|
||||
}
|
||||
sender.sendMessage("Teleported to player " + playerName);
|
||||
sender.sendMessage(Component.text("Teleported to player "+playerName));
|
||||
}
|
||||
|
||||
private void onPositionTeleport(CommandSender sender, CommandContext context) {
|
||||
|
@ -40,7 +41,7 @@ public class TeleportCommand extends Command {
|
|||
final Position position = relativeVec.from(player).toPosition();
|
||||
|
||||
player.teleport(position);
|
||||
player.sendMessage("You have been teleported to " + position);
|
||||
player.sendMessage(Component.text("You have been teleported to " + position));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.minestom.server.chat.JsonMessage;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
|
@ -22,7 +24,7 @@ public class TestCommand extends Command {
|
|||
}
|
||||
|
||||
private void usage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Incorrect usage");
|
||||
sender.sendMessage(Component.text("Incorrect usage"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package demo.commands;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.JsonParser;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import net.minestom.server.chat.ColoredText;
|
||||
import net.minestom.server.chat.JsonMessage;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
|
@ -15,7 +17,7 @@ public class TitleCommand extends Command {
|
|||
public TitleCommand() {
|
||||
super("title");
|
||||
setDefaultExecutor((source, args) -> {
|
||||
source.sendMessage("Unknown syntax (note: title must be quoted)");
|
||||
source.sendMessage(Component.text("Unknown syntax (note: title must be quoted)"));
|
||||
});
|
||||
|
||||
var content = ArgumentType.String("content");
|
||||
|
@ -25,20 +27,13 @@ public class TitleCommand extends Command {
|
|||
|
||||
private void handleTitle(CommandSender source, CommandContext context) {
|
||||
if (!source.isPlayer()) {
|
||||
source.sendMessage("Only players can run this command!");
|
||||
source.sendMessage(Component.text("Only players can run this command!"));
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = source.asPlayer();
|
||||
String titleContent = context.get("content");
|
||||
|
||||
player.sendTitleTime(10, 100, 10);
|
||||
try {
|
||||
JsonElement parsed = JsonParser.parseString(titleContent);
|
||||
JsonMessage message = new JsonMessage.RawJsonMessage(parsed.getAsJsonObject());
|
||||
player.sendTitleMessage(message);
|
||||
} catch (JsonParseException | IllegalStateException ignored) {
|
||||
player.sendTitleMessage(ColoredText.of(titleContent));
|
||||
}
|
||||
player.showTitle(Title.title(Component.text(titleContent), Component.empty(), Title.DEFAULT_TIMES));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
|
@ -30,12 +31,12 @@ public class UnloadExtensionCommand extends Command {
|
|||
}
|
||||
|
||||
private void usage(CommandSender sender, CommandContext context) {
|
||||
sender.sendMessage("Usage: /unload <extension name>");
|
||||
sender.sendMessage(Component.text("Usage: /unload <extension name>"));
|
||||
}
|
||||
|
||||
private void execute(CommandSender sender, CommandContext context) {
|
||||
String name = join(context.getStringArray("extensionName"));
|
||||
sender.sendMessage("extensionName = " + name + "....");
|
||||
sender.sendMessage(Component.text("extensionName = " + name + "...."));
|
||||
|
||||
ExtensionManager extensionManager = MinecraftServer.getExtensionManager();
|
||||
Extension ext = extensionManager.getExtension(name);
|
||||
|
@ -56,12 +57,12 @@ public class UnloadExtensionCommand extends Command {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("Extension '" + name + "' does not exist.");
|
||||
sender.sendMessage(Component.text("Extension '" + name + "' does not exist."));
|
||||
}
|
||||
}
|
||||
|
||||
private void extensionCallback(CommandSender sender, ArgumentSyntaxException exception) {
|
||||
sender.sendMessage("'" + exception.getInput() + "' is not a valid extension name!");
|
||||
sender.sendMessage(Component.text("'" + exception.getInput() + "' is not a valid extension name!"));
|
||||
}
|
||||
|
||||
private String join(String[] extensionNameParts) {
|
||||
|
|
Loading…
Reference in New Issue