Помогите Ошибка в плагине

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

Conorfish

Активный участник
Пользователь
Баллы
76
Ошибка в плагине, Eclipse не дает ошибок. Суть плагина наблюдение над игроками("/spec <Player>"). По консоли я понял что ошибка в строчке 42. Срочка 42 это каст первого аргумента в игрока. Как сделать это?
Ошибка в консоли:
Код:
org.bukkit.command.CommandException: Unhandled exception executing command 'spec' in plugin SioRP-Spectate v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:644) ~[spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1385) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1220) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_51]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_51]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:747) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:405) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot.jar:git-Spigot-4df3c0c-03f1e37]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_12_R1.CraftWorld cannot be cast to org.bukkit.Server
        at me.qbert.SioRP.SioRP.onCommand(SioRP.java:42) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-4df3c0c-03f1e37]
        ... 15 more

Код:
Код:
package me.qbert.SioRP;

import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

import net.md_5.bungee.api.ChatColor;

public class SioRP extends JavaPlugin implements Listener{
    
    FileConfiguration config = getConfig();
    
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
    

    public void onDisable() {
        
    }
    public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("spec")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage(ChatColor.WHITE + "Команду могут выполнить только игроки!");
                return true;
            }
            if (args.length == 0) {
                sender.sendMessage(ChatColor.WHITE + "/spec " + ChatColor.GREEN + "[Игрок]");
                return true;
            }
            Player target = ((Server) ((Entity) sender).getWorld()).getPlayer(args[0]);
            Player p = (Player) sender;
            if (!p.hasPermission("SioRP-Spectate.spec")) {
                p.sendMessage(ChatColor.WHITE + "У вас нет прав для вылонения этой команды!");
                return true;
            }
            config.set("spec." + p.getName() + ".spec", "true");
            config.set("spec." + p.getName() + ".gamemode", p.getGameMode());
            config.set("spec." + p.getName() + "world", p.getWorld().getName());
            config.set("spec." + p.getName() + ".x", p.getLocation().getX());
            config.set("spec." + p.getName() + ".y", p.getLocation().getY());
            config.set("spec." + p.getName() + ".z", p.getLocation().getZ());
            saveConfig();
            p.setSpectatorTarget(Bukkit.getPlayerExact(target.getName()));
        }
        if (cmd.getName().equalsIgnoreCase("specoff")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage(ChatColor.WHITE + "Команду могут выполнить только игроки!");
                return true;
            }
            Player p = (Player) sender;
            if (!config.getString("spec." + p.getName() + ".spec").equals("true")) {
                p.sendMessage(ChatColor.WHITE + "Вы не за кем не наблюдаете!");
                return true;
            }
            Location nospec = new Location(Bukkit.getWorld(config.getString("spec." + p.getName() + "world")),
                    config.getDouble("spec." + p.getName() + ".x"),
                    config.getDouble("spec." + p.getName() + ".y"),
                    config.getDouble("spec." + p.getName() + ".z"));
            p.teleport(nospec);
            if (config.getString("spec." + p.getName() + ".gamemode").equals("CREATIVE")) {
                p.setGameMode(GameMode.CREATIVE);
            }
            if (config.getString("spec." + p.getName() + ".gamemode").equals("ADVENTURE")) {
                p.setGameMode(GameMode.ADVENTURE);
            }
            if (config.getString("spec." + p.getName() + ".gamemode").equals("SURVIVAL")) {
                p.setGameMode(GameMode.SURVIVAL);
            }
            config.set("spec." + p.getName() + ".spec", "false");
            config.set("spec." + p.getName() + ".gamemode", null);
            config.set("spec." + p.getName() + "world", null);
            config.set("spec." + p.getName() + ".x", null);
            config.set("spec." + p.getName() + ".y", null);
            config.set("spec." + p.getName() + ".z", null);
            saveConfig();
        }
        return false;
        
    }
    
    @EventHandler
    public void onPlayerQuit (PlayerQuitEvent e) {
        Player p = e.getPlayer();
        if (!config.getString("spec." + p.getName() + ".spec").equals("false")) {
            Location nospec = new Location(Bukkit.getWorld(config.getString("spec." + p.getName() + "world")),
                    config.getDouble("spec." + p.getName() + ".x"),
                    config.getDouble("spec." + p.getName() + ".y"),
                    config.getDouble("spec." + p.getName() + ".z"));
            p.teleport(nospec);
        }
        if (config.getString("spec." + p.getName() + ".gamemode").equals("CREATIVE")) {
            p.setGameMode(GameMode.CREATIVE);
        }
        if (config.getString("spec." + p.getName() + ".gamemode").equals("ADVENTURE")) {
            p.setGameMode(GameMode.ADVENTURE);
        }
        if (config.getString("spec." + p.getName() + ".gamemode").equals("SURVIVAL")) {
            p.setGameMode(GameMode.SURVIVAL);
        }
        config.set("spec." + p.getName() + ".gamemode", null);
        config.set("spec." + p.getName() + "world", null);
        config.set("spec." + p.getName() + ".x", null);
        config.set("spec." + p.getName() + ".y", null);
        config.set("spec." + p.getName() + ".z", null);
        config.set("spec." + p.getName() + ".spec", "false");
        saveConfig();
    }
    
    @EventHandler
    public void onPlayerJoin (PlayerJoinEvent e) {
        Player p = e.getPlayer();
        config.set("spec." + p.getName() + ".spec", "false");
        saveConfig();
        p.sendMessage(ChatColor.GREEN + "Добро пожаловать на сервер!");
    }
}
 
Код:
Player target = Bukkit.getPlayerExact(args[0]);
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх