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

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());
  }
}


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

Вложения

  • Безымянный.png
    Безымянный.png
    3,7 КБ · Просмотры: 18
полный стектрейс нужен
 
Какой именно у тебя плагин?
Для UralClans2 есть 2 самых лёгкий решений проблем:
Удалить UralClans2 + удалить конфиг потом установи заного
Удалить конфиг

Если не помогло, не знаю в чём проблема
И кстать
Используй UralClans2, он по лучше чем этот.
 
Какой именно у тебя плагин?
Для UralClans2 есть 2 самых лёгкий решений проблем:
Удалить UralClans2 + удалить конфиг потом установи заного
Удалить конфиг

Если не помогло, не знаю в чём проблема
И кстать
Используй UralClans2, он по лучше чем этот.
Этот написан мной,и тут имеются клановый войны.
 
если ошибка в строке
  1. Clan clanAccept = ClanManager.getPlayerClan(claim.replace("war.", ""));

    claim - null
 
Теперь ошибка в данной строке

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

"startWith" тут ошибка
claim null, вот и ошибка. Перед этим, чтобы убедиться, напиши
Код:
if(claim == null) throw new IllegalStateException("String claim null.");

"startWith" тут ошибка
сам startsWith срать не может
 
Если тобой написан, почему ты сам не можешь решить?
Писал плагин по сурсе UralClans и другим плагинам.Да и не всегда можно решить проблему самому.
claim null, вот и ошибка. Перед этим, чтобы убедиться, напиши
Код:
if(claim == null) throw new IllegalStateException("String claim null.");


сам startsWith срать не может
Ага,теперь ругается на нее


Скинь свой вк,там пообщаемся
 
Назад
Верх