    001package net.minecraft.network.packet;
    002
    003import java.util.HashMap;
    004import java.util.Map;
    005
    006public class PacketCount
    007{
    008    /** If false, countPacket does nothing */
    009    public static boolean allowCounting = true;
    010
    011    /** A count of the total number of each packet sent grouped by IDs. */
    012    private static final Map packetCountForID = new HashMap();
    013
    014    /** A count of the total size of each packet sent grouped by IDs. */
    015    private static final Map sizeCountForID = new HashMap();
    016
    017    /** Used to make threads queue to add packets */
    018    private static final Object lock = new Object();
    019
    020    public static void countPacket(int par0, long par1)
    021    {
    022        if (allowCounting)
    023        {
    024            Object object = lock;
    025
    026            synchronized (lock)
    027            {
    028                if (packetCountForID.containsKey(Integer.valueOf(par0)))
    029                {
    030                    packetCountForID.put(Integer.valueOf(par0), Long.valueOf(((Long)packetCountForID.get(Integer.valueOf(par0))).longValue() + 1L));
    031                    sizeCountForID.put(Integer.valueOf(par0), Long.valueOf(((Long)sizeCountForID.get(Integer.valueOf(par0))).longValue() + par1));
    032                }
    033                else
    034                {
    035                    packetCountForID.put(Integer.valueOf(par0), Long.valueOf(1L));
    036                    sizeCountForID.put(Integer.valueOf(par0), Long.valueOf(par1));
    037                }
    038            }
    039        }
    040    }
    041}