Newer
Older
KeeperJerry_Launcher / LaunchServer / source / auth / handler / BinaryFileAuthHandler.java
package launchserver.auth.handler;

import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

import launcher.helper.IOHelper;
import launcher.serialize.HInput;
import launcher.serialize.HOutput;
import launcher.serialize.config.entry.BlockConfigEntry;

public final class BinaryFileAuthHandler extends FileAuthHandler {
    public BinaryFileAuthHandler(BlockConfigEntry block) {
        super(block);
    }

    @Override
    protected void readAuthFile() throws IOException {
        try (HInput input = new HInput(IOHelper.newInput(file))) {
            int count = input.readLength(0);
            for (int i = 0; i < count; i++) {
                UUID uuid = input.readUUID();
                Entry entry = new Entry(input);
                addAuth(uuid, entry);
            }
        }
    }

    @Override
    protected void writeAuthFile() throws IOException {
        Set<Map.Entry<UUID, Entry>> entrySet = entrySet();
        try (HOutput output = new HOutput(IOHelper.newOutput(file))) {
            output.writeLength(entrySet.size(), 0);
            for (Map.Entry<UUID, Entry> entry : entrySet) {
                output.writeUUID(entry.getKey());
                entry.getValue().write(output);
            }
        }
    }
}