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

Помогите Ошибка при принятии(Кланы)

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Такая ситуация возникла,при отправке запроса на войну( /c war [Nick]),можно принять(/c accept),но возникает ошибка.


    Accept.java
    [
    Код:
    public class Accept extends MCCommand
    {
      public Accept() {}
     
      public int getAccessLevel()
      {
        return -1;
      }
     
    
      public void showSyntax(CommandSender cs)
      {
        cs.sendMessage("§6/clan accept §f- §eКоманда для принятия запросов");
      }
     
      public static void claim(String player, String claim, int time)
      {
        claims.add(new Claim(player, claim, time));
      }
     
      public static Claim getClaim(String player) {
        for (Claim c : claims) {
          if (player.equalsIgnoreCase(player)) {
            return c;
          }
        }
        return null;
      }
     
      public void Claim1(String player, String claim, int time) {
        this.player = player;
        this.claim = claim;
        this.time = time;
        taskid = Bukkit.getScheduler().scheduleSyncDelayedTask(MishaClansPlugin.getInstance(), new Runnable()
        {
    
          public void run() { cancel(); } }, time * 20L);
      }
     
    
      public void cancel()
      {
        claims.remove(this);
        Bukkit.getScheduler().cancelTask(taskid);
      }
     
    
      private static List<Claim> claims = new ArrayList();
      public String player;
      public String claim;
      public int time;
      public int taskid;
      public void handleCommand(CommandSender cs, String[] args)
      {
        Player p = (Player)cs;
        Claim claimAccept = Claim.getClaim(p.getName());
        if ((claimAccept != null) && (claim.startsWith("war.")))
        {
    
    
    #Вот в этой строке ошибка   
    Clan clanAccept = ClanManager.getPlayerClan(claim.replace("war.", ""));
    
    
          if (clanAccept == null)
          {
            p.sendMessage("§f[§c§lClans§f]: §7Этого клана не существует!");
            return;
          }
          Clan yourClanAccept = ClanManager.getPlayerClan(p);
          if (yourClanAccept == null)
          {
            p.sendMessage("§f[§c§lClans§f]: §7У вас нет клана!");
            return;
          }
          if (yourClanAccept.getOnlineMembers().size() < 1)
          {
            p.sendMessage("§f[§c§lClans§f]: §7В вашем клане нет на сервере 2 участников!");
            return;
          }
          if (clanAccept.getOnlineMembers().size() < 1)
          {
            p.sendMessage("§f[§c§lClans§f]: §7В клане противника на сервере нет 2 участников!");
            return;
          }
          Arena arenaAccept = Arena.getEmptyArena();
          if (arenaAccept == null)
          {
            p.sendMessage("§f[§c§lClans§f]: §7Нет свободных арен для войны!");
            if (Bukkit.getOfflinePlayer(clanAccept.getOwner()).isOnline()) {
              Bukkit.getPlayer(clanAccept.getOwner()).sendMessage("§f[§c§lClans§f]: §7Нет свободных арен для войны!");
            }
            return;
          }
          arenaAccept.start(clanAccept, yourClanAccept);
          clanAccept.sendMessage("Клан §e" + yourClanAccept.getName() + " §7объявил вам войну!");
          yourClanAccept.sendMessage("Клан §e" + clanAccept.getName() + " §7объявил вам войну!");
          claimAccept.cancel();
          return;
        }
        if ((!p.hasMetadata("clan-invite-time")) || (p.getMetadata("clan-invite-time").isEmpty()) ||
          (((MetadataValue)p.getMetadata("clan-invite-time").get(0)).asLong() + 30000L < System.currentTimeMillis()))
        {
          funreas(cs, Messages.getMessage("вас никто не приглашал", new Messages.Pair[0]));
          return;
        }
        String ic = ((MetadataValue)p.getMetadata("clan-invited").get(0)).asString();
        p.removeMetadata("clan-invite-time", MishaClansPlugin.getInstance());
        p.removeMetadata("clan-invited", MishaClansPlugin.getInstance());
       
        Clan c = ClanManager.getClan(ic);
        if (c == null)
        {
          funreas(p, Messages.getMessage("клан не найден", new Messages.Pair[0]));
          return;
        }
        if (c.getSlots() <= c.getPlayers().size())
        {
          funreas(cs, Messages.getMessage("нет мест", new Messages.Pair[0]));
          return;
        }
        funreas(cs, Messages.getMessage("ты вступил в клан", new Messages.Pair[] { new Messages.Pair("clan", c.getName()) }));
        c.sendMessage(Messages.getMessage("игрок вступил в клан", new Messages.Pair[] { new Messages.Pair("player", p.getName()) }));
        c.getPlayers().put(p.getName().toLowerCase(), Integer.valueOf(1));
        c.save();
       
        Bukkit.getPluginManager().callEvent(new ua.lekting.mishaclans.event.PlayerJoinedClanEvent(c, p));
      }
    }
    War.Java
    Код:
    public class War extends MCCommand
    {
      public War() {}
     
      public int getAccessLevel()
      {
        return 8;
      }
     
      public void showSyntax(CommandSender cs)
      {
        cs.sendMessage("§6/clan war [Игрок] §f- §eКинуть войну клану");
      }
     
    
      public void handleCommand(CommandSender cs, String[] args)
      {
        if (args.length < 1)
        {
          showSyntax(cs);
          return;
        }
        Clan c = ua.lekting.mishaclans.clan.ClanManager.getPlayerClan(cs);
        Clan c2 = ua.lekting.mishaclans.clan.ClanManager.getPlayerClan(args[0]);
        if (c2 == null) {
          cs.sendMessage("§f[§c§lClans§f]: §7Этот игрок не состоит в клане!");
          return;
        }
        if (c == null) {
          cs.sendMessage("§f[§c§lClans§f]: §7Вы не состоите в клане");
          return;
        }
        if (c.getRank(cs.getName().toLowerCase()) < 8) {
          cs.sendMessage("§f[§c§lClans§f]: §7Вам не доступна данная команда");
          return;
        }
        Player p = (Player)cs;
        if (c == c2)
        {
          p.sendMessage("§f[§c§lClans§f]: §7Нельзя объявлять своему клану войну!");
          return;
        }
        if (!Bukkit.getOfflinePlayer(c2.getOwner()).isOnline())
        {
          p.sendMessage("§f[§c§lClans§f]: §7Главы клана §e" + c2.getOwner() + " §7нет на сервере!");
          return;
        }
        if (c.getOnlineMembers().size() < 1)
        {
          p.sendMessage("§f[§c§lClans§f]: §7В вашем клане нет на сервере 2 участников!");
          return;
        }
        if (c2.getOnlineMembers().size() < 1)
        {
          p.sendMessage("§f[§c§lClans§f]: §7В клане противника на сервере нет 2 участников!");
          return;
        }
        if (ua.lekting.mishaclans.Arena.getEmptyArena() == null)
        {
          p.sendMessage("§f[§c§lClans§f]: §7Нет свободных арен для войны!");
          return;
        }
        Claim claim = Claim.getClaim(c2.getOwner());
        if ((claim != null) && (claim.startsWith("war."))) {
          p.sendMessage("§f[§c§lClans§f]: §7Лидер клана уже имеет предложение на войну!");
          return;
        }
        Claim.claim(Bukkit.getOfflinePlayer(c2.getOwner()).getName(), "war." + c.getOwner(), 60);
        Bukkit.getPlayer(c2.getOwner()).sendMessage("§f[§c§lClans§f]: §7Вам объявил войну клан §e" + c.getName());
        Bukkit.getPlayer(c2.getOwner()).sendMessage("§f[§c§lClans§f]: §7Чтобы принять введите: §e/c accept§7, а чтобы отказаться: §e/c decline");
        p.sendMessage("§f[§c§lClans§f]: §7Вы объявили войну клану §e" + c2.getName());
      }
    }

    Подскажите,что сделал не так.Убедительная просьба не писать вот такого рода сообщения: "Мдаа,Ты сам подумать не можешь,Ору".
     

    Вложения:

  2. Хостинг MineCraft
    <
  3. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    полный стектрейс нужен
     
  4. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Что именно
     
  5. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    всю ошибку
     
  6. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Безымянный.png
     
  7. SuperDragon1998

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

    Баллы:
    6
    Какой именно у тебя плагин?
    Для UralClans2 есть 2 самых лёгкий решений проблем:
    Удалить UralClans2 + удалить конфиг потом установи заного
    Удалить конфиг

    Если не помогло, не знаю в чём проблема[DOUBLEPOST=1492343545,1492343500][/DOUBLEPOST]И кстать
    Используй UralClans2, он по лучше чем этот.
     
  8. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Этот написан мной,и тут имеются клановый войны.
     
  9. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    если ошибка в строке
    1. Clan clanAccept = ClanManager.getPlayerClan(claim.replace("war.", ""));

      claim - null
     
  10. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Теперь ошибка в данной строке

    (claim != null) && (claim.startsWith("war."))

    "startWith" тут ошибка
     
  11. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    claim null, вот и ошибка. Перед этим, чтобы убедиться, напиши
    Код:
    if(claim == null) throw new IllegalStateException("String claim null.");
    [DOUBLEPOST=1492349444,1492349411][/DOUBLEPOST]
    сам startsWith срать не может
     
  12. SuperDragon1998

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

    Баллы:
    6
    Если тобой написан, почему ты сам не можешь решить?
     
  13. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Писал плагин по сурсе UralClans и другим плагинам.Да и не всегда можно решить проблему самому.[DOUBLEPOST=1492356272,1492355938][/DOUBLEPOST]
    Ага,теперь ругается на нее


    Скинь свой вк,там пообщаемся
     
  14. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    vk.com/dondays
     
  15. Автор темы
    gianluca91

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

    Баллы:
    66
    Имя в Minecraft:
    gianluca91
    Кинул заявку
     

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