+ Added tracked values
This commit is contained in:
@@ -19,7 +19,12 @@ public class KittyGuild extends DatabaseTrackedObject
|
||||
public AdminControl control;
|
||||
|
||||
// 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;
|
||||
|
||||
// Default content for a guild
|
||||
@@ -27,7 +32,8 @@ public class KittyGuild extends DatabaseTrackedObject
|
||||
{
|
||||
super(uniqueID);
|
||||
this.uniqueID = uniqueID;
|
||||
roleList = new KittyGuildRoleList(uniqueID);
|
||||
roleList = new KittyTrackedVector(roleListName, uniqueID);
|
||||
beans = new KittyTrackedLong(beansName, uniqueID);
|
||||
|
||||
control = adminControl;
|
||||
this.contentRating = KittyRating.Safe;
|
||||
@@ -41,7 +47,8 @@ public class KittyGuild extends DatabaseTrackedObject
|
||||
{
|
||||
super(uniqueID);
|
||||
this.uniqueID = uniqueID;
|
||||
roleList = new KittyGuildRoleList(uniqueID);
|
||||
roleList = new KittyTrackedVector(roleListName, uniqueID);
|
||||
beans = new KittyTrackedLong(beansName, uniqueID);
|
||||
|
||||
SetCommandIndicator(commandIndicator);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+15
-5
@@ -5,18 +5,22 @@ import java.util.Vector;
|
||||
import core.DatabaseTrackedObject;
|
||||
|
||||
// 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
|
||||
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 split = "\\n";
|
||||
private final static String differentiator = "roles";
|
||||
private final static String differentiator = "vector-";
|
||||
|
||||
// Constructor - provide it with the guild ID
|
||||
public KittyGuildRoleList(String identifier)
|
||||
// Constructor - provide it with a unique ID as the second
|
||||
public KittyTrackedVector(String readableName, String UniqueID)
|
||||
{
|
||||
super(identifier + differentiator);
|
||||
super(differentiator + readableName + UniqueID);
|
||||
databaseID = differentiator + readableName + UniqueID;
|
||||
}
|
||||
|
||||
// Mirrored behavior
|
||||
@@ -72,10 +76,16 @@ public class KittyGuildRoleList extends DatabaseTrackedObject
|
||||
// Reads in the roles as a delimited single string that needs parsing
|
||||
@Override
|
||||
public void DeSerialzie(String string)
|
||||
{
|
||||
if(string != null)
|
||||
{
|
||||
if(string.length() >= 0)
|
||||
{
|
||||
String[] rolesSplit = string.split(split);
|
||||
|
||||
for(int i = 0; i < rolesSplit.length; ++i)
|
||||
allowedRole.add(rolesSplit[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user