Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Часть функционала ClientName | 1.21+ Fabric

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
14 Дек 2022
Сообщения
125
Реакции
2
Выберите загрузчик игры
  1. Fabric
qq, югеймовцы.
Смотря на частичный переход пастеров на 1.21+ решил вам немного завезти функционала (несмотря на то, что он особо не полезен, но вдруг кому-то пригодится)

code:
Expand Collapse Copy
package fun.Nexgen.function.impl.misc;

import fun.Nexgen.function.api.Category;
import fun.Nexgen.function.api.Function;
import fun.Nexgen.function.settings.impl.BooleanSetting;

public class ClientName extends Function {

    public final BooleanSetting nick = new BooleanSetting("Никнейм", true);
    public final BooleanSetting server = new BooleanSetting("Сервер", true);

    public ClientName() {
        super("ClientName", Category.Misc, "Меняет название окна игры");
    }
}




MinecraftClientMixin:
Expand Collapse Copy
package fun.Nexgen.api.mixins;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import fun.Nexgen.NexgenClient;
import fun.Nexgen.api.events.impl.EventTick;
import fun.Nexgen.utils.math.Counter;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {

    @Inject(method = "tick", at = @At("HEAD"))
    public void tick(CallbackInfo ci) {
        EventTick event = new EventTick();
        NexgenClient.getInstance().getEventHandler().post(event);
        Counter.updateFPS();
    }

    @Inject(method = "getWindowTitle", at = @At("HEAD"), cancellable = true)
    public void updateWindowTitle(CallbackInfoReturnable<String> cir) {
        if (!NexgenClient.getInstance().isPanic()) {
            MinecraftClient client = MinecraftClient.getInstance();
            String base = "Nexgen Recode";
            StringBuilder sb = new StringBuilder(base);
            fun.Nexgen.function.impl.misc.ClientName cn = NexgenClient.getInstance().getModuleManager().getModule(fun.Nexgen.function.impl.misc.ClientName.class);
            boolean enabled = cn != null && cn.isToggled();
            boolean showNick = enabled && cn.nick.getValue();
            boolean showServer = enabled && cn.server.getValue();
            if (showNick) {
                String username = "Player";
                if (client != null && client.getSession() != null && client.getSession().getUsername() != null) username = client.getSession().getUsername();
                sb.append(" | ").append(username);
            }
            if (showServer) {
                String address = null;
                if (client != null) {
                    if (client.getCurrentServerEntry() != null && client.getCurrentServerEntry().address != null && !client.getCurrentServerEntry().address.isEmpty()) address = client.getCurrentServerEntry().address;
                    else if (client.isInSingleplayer()) address = "singleplayer";
                }
                if (address != null) sb.append(" | ").append(address);
            }
            cir.setReturnValue(sb.toString());
        }
    }
}
 
qq, югеймовцы.
Смотря на частичный переход пастеров на 1.21+ решил вам немного завезти функционала (несмотря на то, что он особо не полезен, но вдруг кому-то пригодится)

code:
Expand Collapse Copy
package fun.Nexgen.function.impl.misc;

import fun.Nexgen.function.api.Category;
import fun.Nexgen.function.api.Function;
import fun.Nexgen.function.settings.impl.BooleanSetting;

public class ClientName extends Function {

    public final BooleanSetting nick = new BooleanSetting("Никнейм", true);
    public final BooleanSetting server = new BooleanSetting("Сервер", true);

    public ClientName() {
        super("ClientName", Category.Misc, "Меняет название окна игры");
    }
}




MinecraftClientMixin:
Expand Collapse Copy
package fun.Nexgen.api.mixins;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import fun.Nexgen.NexgenClient;
import fun.Nexgen.api.events.impl.EventTick;
import fun.Nexgen.utils.math.Counter;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {

    @Inject(method = "tick", at = @At("HEAD"))
    public void tick(CallbackInfo ci) {
        EventTick event = new EventTick();
        NexgenClient.getInstance().getEventHandler().post(event);
        Counter.updateFPS();
    }

    @Inject(method = "getWindowTitle", at = @At("HEAD"), cancellable = true)
    public void updateWindowTitle(CallbackInfoReturnable<String> cir) {
        if (!NexgenClient.getInstance().isPanic()) {
            MinecraftClient client = MinecraftClient.getInstance();
            String base = "Nexgen Recode";
            StringBuilder sb = new StringBuilder(base);
            fun.Nexgen.function.impl.misc.ClientName cn = NexgenClient.getInstance().getModuleManager().getModule(fun.Nexgen.function.impl.misc.ClientName.class);
            boolean enabled = cn != null && cn.isToggled();
            boolean showNick = enabled && cn.nick.getValue();
            boolean showServer = enabled && cn.server.getValue();
            if (showNick) {
                String username = "Player";
                if (client != null && client.getSession() != null && client.getSession().getUsername() != null) username = client.getSession().getUsername();
                sb.append(" | ").append(username);
            }
            if (showServer) {
                String address = null;
                if (client != null) {
                    if (client.getCurrentServerEntry() != null && client.getCurrentServerEntry().address != null && !client.getCurrentServerEntry().address.isEmpty()) address = client.getCurrentServerEntry().address;
                    else if (client.isInSingleplayer()) address = "singleplayer";
                }
                if (address != null) sb.append(" | ").append(address);
            }
            cir.setReturnValue(sb.toString());
        }
    }
}
А типо смысл от это?
 
Юзлесс. Но для любителей Продавать Говно кфг Пойдёт.
Upd. Было бы прикольно если Добавил бы Анимаций. Но это и так легко сделать
 
qq, югеймовцы.
Смотря на частичный переход пастеров на 1.21+ решил вам немного завезти функционала (несмотря на то, что он особо не полезен, но вдруг кому-то пригодится)

code:
Expand Collapse Copy
package fun.Nexgen.function.impl.misc;

import fun.Nexgen.function.api.Category;
import fun.Nexgen.function.api.Function;
import fun.Nexgen.function.settings.impl.BooleanSetting;

public class ClientName extends Function {

    public final BooleanSetting nick = new BooleanSetting("Никнейм", true);
    public final BooleanSetting server = new BooleanSetting("Сервер", true);

    public ClientName() {
        super("ClientName", Category.Misc, "Меняет название окна игры");
    }
}




MinecraftClientMixin:
Expand Collapse Copy
package fun.Nexgen.api.mixins;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import fun.Nexgen.NexgenClient;
import fun.Nexgen.api.events.impl.EventTick;
import fun.Nexgen.utils.math.Counter;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {

    @Inject(method = "tick", at = @At("HEAD"))
    public void tick(CallbackInfo ci) {
        EventTick event = new EventTick();
        NexgenClient.getInstance().getEventHandler().post(event);
        Counter.updateFPS();
    }

    @Inject(method = "getWindowTitle", at = @At("HEAD"), cancellable = true)
    public void updateWindowTitle(CallbackInfoReturnable<String> cir) {
        if (!NexgenClient.getInstance().isPanic()) {
            MinecraftClient client = MinecraftClient.getInstance();
            String base = "Nexgen Recode";
            StringBuilder sb = new StringBuilder(base);
            fun.Nexgen.function.impl.misc.ClientName cn = NexgenClient.getInstance().getModuleManager().getModule(fun.Nexgen.function.impl.misc.ClientName.class);
            boolean enabled = cn != null && cn.isToggled();
            boolean showNick = enabled && cn.nick.getValue();
            boolean showServer = enabled && cn.server.getValue();
            if (showNick) {
                String username = "Player";
                if (client != null && client.getSession() != null && client.getSession().getUsername() != null) username = client.getSession().getUsername();
                sb.append(" | ").append(username);
            }
            if (showServer) {
                String address = null;
                if (client != null) {
                    if (client.getCurrentServerEntry() != null && client.getCurrentServerEntry().address != null && !client.getCurrentServerEntry().address.isEmpty()) address = client.getCurrentServerEntry().address;
                    else if (client.isInSingleplayer()) address = "singleplayer";
                }
                if (address != null) sb.append(" | ").append(address);
            }
            cir.setReturnValue(sb.toString());
        }
    }
}
какой смысл если все от ф11 играют,ладно бы в ватермарке но в окне... зачем
 
деградация пастеров на фабрике идёт полным ходом :roflanzdarova:
смысл от этого дерьма если 1 методом можно просто накалякать имя своего клиента в тайтле
 
qq, югеймовцы.
Смотря на частичный переход пастеров на 1.21+ решил вам немного завезти функционала (несмотря на то, что он особо не полезен, но вдруг кому-то пригодится)

code:
Expand Collapse Copy
package fun.Nexgen.function.impl.misc;

import fun.Nexgen.function.api.Category;
import fun.Nexgen.function.api.Function;
import fun.Nexgen.function.settings.impl.BooleanSetting;

public class ClientName extends Function {

    public final BooleanSetting nick = new BooleanSetting("Никнейм", true);
    public final BooleanSetting server = new BooleanSetting("Сервер", true);

    public ClientName() {
        super("ClientName", Category.Misc, "Меняет название окна игры");
    }
}




MinecraftClientMixin:
Expand Collapse Copy
package fun.Nexgen.api.mixins;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import fun.Nexgen.NexgenClient;
import fun.Nexgen.api.events.impl.EventTick;
import fun.Nexgen.utils.math.Counter;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(MinecraftClient.class)
public abstract class MinecraftClientMixin {

    @Inject(method = "tick", at = @At("HEAD"))
    public void tick(CallbackInfo ci) {
        EventTick event = new EventTick();
        NexgenClient.getInstance().getEventHandler().post(event);
        Counter.updateFPS();
    }

    @Inject(method = "getWindowTitle", at = @At("HEAD"), cancellable = true)
    public void updateWindowTitle(CallbackInfoReturnable<String> cir) {
        if (!NexgenClient.getInstance().isPanic()) {
            MinecraftClient client = MinecraftClient.getInstance();
            String base = "Nexgen Recode";
            StringBuilder sb = new StringBuilder(base);
            fun.Nexgen.function.impl.misc.ClientName cn = NexgenClient.getInstance().getModuleManager().getModule(fun.Nexgen.function.impl.misc.ClientName.class);
            boolean enabled = cn != null && cn.isToggled();
            boolean showNick = enabled && cn.nick.getValue();
            boolean showServer = enabled && cn.server.getValue();
            if (showNick) {
                String username = "Player";
                if (client != null && client.getSession() != null && client.getSession().getUsername() != null) username = client.getSession().getUsername();
                sb.append(" | ").append(username);
            }
            if (showServer) {
                String address = null;
                if (client != null) {
                    if (client.getCurrentServerEntry() != null && client.getCurrentServerEntry().address != null && !client.getCurrentServerEntry().address.isEmpty()) address = client.getCurrentServerEntry().address;
                    else if (client.isInSingleplayer()) address = "singleplayer";
                }
                if (address != null) sb.append(" | ").append(address);
            }
            cir.setReturnValue(sb.toString());
        }
    }
}
даже так через гпт написал
 
деградация пастеров на фабрике идёт полным ходом :roflanzdarova:
смысл от этого дерьма если 1 методом можно просто накалякать имя своего клиента в тайтле
А я где-то говорил что функция полезная?)
 
Назад
Сверху Снизу