SteamWar/BauSystem
Archiviert
13
0

FallingBlock #144

Manuell gemergt
YoyoNow hat 11 Commits von FallingBlock nach master 2020-12-26 23:21:22 +01:00 zusammengeführt
Nur Änderungen aus Commit d80e6d1a06 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -35,7 +35,7 @@ import org.bukkit.scheduler.BukkitTask;
public class CommandTPSLimiter implements CommandExecutor {
private static int currentTPSLimit = 20;
private static double currentTPSLimit = 20;
private static World world = Bukkit.getWorlds().get(0);
private long lastTime = System.nanoTime();
private long currentTime = System.nanoTime();
@ -71,12 +71,14 @@ public class CommandTPSLimiter implements CommandExecutor {
}
try {
int tpsLimitInt = Integer.parseInt(tpsLimit);
if (tpsLimitInt < 1 || tpsLimitInt > 20) {
double tpsLimitDouble = Double.parseDouble(tpsLimit.replace(',', '.'));
if (tpsLimitDouble < 0.5 || tpsLimitDouble > 20) {
Review

Hast du das mit 0,5 getestet? Fliegst du dabei nicht vom Bau? Wenn ja, brauchst du das hier mir drunter nicht zu antworten.

Hast du das mit 0,5 getestet? Fliegst du dabei nicht vom Bau? Wenn ja, brauchst du das hier mir drunter nicht zu antworten.
Review

Also ja ich habe es getestet für eine längere Zeit und bin nicht vom Bau geflogen.

Also ja ich habe es getestet für eine längere Zeit und bin nicht vom Bau geflogen.
sendInvalidArgumentMessage(player);
return false;
}
currentTPSLimit = tpsLimitInt;
if (tpsLimitDouble <= 1) tpsLimitDouble = (int)(tpsLimitDouble * 10) / 10.0;
Veraltet
Review

Was machst du hier verwirrendes, warum machst du den Double zum int? ist doch vollkommen unnötig. Wenn die Leute krumme TPS-Werte wollen, lass sie doch einfach krumme TPS-Werte haben!

Was machst du hier verwirrendes, warum machst du den Double zum int? ist doch vollkommen unnötig. Wenn die Leute krumme TPS-Werte wollen, lass sie doch einfach krumme TPS-Werte haben!
Veraltet
Review

Nein dies geht nicht, da wenn du 10.5 TPS haben möchtest du dann aber nur 9.9 hast. Deswegen habe ich da sowas reingemacht nur bei Werten unter 1 TPS funktioniert dies gescheit!

Nein dies geht nicht, da wenn du 10.5 TPS haben möchtest du dann aber nur 9.9 hast. Deswegen habe ich da sowas reingemacht nur bei Werten unter 1 TPS funktioniert dies gescheit!
Veraltet
Review

Wenn du 10.5 haben möchtest, dann aber nur 9.9 bekommst, sieht das für mich eher nach einem Bug aus... Ansonsten: Hat man dann halt 9.9 TPS bei gewünschten 10.5 TPS.... Wen juckts :)

Wenn du 10.5 haben möchtest, dann aber nur 9.9 bekommst, sieht das für mich eher nach einem Bug aus... Ansonsten: Hat man dann halt 9.9 TPS bei gewünschten 10.5 TPS.... Wen juckts :)
Veraltet
Review

Das Problem ist weiter unten das Thread.sleep() was nur Millisekunden nimmt und mit den nano Sekunden eher weniger was anfangen würde.

Das Problem ist weiter unten das Thread.sleep() was nur Millisekunden nimmt und mit den nano Sekunden eher weniger was anfangen würde.
Veraltet
Review

Juckt doch eigentlich keinen, ob das dann so auf die Kommastelle genau ist.

Juckt doch eigentlich keinen, ob das dann so auf die Kommastelle genau ist.
Veraltet
Review

Also soll ich das einfach rausnehmen?

Also soll ich das einfach rausnehmen?
Veraltet
Review

Ja.

Ja.
Veraltet
Review

Hab ich gemacht!

Hab ich gemacht!
else tpsLimitDouble = (int)tpsLimitDouble;
currentTPSLimit = tpsLimitDouble;
sendNewTPSLimitMessage();
tpsLimiter();
} catch (NumberFormatException e) {
@ -91,7 +93,7 @@ public class CommandTPSLimiter implements CommandExecutor {
}
Veraltet
Review

Fehlerhaftes Kommata.

Fehlerhaftes Kommata.
private void sendInvalidArgumentMessage(Player player) {
player.sendMessage(BauSystem.PREFIX + "§cNur Zahlen zwischen 1 und 20, und 'default' erlaubt.");
player.sendMessage(BauSystem.PREFIX + "§cNur Zahlen zwischen 0.5 und 1 oder 1 und 20, und 'default' erlaubt.");
Veraltet
Review

Vollkommend verwirrend für den User, bitte umformulieren.

Vollkommend verwirrend für den User, bitte umformulieren.
Veraltet
Review

Was interessiert den User der Umbruch bei 1?

Was interessiert den User der Umbruch bei 1?
}
private void tpsLimiter() {
@ -102,13 +104,13 @@ public class CommandTPSLimiter implements CommandExecutor {
} else {
if (tpsLimiter != null) return;
Veraltet
Review

ist noch nicht master, wird also noch nicht gemergt.

ist noch nicht master, wird also noch nicht gemergt.
Veraltet
Review

wie meinst du das? Meinst du damit die Sache aus dem SpigotCore?

wie meinst du das? Meinst du damit die Sache aus dem SpigotCore?
tpsLimiter = Bukkit.getScheduler().runTaskTimer(BauSystem.getPlugin(), () -> {
sendTntMetaData();
versionDependantCall(() -> TPSLimit_12.sendTntMetaData(world), () -> TPSLimit_15.sendTntMetaData(world));
createVelocityData();
versionDependantCall(() -> TPSLimit_12.createVelocityPacketCache(world), () -> TPSLimit_15.createVelocityPacketCache(world));
for (int i = 0; i < (20 / currentTPSLimit); i++) {
sleepUntilNextTick();
sendTntData();
sendVelocityData();
versionDependantCall(() -> TPSLimit_12.sendTeleports(world), () -> TPSLimit_15.sendTeleports(world));
versionDependantCall(TPSLimit_12::sendVelocityPackets, TPSLimit_15::sendVelocityPackets);
}
}, 0, 1);
}
@ -133,47 +135,18 @@ public class CommandTPSLimiter implements CommandExecutor {
}
}
private void createVelocityData() {
private void versionDependantCall(Runnable v12, Runnable v15) {
Veraltet
Review

Diese Lösung finde ich großartig, evtl. finden wir eine Möglichkeit, dies noch weiter zu generalisieren.

Diese Lösung finde ich großartig, evtl. finden wir eine Möglichkeit, dies noch weiter zu generalisieren.
Veraltet
Review

Man könnte dies noch in den SpigotCore machen, womit du dann sowas wie, versionDependantCall für 2 Versionen hast und halt den gleichen call für das FightSystem mit allen verschiedenen Versionen. Könnte den Code Umfang definitiv kleiner machen.

Man könnte dies noch in den SpigotCore machen, womit du dann sowas wie, versionDependantCall für 2 Versionen hast und halt den gleichen call für das FightSystem mit allen verschiedenen Versionen. Könnte den Code Umfang definitiv kleiner machen.
Veraltet
Review

Ich gucke mal ob ich mir dazu was nettes ausdenken kann.

Ich gucke mal ob ich mir dazu was nettes ausdenken kann.
switch (Core.getVersion()) {
case 15:
TPSLimit_15.createVelocityPacketCache(world);
case 12:
v12.run();
break;
default:
TPSLimit_12.createVelocityPacketCache(world);
v15.run();
break;
}
}
private void sendVelocityData() {
switch (Core.getVersion()) {
case 15:
TPSLimit_15.sendVelocityPackets();
break;
default:
TPSLimit_12.sendVelocityPackets();
}
}
private void sendTntMetaData() {
switch (Core.getVersion()) {
case 15:
TPSLimit_15.sendTntMetaData(world);
break;
default:
TPSLimit_12.sendTntMetaData(world);
}
}
private void sendTntData() {
switch (Core.getVersion()) {
case 15:
TPSLimit_15.sendTeleports(world);
break;
default:
TPSLimit_12.sendTeleports(world);
}
}
public static int getCurrentTPSLimit() {
public static double getCurrentTPSLimit() {
return currentTPSLimit;
}