package io.github.minecraftgui.models.network.packets; import io.github.minecraftgui.models.network.NetworkInterface; import org.json.JSONObject; /** * Created by Samuel on 2015-12-09. */ public abstract class PacketComponentEvent extends PacketOut { protected final String componentId; public PacketComponentEvent(String componentId) { this.componentId = componentId; } @Override public JSONObject toJSON() { JSONObject jsonObject = new JSONObject(); jsonObject.put(NetworkInterface.COMPONENT_ID, componentId); return jsonObject; } public static class OnBlur extends PacketComponentEvent { public OnBlur(String componentId) { super(componentId); } } public static class OnFocus extends PacketComponentEvent { public OnFocus(String componentId) { super(componentId); } } public static class OnClick extends PacketComponentEvent { public OnClick(String componentId) { super(componentId); } } public static class OnDoubleClick extends PacketComponentEvent { public OnDoubleClick(String componentId) { super(componentId); } } public static class OnRemove extends PacketComponentEvent { public OnRemove(String componentId) { super(componentId); } } public static class OnMouseEnter extends PacketComponentEvent { public OnMouseEnter(String componentId) { super(componentId); } } public static class OnMouseLeave extends PacketComponentEvent { public OnMouseLeave(String componentId) { super(componentId); } } public static class OnInput extends PacketComponentEvent { private final char input; public OnInput(String componentId, char input) { super(componentId); this.input = input; } @Override public JSONObject toJSON() { JSONObject jsonObject = super.toJSON(); jsonObject.put(NetworkInterface.INPUT, input+""); return jsonObject; } } public static class OnKeyPressed extends PacketComponentEvent { private final int key; public OnKeyPressed(String componentId, int key) { super(componentId); this.key = key; } @Override public JSONObject toJSON() { JSONObject jsonObject = super.toJSON(); jsonObject.put(NetworkInterface.KEY, key); return jsonObject; } } public static class OnValueChange extends PacketComponentEvent { private final Object value; public OnValueChange(String componentId, Object value) { super(componentId); this.value = value; } @Override public JSONObject toJSON() { JSONObject jsonObject = super.toJSON(); jsonObject.put(NetworkInterface.VALUE, value); return jsonObject; } } }