spad
本帖最后由 spad 于 2020-5-2 20:41 编辑
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
     if (cmd.getName().equalsIgnoreCase("KillPlayer")) {
         Player target = sender.getServer().getPlayer(args[0]);
          // 确保玩家在线.
         if (target == null) {
             sender.sendMessage(args[0] + " is not currently online.");
             return true;
         }
         target.setHealth(0);
     }
     return false;
}


上面 Player target = sender.getServer().getPlayer(args[0]); 这行是怎嬷操作的

sender 有继承自 Player 这个类别?getServer 是个静态方法吗?

然后我看sender 这个类也只有getServer 这个方法 getPlayer(args[0]) 后面这串哪来的?



南柯郡守
Player target = sender.getServer().getPlayer(args[0]);
sender是指发出指令的主体(CommandSender)  一般分为 控制台(即后台) 和 玩家(Player)
getServer()指获得正在运行的这个服务器 再往后这个gerPlayer()已经是Server这个类的方法了

getServer 是个静态方法吗?

该方法没有用static修饰

William_Shi
getServer返回server对象
server这个类实现getplayer方法

spad
南柯郡守 发表于 2020-5-2 21:01
Player target = sender.getServer().getPlayer(args[0]);
sender是指发出指令的主体(CommandSender)  一般 ...

这个是java基础 哪部份的知识点?
我只知道 静态方法好像可以直接调用
这麽玩的我还没看过

南柯郡守
面对对象部分(滑稽

我也是个半吊子

自己明白但要讲明白就难了

静态方法可以用类名.方法名直接调用
没有声明静态的需要先new一个类

比如List<String> list = new ArrayList<String>();
然后 list的方法就是非静态的  用完就没了

比如list.get(0)   这个get方法是非静态的  直接ArrayList<>().get();是行不通的

第一页 上一页 下一页 最后一页