• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Suche Script fehler

Status
Für weitere Antworten geschlossen.

MackerBaron

Minecrafter
Registriert
22 November 2011
Beiträge
18
Diamanten
0
Hei Leute ich such nen fehler im script bitte guckt mal drüber.

script:

Code:
public Map<Player, Player> teleport = new HashMap<Player, Player>();

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if (cmd.getName().equalsIgnoreCase("tpa")){
    Player player = (Player) sender;
    Player player1 = Bukkit.getPlayer(args[1]);
    teleport.put(player, player1);
    } 
    
    if (cmd.getName().equalsIgnoreCase("tpaccept")){
    Player player = (Player) sender;
    if(teleport.containsValue(player)){
    Player player1 = teleport.get(player);
    player1.teleport(player);
    }
    }
}
 
Zuletzt bearbeitet:
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
1. Du hast keine Abfrage ob es wirklich ein Spieler oder die Console ist.
2. Du überprüfst nicht ob Player1 != null ist, wenn ein solcher Spieler nicht existiert.
3. NEVER EVER PUT PLAYER INTO A HASHMAP. -> Es ist schlecht Player-Objecte zu speichern.
4. Ansonsten: Wo ist dein Problem? Fehlermeldungen?...
 

MackerBaron

Minecrafter
Registriert
22 November 2011
Beiträge
18
Diamanten
0
Fehler:

Code:
2012-12-23 10:57:25 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'tpaccept' in plugin UltimateCommands v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
    at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCommand(CraftServer.java:510)
    at net.minecraft.server.v1_4_6.PlayerConnection.handleCommand(PlayerConnection.java:980)
    at net.minecraft.server.v1_4_6.PlayerConnection.chat(PlayerConnection.java:898)
    at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java:853)
    at net.minecraft.server.v1_4_6.Packet3Chat.handle(Packet3Chat.java:44)
    at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290)
    at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java:112)
    at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39)
    at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:598)
    at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224)
    at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494)
    at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427)
    at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
Caused by: java.lang.NullPointerException
    at me.Mackerbaron.UC.main.onCommand(main.java:234)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 15 more
 
Zuletzt bearbeitet von einem Moderator:

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Wenn ich mich recht entsinne, hast du gleich am Anfang die Methode void statt boolean verwendet.
Und ohne Fehlermeldungen, bzw. Hinweise, was daran nicht geht, können wir dir schwer weiterhelfen.
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Dein Code ist unübersichtlich...

BTW:

containsValue => Überprüft ob ein Wert xy ist, aber
get(ZZZ) => Hohlt den Wert, der den key ZZZ hat!

es kann garnicht funktionieren.
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Wir sind hier im Programmierungs Forum. Du hast einige Tipps bekommen und dein Fehler dort ist entweder ein Flüchtigkeitsfehler oder ein Fehler aus fehlender Kompetenz. Flüchtigkeitsfehler kannst du selber einfach beheben. Fehler aus fehlender Kompetenz sind bei einem solchem Standard Fall total unnötig. Da kannst du auch mal ganz einfach Java lernen, bevor du sowas machst.
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Der Code mal etwas übersichtlicher gestaltet und verbessert (Abfrage ob Spieler online, args[1] ist NICHT das erste Argument!), aber nicht getestet:
Code:
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        if (cmd.getName().equalsIgnoreCase("tpa"))
        {
            Player player = (Player) sender;
            try
            {
                Player player1 = Bukkit.getPlayer(args[0]);
            } catch (Exception e)
            {
                player.sendMessage("Spieler " + args[0] + " ist nicht online!");
            }
            teleport.put(player, player1);
        }
        if (cmd.getName().equalsIgnoreCase("tpaccept"))
        {
            Player player1 = (Player) sender;
            try
            {
                Player player = Bukkit.getPlayer(teleport.get(player));
                player1.teleport(player);
            } catch (Exception e)
            {
                player1.sendMessage("Der Spieler ist nicht online!");
            }            
        }
    }
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Oben