2014-02-22 161 views
-3

我是使用Java进行编程的新手,并希望使用If语句将消息从客户端发送到服务器。尝试使用套接字向Bukkit服务器发送命令

因此,我正在开发一个Bukkit插件,它将在没有BungeeCord的服务器上使用。我想要做的是当有人发送我的插件识别的命令(例如:在服务器1上)时,我希望它在该服务器上执行并将命令发送到另一个服务器以执行它。

if (cmd.equalsIgnoreCase("OTWG")) 
{ 
    if (args[0].equalsIgnoreCase("kick")) 
    { 
    if (sender instanceof Player) 
    { // prevents possible NPE 
     if (sender.hasPermission("net.OTWG.kick")) 
     { 
     if (args.length == 1) 
     { 
      sender.sendMessage(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "Please enter a players name!"); 
      return true; 
     } 
     else if (args.length >= 2) 
     { // Corrected from: args.length > 1 
      Player target = Bukkit.getServer().getPlayerExact(args[1]); 
      if (target != null) 
      { // prevents possible NPE 
      target.kickPlayer(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "You were kicked by " + sender.getName()); 
      Bukkit.getServer().broadcastMessage(ChatColor.DARK_RED + "[OTWG]" + ChatColor.GRAY + "The player " + target.getName() + " was kicked by " + sender.getName()); 
      return true; 
      } 
     } 
     } 
     else 
     { 
     sender.sendMessage(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "You do not have the permissions to do this action."); 
     } 
    } 
    else 
    { 
     if (sender.hasPermission("net.OTWG.kick")) 
     { 
     if (args.length == 1) 
     { 
      sender.sendMessage(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "Please enter a players name!"); 
      return true; 
     } 
     else if (args.length >= 2) 
     { // Corrected from: args.length > 1 
      Player target = Bukkit.getServer().getPlayerExact(args[1]); 
      if (target != null) 
      { // prevents possible NPE 
      target.kickPlayer(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "You were kicked by " + sender.getName()); 
      Bukkit.getServer().broadcastMessage(ChatColor.DARK_RED + "[OTWG]" + ChatColor.GRAY + "The player " + target.getName() + " was kicked by " + sender.getName()); 
      return true; 
      } 
     } 
     } 
     else 
     { 
     sender.sendMessage(ChatColor.DARK_RED + "[OTWG] " + ChatColor.GRAY + "You do not have the permissions to do this action."); 
     } 
    } 
    } 
} 

所以当,例如,有人发送踢命令,而该人是在其他服务器上,它会发送命令Ø其他服务器,然后服务器会执行它。

现在我的问题。

当我说出(例如:/ OTWG kick {Player})时,我有一些麻烦,它会将它发送给其他服务器以执行它。

我该怎么做呢?

+3

'想用客户端发送消息到服务器使用If Statements'什么?我不确定你的意思。你能提供更多的信息,像一些伪代码吗? – Pshemo

+0

http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html – Javier

+0

你可以用ifs和gotos做所有事情,但通常使用起来更容易,而其他构造太! – isnot2bad

回答

1

我不认为这是可能的使用BungeeCord之外,除了写入网站,并从其他服务器读取该网站,但我不是一个网络程序员,所以我不知道如何去做。对不起,不是很具描述性。

相关问题