Was ist die BungeeCordLib?
Viele von euch kennen sicherlich das Problem.
BungeeCord hat keine gute Api für Bukkit Server.
Dies wird nun behoben!
Diese Library bietet eine Vielzahl an hilfreichen Funktionen:- Online Spieler aller Server auflisten (X)
- Einen TCP Server erstellen
- Eine Nachricht an einen anderen TCP Server schicken
- Einen Server anpingen (Motd, Slots und Online Spieler auslesen)
- Die richtige IP eines Spielers auslesen (X)
- Definierte Server in der BungeeCord Config auslesen (X)
- Eine Nachricht an einen Spieler schicken (egal, in welchem Server der Spieler ist) (X)
- Spieler auf andere Server teleportieren (X)
Features mit einem (X) funktionieren nur, wenn bereits ein Spieler eingeloggt war/ist.
Wie benutze ich sie?
Die Benutzung ist ganz einfach.
Die Library selbst wird in den plugins Ordner kopiert und als Build-Path in ihr Plugin aufgenommen. Zudem nicht vergessen, das Plugin in die plugin.yml als Depend einzutragen!
Für Maven Nutzer:
Code:
<repositories>
<repository>
<id>Howaner Repo</id>
<url>http://repo.howaner.de</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>de.howaner</groupId>
<artifactId>BungeeCordLib</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
Codebeispiele:
Einen Spieler teleportieren:
Code:
BungeeServer server = BungeeCord.getManager().addServer("Servername", "127.0.0.1:2354"); //Servername = Der Name des Servers in der BungeeCord Config. 127.0.0.1:2354 = Ip des Servers
server.teleportPlayer(player);
Einen Server anpingen:
Code:
BungeeServer server = BungeeCord.getManager().addServer("Servername", "127.0.0.1:2354"); //Servername = Der Name des Servers in der BungeeCord Config. 127.0.0.1:2354 = Ip des Servers
ServerData data = server.getData();
if (data == null) {
//Ping fehlgeschlagen
}
String motd = data.getMotd();
int slots = data.getSlots();
int players = data.getPlayers();
Richtige Ip eines Spielers auslesen:
Code:
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
final Player player = event.getPlayer();
//Verzögerung benötigt, weil BungeeCord die Ip auch noch senden muss.
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
player.sendMessage("Ihre Ip ist " + BungeeCord.getManager().getPlayerIp(player.getName()) + "!");
}, 5L);
}
Datenaustausch zwischen Servern (Lobby- und Spieleserver):
Lobby Server:
Code:
int id = BungeeCord.getManager().addPacketServer(4615, new BungeePacketServer() {
@Override
public String run(String server, String title, String message) {
if (server.equalsIgnoreCase("SurvivalGames")) {
if (title.equals("Status")) {
System.out.println("Der Server " + server + " hat seinen Status geändert: " + message);
return "Verstanden!";
}
}
}
});
Spieleserver:
Code:
BungeeCord.getManager().setServerName("SurvivalGames"); //Wird auch automatisch gemacht, sobald ein Spieler den Server betritt
BungeeServer lobbyServer = BungeeCord.getManager().addServer("lobby");
lobbyServer.sendPacket(4615, new BungeePacket() {
@Override
public String getTitle() {
return "Status";
}
@Override
public String write() {
return "Offen";
}
@Override
public void read(String message) {
//Das, was der Server zurückschickt. Wäre hier: Verstanden!
}
});
Links:- Source:

- Jenkins:

- Dokumentation:

- Download:
