package me.lethunderhawk.messages; import java.util.Optional; import java.util.UUID; public abstract class BaseMessage implements Message { private String fromName; private UUID fromUuid; private String message; private long timestamp; protected BaseMessage(){} protected BaseMessage(String fromName, UUID uuid, String message) { this(fromName, uuid, message, System.currentTimeMillis()); } protected BaseMessage(String fromName, UUID fromUuid, String message, long timestamp) { this.fromName = fromName; this.fromUuid = fromUuid; this.message = message; this.timestamp = timestamp; } @Override public String getFromName() { return fromName; } @Override public Optional getUuid() { return Optional.ofNullable(fromUuid); } @Override public String getMessage() { return message; } @Override public long getTimestamp() { return timestamp; } }