• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Часть функционала TotemPopCounter 2.0 -> 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
7 Фев 2024
Сообщения
76
Реакции
0
Выберите загрузчик игры
  1. Vanilla
Простой перенос
1758724444166.png

Ориг тема 2.0 -> (клик)
TotemPopCounter:
Expand Collapse Copy
package Fever.Visual.functions.impl.misc;

import Fever.Visual.events.EventPacket;
import Fever.Visual.functions.api.Category;
import Fever.Visual.functions.api.Function;
import Fever.Visual.functions.api.FunctionRegister;
import Fever.Visual.functions.impl.render.BabyBoy;
import Fever.Visual.functions.settings.impl.BooleanSetting;
import com.google.common.eventbus.Subscribe;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SEntityStatusPacket;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.TextFormatting;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@FunctionRegister(name = "TotemPopCounter", type = Category.Misc)
public class TotemPopCounter extends Function {

    private final BooleanSetting friendignor = new BooleanSetting("Игнор друзей", true);
    private final Map<String, Integer> pops = new ConcurrentHashMap<>();

    public TotemPopCounter() {
        this.addSettings(friendignor);
    }

    @Subscribe
    public boolean onEvent(EventPacket event) {
        IPacket<?> packet = event.getPacket();

        if (packet instanceof SEntityStatusPacket) {
            SEntityStatusPacket status = (SEntityStatusPacket) packet;

            if (status.getOpCode() == 35) {
                if (mc.world == null) return false;

                PlayerEntity player = (PlayerEntity) status.getEntity(mc.world);
                if (player == null || player == mc.player) return false;

                String name = player.getName().getString();

                if (this.friendignor.get() && BabyBoy.FriendStorage.isFriend(name)) return false;

                int count = pops.getOrDefault(name, 0) + 1;
                pops.put(name, count);

                sendPopMessage(name, count);
            }
        }
        return false;
    }

    private void sendPopMessage(String playerName, int count) {
        String msg =   " " +
                TextFormatting.RED + playerName +
                TextFormatting.WHITE + " попнул " +
                TextFormatting.RED + count +
                TextFormatting.WHITE + " тотем" + (count > 1 ? "ов!" : "!");
        print(msg);
    }
}
 
Простой перенос
Посмотреть вложение 316472
Ориг тема 2.0 -> (клик)
TotemPopCounter:
Expand Collapse Copy
package Fever.Visual.functions.impl.misc;

import Fever.Visual.events.EventPacket;
import Fever.Visual.functions.api.Category;
import Fever.Visual.functions.api.Function;
import Fever.Visual.functions.api.FunctionRegister;
import Fever.Visual.functions.impl.render.BabyBoy;
import Fever.Visual.functions.settings.impl.BooleanSetting;
import com.google.common.eventbus.Subscribe;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SEntityStatusPacket;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.TextFormatting;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@FunctionRegister(name = "TotemPopCounter", type = Category.Misc)
public class TotemPopCounter extends Function {

    private final BooleanSetting friendignor = new BooleanSetting("Игнор друзей", true);
    private final Map<String, Integer> pops = new ConcurrentHashMap<>();

    public TotemPopCounter() {
        this.addSettings(friendignor);
    }

    @Subscribe
    public boolean onEvent(EventPacket event) {
        IPacket<?> packet = event.getPacket();

        if (packet instanceof SEntityStatusPacket) {
            SEntityStatusPacket status = (SEntityStatusPacket) packet;

            if (status.getOpCode() == 35) {
                if (mc.world == null) return false;

                PlayerEntity player = (PlayerEntity) status.getEntity(mc.world);
                if (player == null || player == mc.player) return false;

                String name = player.getName().getString();

                if (this.friendignor.get() && BabyBoy.FriendStorage.isFriend(name)) return false;

                int count = pops.getOrDefault(name, 0) + 1;
                pops.put(name, count);

                sendPopMessage(name, count);
            }
        }
        return false;
    }

    private void sendPopMessage(String playerName, int count) {
        String msg =   " " +
                TextFormatting.RED + playerName +
                TextFormatting.WHITE + " попнул " +
                TextFormatting.RED + count +
                TextFormatting.WHITE + " тотем" + (count > 1 ? "ов!" : "!");
        print(msg);
    }
}
щас бы еще переносить темы с 2.0 под 3.1 с одним и тем же кодом
 
Назад
Сверху Снизу