From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sweepyoface Date: Sat, 17 Jun 2017 18:48:06 -0400 Subject: [PATCH] Add UnknownCommandEvent diff --git a/src/main/java/org/bukkit/event/command/UnknownCommandEvent.java b/src/main/java/org/bukkit/event/command/UnknownCommandEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 --- /dev/null +++ b/src/main/java/org/bukkit/event/command/UnknownCommandEvent.java @@ -0,0 +0,0 @@ +package org.bukkit.event.command; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import org.bukkit.command.CommandSender; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Thrown when a player executes a command that is not defined + */ +public class UnknownCommandEvent extends Event { + + private static final HandlerList HANDLER_LIST = new HandlerList(); + + @NotNull private final CommandSender sender; + @NotNull private final String commandLine; + @Nullable private Component message; + + @ApiStatus.Internal + public UnknownCommandEvent(@NotNull final CommandSender sender, @NotNull final String commandLine, @Nullable final Component message) { + super(false); + this.sender = sender; + this.commandLine = commandLine; + this.message = message; + } + + /** + * Gets the CommandSender or ConsoleCommandSender + * + * @return Sender of the command + */ + @NotNull + public CommandSender getSender() { + return this.sender; + } + + /** + * Gets the command that was sent + * + * @return Command sent + */ + @NotNull + public String getCommandLine() { + return this.commandLine; + } + + /** + * Gets message that will be returned + * + * @return Unknown command message + * @deprecated use {@link #message()} + */ + @Nullable + @Deprecated + public String getMessage() { + return this.message == null ? null : LegacyComponentSerializer.legacySection().serialize(this.message); + } + + /** + * Sets message that will be returned + *

+ * Set to {@code null} to avoid any message being sent + * + * @param message the message to be returned, or {@code null} + * @deprecated use {@link #message(Component)} + */ + @Deprecated + public void setMessage(@Nullable String message) { + this.message(message == null ? null : LegacyComponentSerializer.legacySection().deserialize(message)); + } + + /** + * Gets message that will be returned + * + * @return Unknown command message + */ + @Nullable + @Contract(pure = true) + public Component message() { + return this.message; + } + + /** + * Sets message that will be returned + *

+ * Set to {@code null} to avoid any message being sent + * + * @param message the message to be returned, or {@code null} + */ + public void message(@Nullable Component message) { + this.message = message; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return HANDLER_LIST; + } + + @NotNull + public static HandlerList getHandlerList() { + return HANDLER_LIST; + } +} +