Improvements to the simple config. Added an init method to the store coll.
This commit is contained in:
parent
7e0305aec0
commit
f706ea7ac2
@ -13,7 +13,7 @@ public class SimpleConfig
|
||||
protected transient MPlugin mplugin;
|
||||
protected MPlugin mplugin() { return this.mplugin; }
|
||||
|
||||
protected transient File file = new File("plugins/mcore/conf.json");
|
||||
protected transient File file;
|
||||
protected File file() { return this.file; }
|
||||
|
||||
public SimpleConfig(MPlugin mplugin, File file)
|
||||
@ -36,20 +36,31 @@ public class SimpleConfig
|
||||
// IO
|
||||
// -------------------------------------------- //
|
||||
|
||||
protected static boolean contentRequestsDefaults(String content)
|
||||
{
|
||||
if (content == null) return false;
|
||||
char c = content.charAt(0);
|
||||
return c == 'd' || c == 'D';
|
||||
}
|
||||
|
||||
public void load()
|
||||
{
|
||||
if (this.file().isFile())
|
||||
{
|
||||
String content = DiscUtil.readCatch(this.file());
|
||||
SimpleConfig loaded = this.mplugin().gson.fromJson(content, this.getClass());
|
||||
Accessor.get(this.getClass()).copy(loaded, this);
|
||||
if (contentRequestsDefaults(content)) return;
|
||||
Object createdByGson = this.mplugin().gson.fromJson(content, this.getClass());
|
||||
Accessor.get(this.getClass()).copy(createdByGson, this);
|
||||
}
|
||||
save();
|
||||
}
|
||||
|
||||
public void save()
|
||||
{
|
||||
String content = this.mplugin().gson.toJson(this);
|
||||
String content = DiscUtil.readCatch(this.file());
|
||||
if (contentRequestsDefaults(content)) return;
|
||||
content = this.mplugin().gson.toJson(this);
|
||||
DiscUtil.writeCatch(file, content);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -504,7 +504,7 @@ public class Coll<E, L> implements CollInterface<E, L>
|
||||
@Override public Thread examineThread() { return this.examineThread; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCTORS
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public Coll(Db<?> db, MPlugin mplugin, String idStrategyName, String name, Class<E> entityClass, Class<L> idClass, boolean creative)
|
||||
@ -533,15 +533,19 @@ public class Coll<E, L> implements CollInterface<E, L>
|
||||
{
|
||||
@Override public void run() { me.onTick(); }
|
||||
};
|
||||
|
||||
this.examineThread = new ExamineThread<E, L>(this);
|
||||
this.examineThread.start();
|
||||
this.syncAll();
|
||||
instances.add(this);
|
||||
}
|
||||
|
||||
public Coll(MPlugin mplugin, String idStrategyName, String name, Class<E> entityClass, Class<L> idClass, boolean creative)
|
||||
{
|
||||
this(MCore.getDb(), mplugin, idStrategyName, name, entityClass, idClass, creative);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
this.syncAll();
|
||||
this.examineThread = new ExamineThread<E, L>(this);
|
||||
this.examineThread.start();
|
||||
instances.add(this);
|
||||
}
|
||||
}
|
||||
|
@ -133,5 +133,11 @@ public interface CollInterface<E, L>
|
||||
|
||||
public Thread examineThread();
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public void init();
|
||||
|
||||
|
||||
}
|
@ -46,6 +46,7 @@ public abstract class Entity<E extends Entity<E, L>, L>
|
||||
|
||||
public L getId()
|
||||
{
|
||||
if (this.getColl() == null) return null;
|
||||
return this.getColl().id(getThis());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user