+ Added tracked values
This commit is contained in:
@@ -19,7 +19,12 @@ public class KittyGuild extends DatabaseTrackedObject
|
|||||||
public AdminControl control;
|
public AdminControl control;
|
||||||
|
|
||||||
// Database synced info
|
// Database synced info
|
||||||
public final KittyGuildRoleList roleList;
|
private final String roleListName = "guildRoles";
|
||||||
|
public final KittyTrackedVector roleList;
|
||||||
|
|
||||||
|
private final String beansName = "guildBeans";
|
||||||
|
public final KittyTrackedLong beans;
|
||||||
|
|
||||||
private String commandIndicator;
|
private String commandIndicator;
|
||||||
|
|
||||||
// Default content for a guild
|
// Default content for a guild
|
||||||
@@ -27,7 +32,8 @@ public class KittyGuild extends DatabaseTrackedObject
|
|||||||
{
|
{
|
||||||
super(uniqueID);
|
super(uniqueID);
|
||||||
this.uniqueID = uniqueID;
|
this.uniqueID = uniqueID;
|
||||||
roleList = new KittyGuildRoleList(uniqueID);
|
roleList = new KittyTrackedVector(roleListName, uniqueID);
|
||||||
|
beans = new KittyTrackedLong(beansName, uniqueID);
|
||||||
|
|
||||||
control = adminControl;
|
control = adminControl;
|
||||||
this.contentRating = KittyRating.Safe;
|
this.contentRating = KittyRating.Safe;
|
||||||
@@ -41,7 +47,8 @@ public class KittyGuild extends DatabaseTrackedObject
|
|||||||
{
|
{
|
||||||
super(uniqueID);
|
super(uniqueID);
|
||||||
this.uniqueID = uniqueID;
|
this.uniqueID = uniqueID;
|
||||||
roleList = new KittyGuildRoleList(uniqueID);
|
roleList = new KittyTrackedVector(roleListName, uniqueID);
|
||||||
|
beans = new KittyTrackedLong(beansName, uniqueID);
|
||||||
|
|
||||||
SetCommandIndicator(commandIndicator);
|
SetCommandIndicator(commandIndicator);
|
||||||
this.contentRating = contentRating;
|
this.contentRating = contentRating;
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package dataStructures;
|
||||||
|
|
||||||
|
import core.DatabaseTrackedObject;
|
||||||
|
import utils.GlobalLog;
|
||||||
|
import utils.LogFilter;
|
||||||
|
|
||||||
|
// An automatically tracked database value!
|
||||||
|
// Usage example:
|
||||||
|
//
|
||||||
|
// KittyTrackedLong score;
|
||||||
|
//
|
||||||
|
// public SomeConstructor(...)
|
||||||
|
// {
|
||||||
|
// myValue = new KittyTrackedLong("guildscore", this.UniqueID);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
public class KittyTrackedLong extends DatabaseTrackedObject
|
||||||
|
{
|
||||||
|
private long tracked; // Tracked value
|
||||||
|
private final String databaseID; // in-database ID of this value
|
||||||
|
|
||||||
|
// Config
|
||||||
|
private final static String differentiator = "long-";
|
||||||
|
|
||||||
|
public KittyTrackedLong(String readableName, String UniqueID)
|
||||||
|
{
|
||||||
|
super(differentiator + readableName + UniqueID);
|
||||||
|
databaseID = differentiator + readableName + UniqueID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Add(long toAdd)
|
||||||
|
{
|
||||||
|
tracked += toAdd;
|
||||||
|
MarkDirty();
|
||||||
|
return tracked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Subtract(long toSubtract)
|
||||||
|
{
|
||||||
|
tracked -= toSubtract;
|
||||||
|
MarkDirty();
|
||||||
|
return tracked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Get()
|
||||||
|
{
|
||||||
|
return tracked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long Set(long newValue)
|
||||||
|
{
|
||||||
|
tracked = newValue;
|
||||||
|
MarkDirty();
|
||||||
|
return tracked;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Serialize()
|
||||||
|
{
|
||||||
|
return "" + tracked;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void DeSerialzie(String string)
|
||||||
|
{
|
||||||
|
if(string != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tracked = Long.parseLong(string);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
tracked = 0;
|
||||||
|
GlobalLog.Error(LogFilter.Core, "Failed to deserialize long with database ID " + databaseID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tracked = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+18
-8
@@ -5,18 +5,22 @@ import java.util.Vector;
|
|||||||
import core.DatabaseTrackedObject;
|
import core.DatabaseTrackedObject;
|
||||||
|
|
||||||
// Acts as a proxy of sorts for the allowedRole arraylist, keeping it tracked for a specific guild.
|
// Acts as a proxy of sorts for the allowedRole arraylist, keeping it tracked for a specific guild.
|
||||||
public class KittyGuildRoleList extends DatabaseTrackedObject
|
@SuppressWarnings("unused")
|
||||||
|
public class KittyTrackedVector extends DatabaseTrackedObject
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private Vector<String> allowedRole = new Vector<String>();
|
private Vector<String> allowedRole = new Vector<String>();
|
||||||
|
private final String databaseID; // in-database ID of this value
|
||||||
|
|
||||||
private final static String delimiter = "\n";
|
private final static String delimiter = "\n";
|
||||||
private final static String split = "\\n";
|
private final static String split = "\\n";
|
||||||
private final static String differentiator = "roles";
|
private final static String differentiator = "vector-";
|
||||||
|
|
||||||
// Constructor - provide it with the guild ID
|
// Constructor - provide it with a unique ID as the second
|
||||||
public KittyGuildRoleList(String identifier)
|
public KittyTrackedVector(String readableName, String UniqueID)
|
||||||
{
|
{
|
||||||
super(identifier + differentiator);
|
super(differentiator + readableName + UniqueID);
|
||||||
|
databaseID = differentiator + readableName + UniqueID;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mirrored behavior
|
// Mirrored behavior
|
||||||
@@ -73,9 +77,15 @@ public class KittyGuildRoleList extends DatabaseTrackedObject
|
|||||||
@Override
|
@Override
|
||||||
public void DeSerialzie(String string)
|
public void DeSerialzie(String string)
|
||||||
{
|
{
|
||||||
String[] rolesSplit = string.split(split);
|
if(string != null)
|
||||||
|
{
|
||||||
|
if(string.length() >= 0)
|
||||||
|
{
|
||||||
|
String[] rolesSplit = string.split(split);
|
||||||
|
|
||||||
for(int i = 0; i < rolesSplit.length; ++i)
|
for(int i = 0; i < rolesSplit.length; ++i)
|
||||||
allowedRole.add(rolesSplit[i]);
|
allowedRole.add(rolesSplit[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user