Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Xont, 13 янв 2015.

  1. Автор темы
    Xont

    Xont Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    xOnt
    Делаю простенький плагин на телепортацию (хотел мой шлак на РБ выложить :D ) . Нужно проверить онлайн ли игрок, и существует ли такой игрок вообще.
    Пробовал методом исключения:
    if(targetPlayer != null) и через else совершать нужные мне действия - тщетно.
    if(targetPlayer == null) - тот же итог
    if(targetPlayer.isOnline) - и опять ничего
    Пробовал также всячески изворачиваться с else'ами, ничего не помогло. .-.
    Ничего не помогает, прошу ткнуть носом.
    P.S. Я бы не стал сюда писать просто так, естественно, я уже гуглил, яндексил, искал, думал, пробовал и так и сяк и руки у меня растут не из пятой точки, просто не хватает опыта и знаний
     
    Последнее редактирование: 13 янв 2015
  2. Хостинг MineCraft
    <
  3. Автор темы
    Xont

    Xont Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    xOnt
    Весь исходный код (все равно бы на 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;}
    
     
  4. AxmeD

    AxmeD Старожил Пользователь

    Баллы:
    103
    Skype:
    ahmed136323
    if(Bukkit.getOfflinePlayer(targetPlayer).isOnline() == true)
     
  5. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Никогда так не делайте.
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Проблему то разъясните, что подразумевается под "ничего" при проверке?
     
  7. Автор темы
    Xont

    Xont Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    xOnt
    Ошибка в консоль при телепортации к игроку оффлайн или несущствуещему игроку
     
  8. AxmeD

    AxmeD Старожил Пользователь

    Баллы:
    103
    Skype:
    ahmed136323
    Но почему? Всегда это использовал и ничего :\
     
  9. Explorer_1991

    Explorer_1991 Старожил Пользователь

    Баллы:
    103
    Всегда использовал Bukkit.getPlayer(name) != null
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ошибка то какая? Я например в коде вижу синтаксическую ошибку.
     
  11. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Потому что if(bool == true)
     
  12. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Whawhawhawhah...

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

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    if((obj != null) == true)
    :D
     

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