add PacketCounter, move ping to Client category
All checks were successful
/ Build BaseBand (push) Successful in 2m37s

This commit is contained in:
Daniella / Tove 2024-10-05 02:58:29 +02:00
parent acdb41a1ea
commit 8b326ad8c9
Signed by: TudbuT
GPG key ID: B3CF345217F202D3
5 changed files with 97 additions and 7 deletions

View file

@ -70,6 +70,7 @@ public class Setup {
new NoRender(), new NoRender(),
new NoSlowDown(), new NoSlowDown(),
new Notifier(), new Notifier(),
new PacketCounter(),
new Ping(), new Ping(),
new PlayerLog(), new PlayerLog(),
new PlayerSelector(), new PlayerSelector(),

View file

@ -56,7 +56,7 @@ public class EventBus {
for (SubscriberMethod subscriberMethod : subscriberMethods) { for (SubscriberMethod subscriberMethod : subscriberMethods) {
Class<?>[] parameterTypes = subscriberMethod.method.getParameterTypes(); Class<?>[] parameterTypes = subscriberMethod.method.getParameterTypes();
if(parameterTypes.length == 1 && eventType.isAssignableFrom(parameterTypes[0])) { if(parameterTypes.length == 1 && parameterTypes[0].isAssignableFrom(eventType)) {
subscriberMethod.invoke(event); subscriberMethod.invoke(event);
} }
} }

View file

@ -0,0 +1,89 @@
package de.com.baseband.client.feature.modules.client;
import de.com.baseband.client.event.events.PacketEvent;
import de.com.baseband.client.feature.Feature;
import de.com.baseband.client.feature.category.ClientCategory;
import de.com.baseband.client.feature.category.Experimental;
import de.com.baseband.client.registry.annotation.Config;
import de.com.baseband.client.registry.annotation.Description;
import de.com.baseband.client.registry.annotation.Trigger;
import java.util.LinkedList;
import java.util.Queue;
@ClientCategory
@Description("Shows how many packets per second are being sent/received.")
public class PacketCounter extends Feature {
long totUp = 0, totDown = 0;
Queue<PacketTimestamp> up = new LinkedList<>(), down = new LinkedList<>();
@Config("Abbreviate")
@Description("Abbreviates numbers with ...K and ...M once they get too large.")
public boolean abbrev;
@Trigger("Reset")
public void reset() {
totUp = totDown = 0;
}
@Override
public void onEveryTick() {
meta = abbreviate(totUp) + "↑/↓" + abbreviate(totDown) + "] [" +
(up.isEmpty() ? "-" : "§c" + up.size()) + "↑§7/" +
(down.isEmpty() ? "↓-" : "§c↓" + down.size()) + "§7";
}
private String abbreviate(long n) {
if(n < 10_000L) {
return String.valueOf(n);
}
if(n < 10_000_000L) {
return n / 1000L + "K";
}
return n / 1_000_000L + "M";
}
@Override
public void onTick() {
processQueue(up);
processQueue(down);
}
private void processQueue(Queue<PacketTimestamp> queue) {
while (!queue.isEmpty()) {
if(queue.peek().passed())
queue.remove();
else
break;
}
}
@Override
public String toString() {
return "PacketCounter";
}
public void onPacket(PacketEvent event) {
if(event instanceof PacketEvent.Send) {
totUp ++;
up.add(new PacketTimestamp());
}
if(event instanceof PacketEvent.Receive) {
totDown ++;
down.add(new PacketTimestamp());
}
}
public static class PacketTimestamp {
long time;
public PacketTimestamp() {
this.time = System.currentTimeMillis();
}
public boolean passed() {
return (System.currentTimeMillis() - time) >= 1000;
}
}
}

View file

@ -1,9 +1,9 @@
package de.com.baseband.client.feature.modules.ingame; package de.com.baseband.client.feature.modules.client;
import de.com.baseband.client.BaseBand; import de.com.baseband.client.BaseBand;
import de.com.baseband.client.event.events.PrePacketEvent; import de.com.baseband.client.event.events.PrePacketEvent;
import de.com.baseband.client.feature.Feature; import de.com.baseband.client.feature.Feature;
import de.com.baseband.client.feature.category.Ingame; import de.com.baseband.client.feature.category.ClientCategory;
import de.com.baseband.client.registry.annotation.Config; import de.com.baseband.client.registry.annotation.Config;
import de.com.baseband.client.registry.annotation.Description; import de.com.baseband.client.registry.annotation.Description;
import de.com.baseband.client.registry.annotation.Range; import de.com.baseband.client.registry.annotation.Range;
@ -16,7 +16,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Queue; import java.util.Queue;
@Ingame @ClientCategory
public class Ping extends Feature { public class Ping extends Feature {
Queue<PacketHolder> holderSend = new LinkedList<>(); Queue<PacketHolder> holderSend = new LinkedList<>();
@ -33,7 +33,7 @@ public class Ping extends Feature {
@Description("How many milliseconds to add to your ping.\n" + @Description("How many milliseconds to add to your ping.\n" +
"§lWarning§r: You might get timed out on high settings (Time-out happens at 15 seconds including real ping).") "§lWarning§r: You might get timed out on high settings (Time-out happens at 15 seconds including real ping).")
@Range("0..5000") @Range("0..5000")
public int milliseconds; public int milliseconds = 300;
Packet<?> allowRecv = null; Packet<?> allowRecv = null;
Packet<?> allowSend = null; Packet<?> allowSend = null;
@ -47,7 +47,7 @@ public class Ping extends Feature {
public void onEveryTick() { public void onEveryTick() {
meta = milliseconds + "ms: " + meta = milliseconds + "ms: " +
(holderSend.isEmpty() ? "-" : "§c" + holderSend.size()) + "↑§7/" + (holderSend.isEmpty() ? "-" : "§c" + holderSend.size()) + "↑§7/" +
(holderRecv.isEmpty() ? "-" : "§c" + holderRecv.size()) + "§7"; (holderRecv.isEmpty() ? "-" : "§c" + holderRecv.size()) + "§7";
} }
@SubscribeEvent @SubscribeEvent

View file

@ -4,7 +4,7 @@ import de.com.baseband.client.BaseBand;
import de.com.baseband.client.Setup; import de.com.baseband.client.Setup;
import de.com.baseband.client.feature.Features; import de.com.baseband.client.feature.Features;
import de.com.baseband.client.feature.modules.client.Client; import de.com.baseband.client.feature.modules.client.Client;
import de.com.baseband.client.feature.modules.ingame.Ping; import de.com.baseband.client.feature.modules.client.Ping;
import de.com.baseband.client.util.adapt.ServerPing; import de.com.baseband.client.util.adapt.ServerPing;
import de.tudbut.tools.Lock; import de.tudbut.tools.Lock;
import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.client.network.NetworkPlayerInfo;