1
0
mirror of https://github.com/kami-blue/client synced 2025-02-19 06:37:35 +00:00

Optimize ExtraTab even further

This commit is contained in:
Dominika 2020-05-28 13:00:43 -04:00
parent 4eb892e6b3
commit f4b578faab
No known key found for this signature in database
GPG Key ID: B4A5A6DCA70F861F
2 changed files with 21 additions and 9 deletions

View File

@ -2,6 +2,7 @@ package me.zeroeightsix.kami.mixin.client;
import me.zeroeightsix.kami.module.modules.render.ExtraTab;
import me.zeroeightsix.kami.module.modules.render.TabFriends;
import me.zeroeightsix.kami.util.MathsUtils;
import net.minecraft.client.gui.GuiPlayerTabOverlay;
import net.minecraft.client.network.NetworkPlayerInfo;
import org.spongepowered.asm.mixin.Mixin;
@ -10,11 +11,13 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
/**
* Created by 086 on 8/04/2018.
* Optimized by dominikaaaa on 28/05/20
*/
@Mixin(GuiPlayerTabOverlay.class)
public class MixinGuiPlayerTabOverlay {
@ -23,15 +26,21 @@ public class MixinGuiPlayerTabOverlay {
@Redirect(method = "renderPlayerlist", at = @At(value = "INVOKE", target = "Ljava/util/List;subList(II)Ljava/util/List;", remap = false))
public List subList(List list, int fromIndex, int toIndex) {
if (list1 == null) {
list1 = new AtomicReference<>(list.subList(fromIndex, Math.min(1, list.size())));
}
if (ExtraTab.INSTANCE.offload.getValue()) {
if (list1 == null) {
list1 = new AtomicReference<>(list.subList(fromIndex, Math.min(1, list.size())));
}
new Thread(() -> {
list1.set(list.subList(fromIndex, ExtraTab.INSTANCE.isEnabled() ? Math.min(ExtraTab.INSTANCE.tabSize.getValue(), list.size()) : toIndex));
}).start();
return list1.get();
// only update every 2 seconds
if (MathsUtils.isNumberEven(Calendar.getInstance().get(Calendar.SECOND))) {
new Thread(() -> {
list1.set(list.subList(fromIndex, ExtraTab.INSTANCE.isEnabled() ? Math.min(ExtraTab.INSTANCE.tabSize.getValue(), list.size()) : toIndex));
}).start();
}
return list1.get();
} else {
return list.subList(fromIndex, ExtraTab.INSTANCE.isEnabled() ? Math.min(ExtraTab.INSTANCE.tabSize.getValue(), list.size()) : toIndex);
}
}
@Inject(method = "getPlayerName", at = @At("HEAD"), cancellable = true)

View File

@ -6,6 +6,7 @@ import me.zeroeightsix.kami.setting.Settings
/**
* Created by 086 on 8/04/2018.
* Optimized by dominikaaaa on 28/05/20
*/
@Module.Info(
name = "ExtraTab",
@ -14,7 +15,9 @@ import me.zeroeightsix.kami.setting.Settings
)
class ExtraTab : Module() {
@JvmField
var tabSize: Setting<Int> = register(Settings.integerBuilder("Players").withMinimum(1).withValue(80).build())
var offload: Setting<Boolean> = register(Settings.b("Reduce Lag", true))
@JvmField
var tabSize: Setting<Int> = register(Settings.integerBuilder("Max Players").withMinimum(1).withValue(230).build())
companion object {
@JvmField