package themixray.repeating.mod.event;

public abstract class RecordEvent {
    public abstract void replay();
    public abstract String serialize();
    public abstract String getType();

    public static RecordEvent deserialize(String t) {
        try {
            String type = String.valueOf(t.charAt(0));
            String[] args = t.substring(2).split("&");
            if (type.equals("d")) {
                return RecordDelayEvent.fromArgs(args);
            } else if (type.equals("m")) {
                return RecordMoveEvent.fromArgs(args);
            } else if (type.equals("p")) {
                return RecordInputEvent.fromArgs(args);
            } else if (type.equals("b")) {
                return RecordBlockBreakEvent.fromArgs(args);
            } else if (type.equals("i")) {
                return RecordBlockInteractEvent.fromArgs(args);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
