下面列出了怎么用org.bukkit.command.RemoteConsoleCommandSender的API类实例代码及写法,或者点击链接到github查看源代码。
private net.minecraft.command.ICommandSender getListener(CommandSender sender) {
if (sender instanceof Player) {
return ((CraftPlayer) sender).getHandle();
}
if (sender instanceof BlockCommandSender) {
return ((CraftBlockCommandSender) sender).getTileEntity();
}
if (sender instanceof CommandMinecart) {
return ((net.minecraft.entity.EntityMinecartCommandBlock) ((CraftMinecartCommand) sender).getHandle()).func_145822_e();
}
if (sender instanceof RemoteConsoleCommandSender) {
return net.minecraft.network.rcon.RConConsoleSource.instance;
}
if (sender instanceof ConsoleCommandSender) {
return ((CraftServer) sender.getServer()).getServer();
}
return null;
}
@Override
public synchronized void start() {
if (sender instanceof RemoteConsoleCommandSender) {
run();
} else {
super.start();
}
}
@Override
protected void sendMessage(CommandSender sender, String s) {
// we can safely send async for players and the console
if (sender instanceof Player || sender instanceof ConsoleCommandSender || sender instanceof RemoteConsoleCommandSender) {
sender.sendMessage(s);
return;
}
// otherwise, send the message sync
getPlugin().getBootstrap().getScheduler().executeSync(new SyncMessengerAgent(sender, s));
}
public boolean isValidSender(CommandSender sender) {
switch (this) {
case PLAYER_ONLY:
return (sender instanceof Player);
case NO_PLAYER:
return (sender instanceof ConsoleCommandSender || sender instanceof RemoteConsoleCommandSender || sender instanceof BlockCommandSender);
case CONSOLE_ONLY:
return (sender instanceof ConsoleCommandSender || sender instanceof RemoteConsoleCommandSender);
case BLOCK_ONLY:
return (sender instanceof BlockCommandSender);
case DEFAULT:
return true;
}
return false;
}