All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.command.CommandSender Maven / Gradle / Ivy

package cn.nukkit.command;

import cn.nukkit.Player;
import cn.nukkit.Server;
import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import cn.nukkit.entity.Entity;
import cn.nukkit.lang.CommandOutputContainer;
import cn.nukkit.lang.TextContainer;
import cn.nukkit.level.Location;
import cn.nukkit.level.Position;
import cn.nukkit.permission.Permissible;

import org.jetbrains.annotations.NotNull;

import javax.annotation.Nullable;

/**
 * 能发送命令的对象.
* 可以是一个玩家或者一个控制台或者一个实体或者其他. *

* Who sends commands.
* That can be a player or a console. * * @author MagicDroidX(code) @ Nukkit Project * @author 粉鞋大妈(javadoc) @ Nukkit Project * @author smartcmd(code) @ PowerNukkitX Project * @see cn.nukkit.command.CommandExecutor#onCommand * @since Nukkit 1.0 | Nukkit API 1.0.0 */ public interface CommandSender extends Permissible { /** * 给命令发送者返回信息.

* Sends a message to the command sender. * * @param message 要发送的信息.
Message to send. * @see cn.nukkit.utils.TextFormat * @since Nukkit 1.0 | Nukkit API 1.0.0 */ void sendMessage(String message); /** * 给命令发送者返回信息.

* Sends a message to the command sender. * * @param message 要发送的信息.
Message to send. * @since Nukkit 1.0 | Nukkit API 1.0.0 */ void sendMessage(TextContainer message); /** * Send command output. * * @param container the container */ @PowerNukkitXOnly @Since("1.19.60-r1") void sendCommandOutput(CommandOutputContainer container); /** * 返回命令发送者所在的服务器.

* Returns the server of the command sender. * * @return 命令发送者所在的服务器.
the server of the command sender. * @since Nukkit 1.0 | Nukkit API 1.0.0 */ Server getServer(); /** * 返回命令发送者的名称.
* 如果命令发送者是一个玩家,将会返回他的玩家名字(name)不是显示名字(display name).
* 如果命令发送者是控制台,将会返回{@code "CONSOLE"}.
* 当你需要判断命令的执行者是不是控制台时,可以用这个:
* {@code if(sender instanceof ConsoleCommandSender) .....;} *

* Returns the name of the command sender.
* If this command sender is a player, will return his/her player name(not display name).
* If it is a console, will return {@code "CONSOLE"}.
* When you need to determine if the sender is a console, use this:
* {@code if(sender instanceof ConsoleCommandSender) .....;} * * @return 命令发送者的名称.
the name of the command sender. * @see cn.nukkit.Player#getName() * @see cn.nukkit.command.ConsoleCommandSender#getName() * @see cn.nukkit.plugin.PluginDescription * @since Nukkit 1.0 | Nukkit API 1.0.0 */ @NotNull String getName(); /** * @return 发送者是否为玩家
whether the sender is an player */ boolean isPlayer(); /** * 请使用这个方法来检查发送者是否是一个实体,而不是使用代码{@code "xxx instanceof Entity"}.
* 因为发送者可能不是{@code "Entity"}的一个实例,但实际上它是以一个实体的身份执行命令(例如:{@code "ExecutorCommandSender"}) *

* please use this method to check whether the sender is an entity instead of using code {@code "xxx instanceof Entity"}
* because the sender may not an instance of {@code "Entity"} but in fact it is executing commands identity as an entity(eg: {@code "ExecutorCommandSender"}) * * @return 发送者是否为实体
whether the sender is an entity */ @PowerNukkitXOnly @Since("1.6.0.0-PNX") default boolean isEntity() { return false; } /** * 如果发送者是一个实体,返回执行该命令的实体. *

* return the entity who execute the command if the sender is a entity. * * @return 实体对象
Entity instance */ @PowerNukkitXOnly @Since("1.6.0.0-PNX") @Nullable default Entity asEntity() { return null; } /** * 如果发送者是一个玩家,返回执行该命令的玩家. *

* return the player who execute the command if the sender is a player. * * @return 玩家对象
Player instance */ @PowerNukkitXOnly @Since("1.6.0.0-PNX") @Nullable default Player asPlayer() { return null; } /** * @return 返回发送者的Position
return the sender's position. */ @PowerNukkitXOnly @Since("1.6.0.0-PNX") @NotNull default Position getPosition() { return new Position(0, 0, 0, Server.getInstance().getDefaultLevel()); } /** * @return 返回发送者克隆过的Location
return the sender's location. */ @PowerNukkitXOnly @Since("1.6.0.0-PNX") @NotNull default Location getLocation() { return new Location(0, 0, 0, Server.getInstance().getDefaultLevel()); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy