LiteLoaderPacketTransformer.java 1.06 KB
/*
 * This file is part of LiteLoader.
 * Copyright (C) 2012-16 Adam Mummery-Smith
 * All Rights Reserved.
 */
package com.mumfrey.liteloader.common.transformers;

import org.spongepowered.asm.mixin.injection.InjectionPoint;

import com.mumfrey.liteloader.core.runtime.Obf;
import com.mumfrey.liteloader.core.runtime.Packets;
import com.mumfrey.liteloader.transformers.event.EventInjectionTransformer;
import com.mumfrey.liteloader.transformers.event.MethodInfo;
import com.mumfrey.liteloader.transformers.event.inject.MethodHead;

public class LiteLoaderPacketTransformer extends EventInjectionTransformer
{
    @Override
    protected void addEvents()
    {
        InjectionPoint methodHead = new MethodHead();
        MethodInfo handlePacket = new MethodInfo(Obf.PacketEvents, "handlePacket");

        for (Packets packet : Packets.packets)
        {
            MethodInfo processPacket = new MethodInfo(packet, Obf.processPacket, Void.TYPE, Obf.INetHandler);
            this.addEvent(new PacketEvent(packet), processPacket, methodHead).addListener(handlePacket);
        }
    }
}