Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Wyswietlanie argumentow


Rekomendowane odpowiedzi

Opublikowano

Witam robie plugin i potrzebuje jak za pomoca 

Bukkit.broadcastMessage("Gracz ... zalozyl gildie o tagu {TU tag ma byc!}");

W klamrach ma sie pojawic tag ale nie wiem jak zrobic probowalem 

+args[2]

ale Errora wywalalo pomozcie.

PS

Nie wiem czy dobry dzial :P

//nie umieszczamy reklam w sygnaturach

Opublikowano

1. Podaj błąd
2. Sprawdź czy args[2] != null

 

@Edit chcesz to możemy też pogadać na skype, jak tak to napisz mi twój nick skype.

Opublikowano

W konsoli 

 

[13:13:43 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'team
' in plugin NowTeam v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
ftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:17
5) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServe
r.java:683) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerCon
nection.java:952) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
:814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java
:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat
.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
tbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
        at me.kaczusnow.nowteam.komendy.Team.onCommand(Team.java:29) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
ftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        ... 13 more
 

 

a w grze

 

 

An internal error occured while attempting to perform this command

//nie umieszczamy reklam w sygnaturach

Opublikowano

Z tego co widzę, to args[2] nie istnieje, nie podajesz go, jest null.

PS. Wiesz że w Javie wszystkie tablice, itp. zaczynają się od zera (args[0], args[1], args[2]).

Opublikowano

Podam lepiej czesc kodu 

 
    public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {
     if(cmd.equalsIgnoreCase("team")) {
     Player p = (Player) sender;  
     if(args.length == 0){
                p.sendMessage("/team zaloz");
     }
            if(args.length == 1) {
             if(args[0].equals("zaloz")) {
             p.sendMessage(ChatColor.BLUE + "/team zaloz [TAG 4 ZNAKI]");
             }
            }
            if(args.length == 2){
             p.sendMessage("Zalozyles wlasny TEAM!");
             Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[2]);
             }
            }
return false;
    }

//nie umieszczamy reklam w sygnaturach

Opublikowano


public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {

if(cmd.equalsIgnoreCase("team")) {

Player p = (Player) sender;

if(args.length != 2) {

p.sendMessage("/team zaloz [TAG]");

return false;

}

p.sendMessage("Zalozyles wlasny TEAM!");

Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[1]);

}

return false;

}

Opublikowano

 

Podam lepiej czesc kodu 

 
    public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {
     if(cmd.equalsIgnoreCase("team")) {
     Player p = (Player) sender;  
     if(args.length == 0){
                p.sendMessage("/team zaloz");
     }
            if(args.length == 1) {
             if(args[0].equals("zaloz")) {
             p.sendMessage(ChatColor.BLUE + "/team zaloz [TAG 4 ZNAKI]");
             }
            }
            if(args.length == 2){
             p.sendMessage("Zalozyles wlasny TEAM!");
             Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[2]);
             }
            }
return false;
    }

sprawdzasz czy ilośc argumentów to 2

if(args.length == 2){

 

a potem chcesz pobrać 3 argument

Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[2]);

 

bo liczymy od 0, więc jest to 3

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano
    public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {
     if(cmd.equalsIgnoreCase("team")) {
     Player p = (Player) sender;  
     if(args.length != 2) {
                p.sendMessage("/team zaloz [TAG]");
                return false;
     }
             p.sendMessage("Zalozyles wlasny TEAM!");
             Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[1]);
            }
return false;
    }

dzieki ale jeszcze chcialem zeby pod komenda /team bylo wymienione inne koemendy i zeby sie dalo pisac tag do 4 znakow Juz masz like : )

//nie umieszczamy reklam w sygnaturach

Opublikowano


public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {

if(cmd.equalsIgnoreCase("team")) {

Player p = (Player) sender;

if(args.length != 2) {

p.sendMessage("/team zaloz [TAG]");

return false;

}

 

if(args[2].length != 4) {

p.sendMessage("Tag musi miec 4 znaki!");

return false;

}

p.sendMessage("Zalozyles wlasny TEAM!");

Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[1]);

}

return false;

}

Opublikowano
    public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {
     if(cmd.equalsIgnoreCase("team")) {
     Player p = (Player) sender;  
     if(args.length != 2) {
                p.sendMessage("/team zaloz [TAG]");
                return false;
     }

     if(args[2].length != 4) {
                p.sendMessage("Tag musi miec 4 znaki!");
                return false;
     }
             p.sendMessage("Zalozyles wlasny TEAM!");
             Bukkit.broadcastMessage(ChatColor.DARK_GREEN+"Gracz "+ChatColor.RED+p.getName()+ChatColor.DARK_GREEN+" zalozyl gildie o tagu"+args[1]);
            }
return false;
    }

Nie dziala wywala errora a w eclipsie podkresla length ze trzeba dodac ()

//nie umieszczamy reklam w sygnaturach

Opublikowano

To dodaj xD Ja to pisałem na MPCForum, nie w eclipse, nie testowałem, na szybko to robiłem ;P

Opublikowano

To dodaj xD Ja to pisałem na MPCForum, nie w eclipse, nie testowałem, na szybko to robiłem ;P

 

 

Wlasnie dodalem i errora wywala a jak nie dodam to pluginu mi nie wczyta :c

//nie umieszczamy reklam w sygnaturach

Opublikowano

Poczekaj chwilę, zaraz ci powiem co zrobić

 

@Edit masz moje (sformatowane), mi nie wywala errorów:
 

public boolean onCommand ( final CommandSender sender,
            final Command command, final String cmd,
            final String[ ] args ) {
    
        if ( cmd.equalsIgnoreCase ( "team" ) ) {
            final Player p = ( Player ) sender;
            if ( args.length != 2 ) {
                p.sendMessage ( "/team zaloz [TAG]" );
                return false;
            }
            
            if ( args[ 2 ].length ( ) != 4 ) {
                p.sendMessage ( "Tag musi miec 4 znaki!" );
                return false;
            }
            p.sendMessage ( "Zalozyles wlasny TEAM!" );
            Bukkit.broadcastMessage ( ChatColor.DARK_GREEN
                    + "Gracz " + ChatColor.RED
                    + p.getName ( ) + ChatColor.DARK_GREEN
                    + " zalozyl gildie o tagu" + args[ 1 ] );
        }
        return false;
    }
Opublikowano

 

Poczekaj chwilę, zaraz ci powiem co zrobić

 

@Edit masz moje (sformatowane), mi nie wywala errorów:

 

public boolean onCommand ( final CommandSender sender,
            final Command command, final String cmd,
            final String[ ] args ) {
    
        if ( cmd.equalsIgnoreCase ( "team" ) ) {
            final Player p = ( Player ) sender;
            if ( args.length != 2 ) {
                p.sendMessage ( "/team zaloz [TAG]" );
                return false;
            }
            
            if ( args[ 2 ].length ( ) != 4 ) {
                p.sendMessage ( "Tag musi miec 4 znaki!" );
                return false;
            }
            p.sendMessage ( "Zalozyles wlasny TEAM!" );
            Bukkit.broadcastMessage ( ChatColor.DARK_GREEN
                    + "Gracz " + ChatColor.RED
                    + p.getName ( ) + ChatColor.DARK_GREEN
                    + " zalozyl gildie o tagu" + args[ 1 ] );
        }
        return false;
    }

Masz moze ts bo za duzo pisania by bylo

bo skype nie mam ;c

//nie umieszczamy reklam w sygnaturach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...