Minecraft : Gamemode Plugin fern Steuerung

  • Hallo!
    Ich habe probiert ein Gamemode Plugin zu machen, dort soll man aber auch den Gamemode von anderen Spielern steuern können, nur ich bekomme es nicht ganz hin mir im dritten Argument das zu holen was der Spieler im 2 Argument eingegeben hat?
    Kann mir da vielleicht jemand helfen?
    LG Maxi


    Code :


  • Hallo,
    In einem Array gibt es keinen Negativen Platz also args[-1]. Da musst du genauso args[0] nehmen da du ja die Zahl in deinem Command, wenn du einem anderen Spieler den GameMode setzten willst, an die gleiche stelle schreibst wie wenn du dir selbst den GameMode ändern willst.


    Und um das ganze noch zu vereinfachen kannst du den GameMode mit GameMode.getByValue(int value) bekommen. Und als text gibst du einfach den GameMode Enum Namen aus.
    Lg NoSleep

  • Hallo,
    In einem Array gibt es keinen Negativen Platz also args[-1]. Da musst du genauso args[0] nehmen da du ja die Zahl in deinem Command, wenn du einem anderen Spieler den GameMode setzten willst, an die gleiche stelle schreibst wie wenn du dir selbst den GameMode ändern willst.


    Und um das ganze noch zu vereinfachen kannst du den GameMode mit GameMode.getByValue(int value) bekommen. Und als text gibst du einfach den GameMode Enum Namen aus.
    Lg NoSleep

    Außerdem würde ich args[0] erst in den String fern speichern, wenn args.length 2 ist. Ansonsten wird dein Plugin immer wenn du dir z. B. Gamemode 1 geben willst eine Exception auswerfen, da es keinen Spieler mit dem Name 1 gibt.

  • Sorry, aber ich verstehe das noch nicht ganz wie ich jetzt richtig mir das 2 Argument also die Gamemode(0,1,2,3) richtig in den Code reinpacke mit dem GameMode.getByValue? LG Maxi @MegaDampfnudel @NoSleep

    Einfach GameMode gm = GameMode.getByValue(Integer.parseInt(args[1])); nach if(args.length == 2) hinzufügen, Player p1 = Bukkit.getPlayer(args[0]); nach if(args.length == 2) packen und dann den GameMode mit p1.setGameMode(gm); setzen.

  • Ansonsten wird dein Plugin immer wenn du dir z. B. Gamemode 1 geben willst eine Exception auswerfen, da es keinen Spieler mit dem Name 1 gibt.

    Ach, danke, hatte ich übersehen.


    Sorry, aber ich verstehe das noch nicht ganz wie ich jetzt richtig mir das 2 Argument also die Gamemode(0,1,2,3) richtig in den Code reinpacke mit dem GameMode.getByValue?

    GameMode.getByValue(int value) gibt einen GameMode zurück also GameMode gameMode = GameMode.getbyValue(0);. Da würde z.B. GameMode.SURVIVAL rauskommen.


    Ich nehme einmal an das der command so aussieht: /gamemode <mode> [Spieler]. Daher musst du den Spieler p1 den du oben definiert hast, mit dem 1. argument füttern. Also Player p1 = Bukkit.getPlayer(args[1]) weil args[0] ist schon der GameMode. Den Spieler würde ich dann auch erst unten definieren wo du abfragst ob die Argumenten länge gleich 2 ist.


    //Edit:
    Da war wer schneller ;) @MegaDampfnudel