0
03_I1EzxfIApvc2jqY31KJI0
Unregistriert
Erst Java, dann Bukkit. Erleichtert dir so einiges.Danke dir![]()
Bin erst neu sry![]()
Erst Java, dann Bukkit. Erleichtert dir so einiges.Danke dir![]()
Bin erst neu sry![]()
Weißt du auch zufällig wie der dann funktionieren sollSie sagen, dass wenn du Thread.sleep() machst der Server einfriert, was ja auch stimmt. Schuduler funktionieren aber nicht so.
Bin eurer MeinungKein Ding, dazu ist dieser Threand doch da!![]()
Erst Java, dann Bukkit. Erleichtert dir so einiges.
Nicht genau, aber sehr wahrscheinlich werden die scheduler in einer Liste gespeichert und jeden Server tick wird durch diese Liste iteriert und jeder einzelne scheduler ausgeführt, nachdem er soundso viele ticks übersprungen hat (seine repeat time). Wenn du willst könnte ich dir mal ein Code Beispiel dafür erstellen, wenn ich wieder an meinem pc bin.Weißt du auch zufällig wie der dann funktionieren soll
Zufällig weiß Ich das. Da MineCraft nicht in Millisekunden läuft sondern in Ticks, wird zunächst dies vom Scheduler übersetzt. Außerdem wird er Synchron ausgeführt, heißt, andere Tasks können zur gleichen Zeit runnen. Mehr kann man da doch nicht sagen.Weißt du auch zufällig wie der dann funktionieren soll
Es ist auch an sich bugfrei, bloß die Serverversionen sind halt wichtig bei Minecraft. Vorerst sollte es bei 1.7 bleiben, meiner Meinung nach. Das mit '<' ist aber sehr nervig.1.8 ist bei mir so gut wie "bugfrei". Und laggen tut es auch überhaupt nicht. Hol dir OptiFine oder 1.8.1.
=> Ich habe mit der 1.8 keine Probleme.
Natürlich würde das etwas Performance ziehen, aber anders könnte ich mir das nicht wirklich vorstellen. Wenn die Scheduler wirklich im selben Thread laufen sollen, müssen sie ja irgendwie dort auch alle ausgeführt werden, wo man um eine Iteration nicht dran vorbei kommt.Zusätzlich natürlich der Beitrag von @5zig, wobei Ich mir bei der Iteration einer Liste nicht sicher bin, da dies mehr Performance ziehen würde.
Es gibt nen Programm das hab ich aufn Rechner wo man einfach ne jar reinziehen muss und dann die dateien DECOMPILIERT mit packages und allem drum und dran angezeigt werden und das funktioniert auch mit der spigot jarNatürlich würde das etwas Performance ziehen, aber anders könnte ich mir das nicht wirklich vorstellen. Wenn die Scheduler wirklich im selben Thread laufen sollen, müssen sie ja irgendwie dort auch alle ausgeführt werden, wo man um eine Iteration nicht dran vorbei kommt.
Sind aber alles nur Vermutungen von mir, kann das nicht wirklich zu 100% bestätigen, zumal man ja keinen access auf die craftbukkit/spigot repositories mehr hat...
Mit JDGui kann man aber nicht nach Methoden etc. suchenEs gibt nen Programm das hab ich aufn Rechner wo man einfach ne jar reinziehen muss und dann die dateien DECOMPILIERT mit packages und allem drum und dran angezeigt werden und das funktioniert auch mit der spigot jar
LOL, ich dachte immer das liegt an mir...Es ist auch an sich bugfrei, bloß die Serverversionen sind halt wichtig bei Minecraft. Vorerst sollte es bei 1.7 bleiben, meiner Meinung nach. Das mit '<' ist aber sehr nervig.
Ja , allerdings ist die Craftbukkit | Spigot.jar obfuscated und somit nicht verständlich zu lesen (Quelle: @Sheigutn). IntelliJ hat nen mitgelieferten Compiler.Es gibt nen Programm das hab ich aufn Rechner wo man einfach ne jar reinziehen muss und dann die dateien DECOMPILIERT mit packages und allem drum und dran angezeigt werden und das funktioniert auch mit der spigot jar
Mit ProGuard kannst es auch entschlüsselnJa , allerdings ist die Craftbukkit | Spigot.jar obfuscated und somit nicht verständlich zu lesen (Quelle: @Sheigutn). IntelliJ hat nen mitgelieferten Compiler.
Craftbukkit an sich ist nicht obfuscated (Beispiel, die CraftServer Klasse: http://5zig.eu/i/zWAHhPF). Das, was obfuscated ist, ist der NMS code, der ist aber selbst im Source-Code meines Wissens nach weitgehend noch obfuscated (zum Beispiel die Block-Klasse, die aus dem Minecraft Server dekompiliert wurde http://5zig.eu/i/dUM1qeo).Ja , allerdings ist die Craftbukkit | Spigot.jar obfuscated und somit nicht verständlich zu lesen (Quelle: @Sheigutn). IntelliJ hat nen mitgelieferten Compiler.
Inventory Click Event canceln, wenn die ID des Slots 103 ist.Hey
Ich will ein Hat-Plugin machen habe aber ein problem:
Wenn ich einem einen Block auf den Kopf setze (p.setHelmet(Istack)) kann er ihn ja wieder absetzenwie kann ich das beheben?
![]()
wie geht das genau genau? xDInventory Click Event canceln, wenn die ID des Slots 103 ist.
o:@EventHandler
public void onKlick(InventoryClickEvent e) {
Player p = (Player)e.getWhoClicked();
e.setCannceld(true);
Nicht ganz :3wie geht das genau genau? xD
o:
@EventHandler
public void onInventoryClick( InventoryClickEvent ev )
{
Player player = null; // Spieler definieren
if( ev.getWhoClicked() instanceof Player ) // Eigentlich unnötig da es nur ein Spieler gewesen sein kann, aber ich geh gern auf Nummer sicher ;)
{
player = (Player) ev.getWhoClicked(); // Spieler casten
if ( ev.getRawSlot() == 103 ) // Slot ID des Helm-Slots
{
if( !player.hasPermission( "helm.bewegen" ) ) // Wenn er NICHT die Permission "helm.bewegen" hat...
{
ev.setCancelled( true ); // Event canceln
}
}
}
}
OhNicht ganz :3
PHP:@EventHandler public void onInventoryClick( InventoryClickEvent ev ) { Player player = null; // Spieler definieren if( ev.getWhoClicked() instanceof Player ) // Eigentlich unnötig da es nur ein Spieler gewesen sein kann, aber ich geh gern auf Nummer sicher ;) { player = (Player) ev.getWhoClicked(); // Spieler casten if ( ev.getRawSlot() == 103 ) // Slot ID des Helm-Slots { if( !player.hasPermission( "helm.bewegen" ) ) // Wenn er NICHT die Permission "helm.bewegen" hat... { ev.setCancelled( true ); // Event canceln } } } }