Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Проверить онлайн ли игрок и существует ли игрок вообще

Xont

Новичок
Пользователь
Баллы
11
Имя в Minecraft
xOnt
Делаю простенький плагин на телепортацию (хотел мой шлак на РБ выложить :D ) . Нужно проверить онлайн ли игрок, и существует ли такой игрок вообще.
Пробовал методом исключения:
if(targetPlayer != null) и через else совершать нужные мне действия - тщетно.
if(targetPlayer == null) - тот же итог
if(targetPlayer.isOnline) - и опять ничего
Пробовал также всячески изворачиваться с else'ами, ничего не помогло. .-.
Ничего не помогает, прошу ткнуть носом.
P.S. Я бы не стал сюда писать просто так, естественно, я уже гуглил, яндексил, искал, думал, пробовал и так и сяк и руки у меня растут не из пятой точки, просто не хватает опыта и знаний
 
Последнее редактирование:
Весь исходный код (все равно бы на GitHub выложил)
Код:
    @SuppressWarnings({ "deprecation", "unused" })
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
        Player player = null;
           if (sender instanceof Player){
               player = (Player) sender; 
           if(player.hasPermission("babyloncandle.use"))
           if(cmd.getName().equalsIgnoreCase("bc") || cmd.getName().equalsIgnoreCase("babyloncandle")){
              if(args.length != 1){
                  sender.sendMessage(ChatColor.AQUA + this.getConfig().getString("BCPrefix") + ChatColor.WHITE + ":" + this.getConfig().getString("BCMessage Not Enough Arguments"));
              } else if(player.getItemInHand().getTypeId() == this.getConfig().getInt("BC Item")){
                  Player targetPlayer = player.getServer().getPlayer(args[0]);
                  Location targetPlayerLocation = targetPlayer.getLocation();
                  if(targetPlayer == null){
                      player.sendMessage(ChatColor.AQUA + this.getConfig().getString("BCPrefix") + ChatColor.WHITE + ":" + this.getConfig().getString("BC Player Does Not Exist"));
              }else if(targetPlayer.isOnline()){
                  player.setItemInHand(null);
                  player.updateInventory();
                  player.teleport(targetPlayerLocation);
                  player.sendMessage(ChatColor.AQUA + this.getConfig().getString("BCPrefix") + ChatColor.WHITE + ":" + this.getConfig().getString("BCMessage Successful Teleport" + " " + targetPlayer.getName()));
                  return true;
                  } else{ 
                  player.sendMessage(ChatColor.AQUA + this.getConfig().getString("BCPrefix") + ChatColor.WHITE + ":" + this.getConfig().getString("BCMessage This Player Offline"));
                  }
              } 
           } 
           } else {
              sender.sendMessage("[BabylonCandle]: You should be a player!");
           }
           return false;}
 
Делаю простенький плагин на телепортацию (хотел мой шлак на РБ выложить :D ) . Нужно проверить онлайн ли игрок, и существует ли такой игрок вообще.
Пробовал методом исключения:
if(targetPlayer != null) и через else совершать нужные мне действия - тщетно.
if(targetPlayer == null) - тот же итог
if(targetPlayer.isOnline) - и опять ничего
Пробовал также всячески изворачиваться с else'ами, ничего не помогло. .-.
Ничего не помогает, прошу ткнуть носом.
P.S. Я бы не стал сюда писать просто так, естественно, я уже гуглил, яндексил, искал, думал, пробовал и так и сяк и руки у меня растут не из пятой точки, просто не хватает опыта и знаний
Проблему то разъясните, что подразумевается под "ничего" при проверке?
 
if(Bukkit.getOfflinePlayer(targetPlayer).isOnline() == true)
Whawhawhawhah...

А вообще я всегда юзаю
null != player и все работает как часы.
А чтоб не проверять в каждом действии - проверяйте где-то выше
 

Поделиться этой страницей

Назад
Верх