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..e4f8a0d14ae66468bbb0a5d6bf9c1ee417dc866c --- /dev/null +++ b/src/main/java/org/bukkit/event/command/UnknownCommandEvent.java @@ -0,0 +1,110 @@ +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.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 handlers = new HandlerList(); + @NotNull private CommandSender sender; + @NotNull private String commandLine; + @Nullable private Component message; + + 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 sender; + } + + /** + * Gets the command that was send + *

+ * + * @return Command sent + */ + @NotNull + public String getCommandLine() { + return 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 null to avoid any message being sent + * + * @param message the message to be returned, or 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 null to avoid any message being sent + * + * @param message the message to be returned, or null + */ + public void message(@Nullable Component message) { + this.message = message; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} +