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

Помогите Ошибка в коде

Статус
Закрыто для дальнейших ответов.

aceJKE

Старожил
Пользователь
Баллы
123
Недавно начал учиться писать плагины.
В общем команда /tp вызывает ошибку в консоле .
Код:
2013-12-15 12:25:29 [INFO] ace issued server command: /tp
2013-12-15 12:25:29 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'tp' in plugin lal
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:192)
    at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServer.java:527)
    at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerConnection.java:977)
    at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.java:888)
    at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:835)
    at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
    at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230)
    at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:117)
    at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
    at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:132)
    at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:594)
    at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
    at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483)
    at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415)
    at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at ru.lal.commands.Teleportation.onCommand(Teleportation.java:29)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 15 more
Код класса
Код:
package ru.lal.blah;

import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import static org.bukkit.Bukkit.getServer;

public class Teleportation implements CommandExecutor {

    String prefix = ChatColor.WHITE + "[" + ChatColor.RED + "L@L" + ChatColor.WHITE + "]: ";

    public Teleportation() {
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("You can not use a command from the console.=(");
            return true;
        }
        if (!sender.hasPermission("lal.cmd.tp")) {
            sender.sendMessage(prefix + ChatColor.RED + "Нет прав.");
            return true;
        }
        Player target = getServer().getPlayer(args[0]);
        Player target1 = getServer().getPlayer(args[1]);
        Player p = (Player) sender;

        if (cmd.getName().equalsIgnoreCase("tp")) {
            if (args.length == 0) {
                sender.sendMessage(ChatColor.RED + "Используй:/tp <ник> или /tp <ник> <ник>");
            }
            if (target == null) {
                sender.sendMessage(prefix + ChatColor.RED + "Игрок не найден!");
                return true;
            }
            if (target1 == null) {
                sender.sendMessage(prefix + ChatColor.RED + "Игрок не найден!");
                return true;
            }
            if (args.length == 1) {
                Location tlocation = target.getLocation();
                p.teleport(new Location(target.getWorld(), tlocation.getX(), tlocation.getY(), tlocation.getZ()));
                sender.sendMessage(prefix + ChatColor.GOLD + "Вы телепортировались к " + target.getName());
                return true;
            }
            if (args.length == 2) {
//                Location tlocation = target1.getLocation();
//                target.teleport(new Location(target1.getWorld(), tlocation.getX(), tlocation.getY(), tlocation.getZ()));
                sender.sendMessage(prefix + ChatColor.GOLD + "blah");
                return true;
            }
            if (args.length > 2) {
                sender.sendMessage(ChatColor.RED + "Используй:/tp <ник> или /tp <ник> <ник>");
            }
        }
        return false;
    }
}
 
Не хватает аргументов
Вообще бред - сначала из массива берутся значеия, а потом идёт проверка на их наличие:good:
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх