Initial MixinLog experiments.
This commit is contained in:
parent
d86e069262
commit
eb05d587f4
103
src/com/massivecraft/massivecore/Log.java
Normal file
103
src/com/massivecraft/massivecore/Log.java
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
package com.massivecraft.massivecore;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.collections.MassiveMap;
|
||||||
|
import com.massivecraft.massivecore.event.EventMassiveCoreLog;
|
||||||
|
import com.massivecraft.massivecore.mixin.MixinLog;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
public class Log
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTANTS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static final String FIELD_TIMESTAMP = "timestamp";
|
||||||
|
public static final String FIELD_PLUGIN = "plugin";
|
||||||
|
public static final String FIELD_PLAYER = "player";
|
||||||
|
public static final String FIELD_LEVEL = "level";
|
||||||
|
public static final String FIELD_CATEGORY = "category";
|
||||||
|
public static final String FIELD_MESSAGE = "message";
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// FIELDS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private Map<String, Object> fields = new MassiveMap<>();
|
||||||
|
public Map<String, Object> getFields() { return this.fields; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public Log()
|
||||||
|
{
|
||||||
|
this
|
||||||
|
.timestamp(System.currentTimeMillis())
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// ACCESS > RAW
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public Log set(String key, Object value)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
this.getFields().put(key, value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.getFields().remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> T get(String key)
|
||||||
|
{
|
||||||
|
return (T) this.getFields().get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// ACCESS > SUGAR
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public Log timestamp(Long timestamp) { return this.set(FIELD_TIMESTAMP, timestamp); }
|
||||||
|
public Long timestamp() { return this.get(FIELD_TIMESTAMP); }
|
||||||
|
|
||||||
|
public Log plugin(Plugin plugin) { return this.set(FIELD_PLUGIN, plugin); }
|
||||||
|
public Plugin plugin() { return this.get(FIELD_PLUGIN); }
|
||||||
|
|
||||||
|
public Log player(Player player) { return this.set(FIELD_PLAYER, player); }
|
||||||
|
public Player player() { return this.get(FIELD_PLAYER); }
|
||||||
|
|
||||||
|
public Log level(Level level) { return this.set(FIELD_LEVEL, level); }
|
||||||
|
public Level level() { return this.get(FIELD_LEVEL); }
|
||||||
|
|
||||||
|
public Log category(String category) { return this.set(FIELD_CATEGORY, category); }
|
||||||
|
public String category() { return this.get(FIELD_CATEGORY); }
|
||||||
|
|
||||||
|
public Log message(String message) { return this.set(FIELD_MESSAGE, message); }
|
||||||
|
public String message() { return this.get(FIELD_MESSAGE); }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// SEND
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public void send()
|
||||||
|
{
|
||||||
|
// Run Event
|
||||||
|
EventMassiveCoreLog event = new EventMassiveCoreLog(this);
|
||||||
|
event.run();
|
||||||
|
if (event.isCancelled()) return;
|
||||||
|
|
||||||
|
// Send Through Mixin
|
||||||
|
MixinLog.get().send(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -300,6 +300,7 @@ public class MassiveCore extends MassivePlugin
|
|||||||
MixinGamemode.class,
|
MixinGamemode.class,
|
||||||
MixinInventory.class,
|
MixinInventory.class,
|
||||||
MixinKick.class,
|
MixinKick.class,
|
||||||
|
MixinLog.class,
|
||||||
MixinMassiveCraftPremium.class,
|
MixinMassiveCraftPremium.class,
|
||||||
MixinMessage.class,
|
MixinMessage.class,
|
||||||
MixinModification.class,
|
MixinModification.class,
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.massivecraft.massivecore.event;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.Log;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class EventMassiveCoreLog extends EventMassiveCore
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// REQUIRED EVENT CODE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
@Override public HandlerList getHandlers() { return handlers; }
|
||||||
|
public static HandlerList getHandlerList() { return handlers; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// FIELD
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private final Log log;
|
||||||
|
public Log getLog() { return this.log; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public EventMassiveCoreLog(Log log)
|
||||||
|
{
|
||||||
|
this.log = log;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
26
src/com/massivecraft/massivecore/mixin/MixinLog.java
Normal file
26
src/com/massivecraft/massivecore/mixin/MixinLog.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package com.massivecraft.massivecore.mixin;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.Log;
|
||||||
|
import com.massivecraft.massivecore.event.EventMassiveCorePlayerLeave;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
|
public class MixinLog extends Mixin
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static MixinLog d = new MixinLog();
|
||||||
|
private static MixinLog i = d;
|
||||||
|
public static MixinLog get() { return i; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// SEND
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public void send(Log log)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user