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

Помогите Сервер ругается на строку

Discussion in 'Разработка плагинов для новичков' started by TorwaldOswarld, Jul 29, 2015.

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

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    Привет всем. Помогите пожалуйста , http://pastebin.com/bXvrqxNa , сервер ругается на 46 строку , посмотрите , что не так.Спасибо всем . Проблему решил .
     
    Last edited: Jul 29, 2015
  2. Хостинг MineCraft
    <
  3. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Убедитесь, что plugin.protectedBlocks не равно null.
     
  4. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    protectedBlocks , это ArrayList , который хранить в себе локацию "public ArrayList<Location> protectedBlocks = new ArrayList<Location>(); "[DOUBLEPOST=1438192696,1438192658][/DOUBLEPOST]
    Вот ошибка сервера http://prntscr.com/7yhabq
     
  5. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Значит вы либо передаете в конструктор слушателя null, либо все же ваш список - null.
     
  6. Rider3217

    Rider3217 Активный участник Пользователь

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    Первое, зачем вы создаете методы которые есть в Bukkit?
    2. Делайте методы статическими и используйте их так(В других классах), Core.methodname...
     
  7. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    И на скриншоте у вас ошибка в хендлере onPlayerInteract на 48 строке.
    Скиньте эту строку, пожалуйста. Или лучше метод целиком.[DOUBLEPOST=1438194118,1438193887][/DOUBLEPOST]
    Так делать не правильно. Можно конечно подобным образом реализовывать вспомогательные классы, но не более.
    Обычно создают статичный инстанс и вызывают не статичные методы так: Core.instance.methodname().
     
  8. Rider3217

    Rider3217 Активный участник Пользователь

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    Согласен, но мне удобнее так как я сказал, просто обычно мне нужно получить всего 1 метод/мапу/лист.
     
  9. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    я на pastebin не залил две строки , это строка пакета и пустая строка
     
  10. Rider3217

    Rider3217 Активный участник Пользователь

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    У вас там не локация а блок, нужно event.getBlock().getLocation();
     
  11. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Не очень понятно. А какая строка у вас там является 46(48)-ой? Просто я смотрел по тому исходнику, который вы предоставили, и там на 46-ой строке совсем другой метод.
     
  12. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    Вот исходный код http://pastebin.com/mJvwpqXv
     
  13. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Кстати, да.
     
  14. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    это где ?
    @EventHandler
    public void onBlockBreak(BlockBreakEvent event) {
    if (plugin.protectedBlocks.contains(event.getBlock())) {
    event.setCancelled(true);
    }
    }
    Тут ?
     
  15. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Тут.

    А Core#m у вас - не null?
     
  16. Rider3217

    Rider3217 Активный участник Пользователь

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
     
  17. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    Вроде нет
     
  18. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    Убедитесь.[DOUBLEPOST=1438196114,1438195918][/DOUBLEPOST]Под "не null" я предполагаю, что объект создан и инициализирован как надо.
     
  19. Автор темы
    TorwaldOswarld

    TorwaldOswarld Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    _TheMaxPlay_
    Возможно я чего то не понимаю . Это и есть Core.m
    package ru.ShaKe.AGP;

    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;

    public class Methods {
    public void sendConcole(String s) {
    System.out.println(s);
    }

    public String capitaliseFirstLetter(String s) {
    s = s.toLowerCase();
    char[] stringArray = s.toCharArray();
    stringArray[0] = Character.toUpperCase(stringArray[0]);
    s = new String(stringArray);
    return s;
    }

    public void sendMessege(Player player, String s) {
    player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD
    + "AdvancedProtection" + ChatColor.DARK_GRAY + "]"
    + ChatColor.GRAY + s);
    }

    public String showBlockCoords(Location l) {
    return ChatColor.LIGHT_PURPLE + "" + l.getBlockX() + ", "
    + l.getBlockY() + ", " + l.getBlockZ();

    }
    }[DOUBLEPOST=1438196307,1438196135][/DOUBLEPOST]
    Ошибку исправил . Взамен строке Core plugin; написал private static Core plugin;
     
  20. leonmark061

    leonmark061 Активный участник Пользователь

    Trophy Points:
    76
    То есть, проблема решена?
     
  21. Rider3217

    Rider3217 Активный участник Пользователь

    Trophy Points:
    98
    Имя в Minecraft:
    Planet0111
    А почему класс называется Methods ?
     

Share This Page