• 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!

Spigot Abgebauten Block überprüfen

gmb32

Kuhfänger
Registriert
17 Juni 2014
Beiträge
84
Diamanten
0
Moin,
ich habe noch ein Plugin von Früher welches auch an sich funktioniert. Sinn dahinter ist das sich Spieler eine Stadt erstellen können und für diese dann Chunks in vorgegebener Region kaufen. Problem: Wenn ich eine zu große Region makiere laggt der Server ich gehe mal davon aus das die Methode jeden Block einzeln checkt.
könnte man das Performance technische verbessern?
 
Zuletzt bearbeitet:

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
Also solange dein Code "so" aussieht, wird es schwierig, Aussagen in Bezug auf Perfromance zu treffen.
Wenn du tatsächlich so ein Plugin wie "Städte" umsetzen magst, empfehl ich dir, dich umzuschauen und zu erforschen, was für Plugins etwas mit Regionen, Sicherungen usw. machen. Ein heißer Tipp fängt mit World an und hört mit Guard auf.
Solche größeren Plugins bieten meist eine halbwegs brauchbare API an, womit man sich seine eigenen Plugins schreiben muss, ohne dass man die Grundfunktionen des Plugins selbst programmieren muss. Dadurch sparst du dir viele Bugs, weil der Code von WorldGuard schon viele Jahre besteht und auf tausenden Servern läuft und demnach dort auch getestet wird.

Ich glaube weniger, dass du Probleme mit der Performance bekommst, sondern eher damit, dass du auf versionsabhängigen Code rumeierst, der dadurch nur in deiner einen Serverversion funktioniert. Viel Spaß beim Updaten:
Code:
//                                    TextComponent message = new TextComponent(
//                                            Var.prefix + "Annehmen: §e/stadt annehmen " + player.getName());
//                                    message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,
//                                            "/stadt annehmen " + player.getName()));
//                                    message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
//                                            new ComponentBuilder("§eAnnehmen").create()));
                                    IChatBaseComponent chat = ChatSerializer.a("{\"text\":\"§7Annehmen: \",\"extra\":[{\"text\":\"§a/stadt annehmen "+player.getName()+"\"    ,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/stadt annehmen "+player.getName()+"\"}}]  }");
                                    IChatBaseComponent chat2 = ChatSerializer.a("{\"text\":\"§7Ablehnen: \",\"extra\":[{\"text\":\"§c/stadt ablehnen "+player.getName()+"\"    ,\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/stadt ablehnen "+player.getName()+"\"}}]  }");
                                    PacketPlayOutChat packet = new PacketPlayOutChat(chat);
                                    Player target = Bukkit.getPlayer(StadtManager.getGründer(args[1]));
                                    ((CraftPlayer) target).getHandle().playerConnection.sendPacket(packet);
                                    PacketPlayOutChat packet2 = new PacketPlayOutChat(chat2);
                                    ((CraftPlayer) target).getHandle().playerConnection.sendPacket(packet2);
//                                    all.spigot().sendMessage(message);
//                                    TextComponent message2 = new TextComponent(
//                                            Var.prefix + "Ablehnen: §e/stadt ablehnen " + player.getName());
//                                    message2.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,
//                                            "/stadt ablehnen " + player.getName()));
//                                    message2.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
//                                            new ComponentBuilder("§eAblehnen").create()));
//                                    all.spigot().sendMessage(message2);
Das geht einfacher, zum Beispiel mit dem ComponentBuilder von Spigot. Dann ist es nicht mal Versionsabhängig.

Und:
Code:
Player target = Bukkit.getPlayer(StadtManager.getGründer(args[1]));
Argsss, warum benutzt du Sonderzeichen in deinem Code? In den Kommentaren ist das ja gerade noch so okay, aber im Code selbst? Gut, aktuell ist das meiste auf UTF-8, aber trotzdem. Je nachdem kannst du damit richtig auf die Schnauze fliegen, wenn der Compiler da keine Lust hat und irgendeinen Mist macht.

Die ganzen Rechtschreibfehler in deinen hardgecodeten Nachrichten kommentiere ich mal nicht :p
 
Oben