berry64
本帖最后由 berry64 于 2018-7-15 18:15 编辑

如题,bc插件如何向指定Server实例发送指令,是要使用.sendData吗?如果是要如何使用,求详细
还有,bungeecord插件如何从proxiedplayer实例获取该玩家是否为当前服务器的op?

顺便厚颜无耻再问问题: [编程求助] CB/spigot后座力&雷电效果求助

qq111222sb
dispatchCommand(CommandSender sender, java.lang.String commandLine) ,第一个参数填指令发送者,第二个参数填指令。
player.isOp获取是否为OP

b站浅瞳
MCBBS有你更精彩

berry64
qq111222sb 发表于 2018-7-15 18:49
dispatchCommand(CommandSender sender, java.lang.String commandLine) ,第一个参数填指令发送者,第二个 ...

bungeecord插件老兄

Aeva
本帖最后由 Aeva 于 2018-7-19 16:28 编辑

插件消息频道 BungeeCord向Bukkit执行命令(目标服务器需要至少一名玩家在线,否则不起作用)
  1. //Bukkit
  2. public class Main extends JavaPlugin implements PluginMessageListener{
  3.         public void onEnable(){
  4.                 getServer().getMessenger().registerOutgoingPluginChannel(this, "BCCMD");
  5.                 getServer().getMessenger().registerIncomingPluginChannel(this, "BCCMD", this);
  6.         }
  7.   
  8.         public void onPluginMessageReceived(String channel, Player player, byte[] message){
  9.                 if (channel.equals("BCCMD")){
  10.                         String cmd = new String(message);
  11.                         getLogger().info("执行命令: " + cmd);
  12.                         Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
  13.                 }
  14.         }
  15. }
复制代码
  1. //BungeeCord
  2. private void sendCmd(ServerInfo server, String cmd){
  3.         server.sendData("BCCMD", cmd.getBytes());
  4. }
复制代码

判断是不是OP的话直接获取该服务器下的 ops.json 进行判断就行