ServerPlugin BungeeCord Spieler verschieben

Dieses Thema im Forum "Programmierung" wurde erstellt von Verschraubt, 30. Oktober 2015.

  1. Verschraubt
    Offline

    Verschraubt

    Hallo!
    Ich benötige ein simples BungeeCord Plugin, dass auf Anfrage einen Spieler auf einen bestimmten Server sendet(In diesem Fall lobby).
    Da ich mich aber mit BungeeCord nicht auskenne, klappt das nicht so ganz. Habe schon nach vielen Anleitungen über diverse Suchmaschinen gesucht, aber nichts gefunden. Hier noch mein Code:
    Code (Text):
    1. pp.connect(ProxyServer.getInstance().getServerInfo("lobby"));

    Was ist da falsch?
     
    #1
  2. Victini151
    Offline

    Victini151

    Wo führst du das denn aus? Existiert der Server "lobby"?
     
    #2
  3. Verschraubt
    Offline

    Verschraubt

    So sieht es aus. In der BungeeCord config ist der Server lobby eingetragen. Soweit ich das mitbekommen habe, kann man einen spiele nur mittels 'ServerInfo' zum Zielserver "teleportieren" lassen. Und ich habe (wie man oben sieht) versucht, die ServerInfo von dem lobbyserver herauszufinden. Das hat aber nicht geklappt
     
    #3
  4. Victini151
    Offline

    Victini151

     
    #4
  5. Verschraubt
    Offline

    Verschraubt

    In einem BungeeCord Command - aber es spielt doch kar keine Rolle, wo man das ausführt, oder?
     
    #5
  6. Victini151
    Offline

    Victini151

    Es ging eher darum: Bist du sicher dass der Codeschnipsel ausgeführt wird? Ist pp der richtige Spieler?
     
    #6
  7. Verschraubt
    Offline

    Verschraubt

    Code (Text):
    1. ProxiedPlayer pp = (ProxiedPlayer) sender;
     
    #7
  8. Verschraubt
    Offline

    Verschraubt

    Ich schicke einfach mal die 2 Klassen:
    Main:
    Code (Text):
    1. package de.dasthema.main;
    2.  
    3. import net.md_5.bungee.api.ProxyServer;
    4. import net.md_5.bungee.api.config.ServerInfo;
    5. import net.md_5.bungee.api.plugin.Plugin;
    6.  
    7. public class Main extends Plugin {
    8.  
    9.     @Override
    10.     public void onEnable() {
    11.         registerCommands();
    12.  
    13.     }
    14.  
    15.     private void registerCommands() {
    16.         ProxyServer.getInstance().getPluginManager().registerListener(this, new ServerPinger());
    17.         ProxyServer.getInstance().getPluginManager().registerCommand(this, new COMMAND_lobby("hub"));
    18.  
    19.     }
    20.  
    21. }
    COMMAND_lobby:
    Code (Text):
    1. package de.dasthema.main;
    2.  
    3. import net.md_5.bungee.api.CommandSender;
    4. import net.md_5.bungee.api.ProxyServer;
    5. import net.md_5.bungee.api.connection.ProxiedPlayer;
    6. import net.md_5.bungee.api.plugin.Command;
    7.  
    8. public class COMMAND_lobby extends Command {
    9.  
    10.     public COMMAND_lobby(String name) {
    11.         super(name);
    12.     }
    13.  
    14.     @Override
    15.     public void execute(CommandSender sender, String[] args) {
    16.  
    17.         if (sender instanceof ProxiedPlayer) {
    18.             ProxiedPlayer pp = (ProxiedPlayer) sender;
    19.  
    20.                 pp.connect(ProxyServer.getInstance().getServerInfo("lobby"));
    21.  
    22.            
    23.         } else {
    24.             System.out.println("§cDu musst ein Spieler sein!");
    25.         }
    26.  
    27.     }
    28.  
    29. }
    30.  
     
    #8
  9. Verschraubt
    Offline

    Verschraubt

    #push Hat noch Jemand eine Idee?
     
    #9
  10. EldaCrap
    Offline

    EldaCrap

    Registriert seit:
    2. März 2014
    Beiträge:
    13
    Minecraft:
    EldaCrap
    Hier ein paar Sachen.

    main plugin = this;
    public String logPrefix = "[mc-core.com BungeeLobbyKick] ";

    getServer().getMessenger()
    .registerOutgoingPluginChannel(this, "BungeeCord");
    this.log.info(this.logPrefix + "Enabled.");

    public void doKick()
    {
    this.log.info(this.logPrefix + "Bewege alle Spieler zur " +
    "lobby");
    for (Player player : this.plugin.getServer().getOnlinePlayers()) {
    doKick(player);
    }
    }

    public void doKick(Player player)
    {
    ByteArrayOutputStream b = new ByteArrayOutputStream();
    DataOutputStream out = new DataOutputStream(b);
    try
    {
    out.writeUTF("Connect");
    out.writeUTF("lobby");
    }
    catch (IOException localIOException) {}
    player.sendPluginMessage(this.plugin, "BungeeCord", b.toByteArray());
    }


    if (cmd.getName().equalsIgnoreCase("Lobby"))
    {
    if (((sender instanceof Player)) &&
    (!p.hasPermission("")))
    {
    p.sendMessage(this.prefix + "");
    return true;
    }
    doKick(player);
    p.sendMessage(" §cDu wurdest zur §eLobby §cverschoben");
    }
     
    #10
  11. Verschraubt
    Offline

    Verschraubt

    Hi lolgamerHDTV. Erstmal Danke für deine Antwort, aber ich brauche ein BungeeCord Plugin.
    Du benutzt hier wahrscheinlich Bukkit/Spigot.
    Zweitens: Es gibt in diesem Forum auch eine spezielle Einfügeoption für Codes.

    #push Suche weiterhin nach einer passenden Lösung
     
    #11
  12. EldaCrap
    Offline

    EldaCrap

    Registriert seit:
    2. März 2014
    Beiträge:
    13
    Minecraft:
    EldaCrap
    Ah verstehe, Hab ich nicht Richtig gelesen. Viel Glück.
     
    #12
  13. Verschraubt
    Offline

    Verschraubt

    Mysteriös. Habe meinen Code jetzt mal an einem localhost Netzwerk getestet. Klappt optimal. Scheint so, als hätten die Server von einem gewissen Anbieter HIV... :)
     
    #13
  14. EldaCrap
    Offline

    EldaCrap

    Registriert seit:
    2. März 2014
    Beiträge:
    13
    Minecraft:
    EldaCrap
    GG.
     
    #14
    Verschraubt gefällt das.
  15. montbit
    Offline

    montbit

    Registriert seit:
    4. Februar 2013
    Beiträge:
    188
    Minecraft:
    montbit
    Hi,
    benutz doch das Bungee-Plugin BungeeTools. Dort definierst Du in der Config den Lobby Server und den Befehl, der zum TP benutzt werden soll. Funktioniert einwandfrei.
     
    #15
  16. Verschraubt
    Offline

    Verschraubt

    Danke für deine Antwort, aber ich konnte es schon lösen ^^

    #closed
     
    #16