Better save system
This commit is contained in:
parent
39a02f0fd4
commit
8bab4540cd
@ -51,7 +51,6 @@ public class Board {
|
|||||||
}
|
}
|
||||||
|
|
||||||
worldCoordIds.get(flocation.getWorldName()).put(flocation.getCoordString(), id);
|
worldCoordIds.get(flocation.getWorldName()).put(flocation.getCoordString(), id);
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFactionAt(Faction faction, FLocation flocation) {
|
public static void setFactionAt(Faction faction, FLocation flocation) {
|
||||||
@ -63,7 +62,6 @@ public class Board {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
worldCoordIds.get(flocation.getWorldName()).remove(flocation.getCoordString());
|
worldCoordIds.get(flocation.getWorldName()).remove(flocation.getCoordString());
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is this coord NOT completely surrounded by coords claimed by the same faction?
|
// Is this coord NOT completely surrounded by coords claimed by the same faction?
|
||||||
@ -171,7 +169,7 @@ public class Board {
|
|||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public static boolean save() {
|
public static boolean save() {
|
||||||
Factions.log("Saving board to disk");
|
//Factions.log("Saving board to disk");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DiscUtil.write(file, Factions.gson.toJson(worldCoordIds));
|
DiscUtil.write(file, Factions.gson.toJson(worldCoordIds));
|
||||||
|
@ -67,7 +67,8 @@ public class Conf {
|
|||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public static boolean save() {
|
public static boolean save() {
|
||||||
Factions.log("Saving config to disk.");
|
//Factions.log("Saving config to disk.");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DiscUtil.write(file, Factions.gson.toJson(new Conf()));
|
DiscUtil.write(file, Factions.gson.toJson(new Conf()));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -164,7 +164,6 @@ public class FPlayer {
|
|||||||
|
|
||||||
public void setTitle(String title) {
|
public void setTitle(String title) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
@ -335,7 +334,6 @@ public class FPlayer {
|
|||||||
|
|
||||||
int millisPerMinute = 60*1000;
|
int millisPerMinute = 60*1000;
|
||||||
this.alterPower(millisPassed * Conf.powerPerMinute / millisPerMinute);
|
this.alterPower(millisPassed * Conf.powerPerMinute / millisPerMinute);
|
||||||
//this.save(); // This would save to often. So we save this on player quit instead.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDeath() {
|
public void onDeath() {
|
||||||
@ -386,8 +384,6 @@ public class FPlayer {
|
|||||||
}
|
}
|
||||||
Faction.delete(myFaction.getId());
|
Faction.delete(myFaction.getId());
|
||||||
}
|
}
|
||||||
FPlayer.save();
|
|
||||||
FPlayer.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -454,7 +450,7 @@ public class FPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean save() {
|
public static boolean save() {
|
||||||
Factions.log("Saving players to disk");
|
//Factions.log("Saving players to disk");
|
||||||
|
|
||||||
// We only wan't to save the vplayers with non default values
|
// We only wan't to save the vplayers with non default values
|
||||||
Map<String, FPlayer> vplayersToSave = new HashMap<String, FPlayer>();
|
Map<String, FPlayer> vplayersToSave = new HashMap<String, FPlayer>();
|
||||||
|
@ -59,7 +59,6 @@ public class Faction {
|
|||||||
|
|
||||||
public void setOpen(boolean isOpen) {
|
public void setOpen(boolean isOpen) {
|
||||||
open = isOpen;
|
open = isOpen;
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
@ -79,7 +78,6 @@ public class Faction {
|
|||||||
str = str.toUpperCase();
|
str = str.toUpperCase();
|
||||||
}
|
}
|
||||||
this.tag = str;
|
this.tag = str;
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
@ -88,7 +86,6 @@ public class Faction {
|
|||||||
|
|
||||||
public void setDescription(String value) {
|
public void setDescription(String value) {
|
||||||
this.description = value;
|
this.description = value;
|
||||||
save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
@ -124,7 +121,6 @@ public class Faction {
|
|||||||
} else {
|
} else {
|
||||||
this.relationWish.put(otherFaction.getId(), relation);
|
this.relationWish.put(otherFaction.getId(), relation);
|
||||||
}
|
}
|
||||||
Faction.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelation(Faction otherFaction) {
|
public Relation getRelation(Faction otherFaction) {
|
||||||
@ -215,18 +211,6 @@ public class Faction {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
public void removeFollower(FPlayer follower) {
|
|
||||||
if (this.id != follower.factionId) {
|
|
||||||
return; // safety check
|
|
||||||
}
|
|
||||||
|
|
||||||
this.invites.remove(follower.id);
|
|
||||||
follower.resetFactionData();
|
|
||||||
follower.save();
|
|
||||||
this.save();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public ArrayList<Player> getOnlinePlayers() {
|
public ArrayList<Player> getOnlinePlayers() {
|
||||||
ArrayList<Player> ret = new ArrayList<Player>();
|
ArrayList<Player> ret = new ArrayList<Player>();
|
||||||
for (Player player: Factions.instance.getServer().getOnlinePlayers()) {
|
for (Player player: Factions.instance.getServer().getOnlinePlayers()) {
|
||||||
@ -314,7 +298,7 @@ public class Faction {
|
|||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
|
|
||||||
public static boolean save() {
|
public static boolean save() {
|
||||||
Factions.log("Saving factions to disk");
|
//Factions.log("Saving factions to disk");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DiscUtil.write(file, Factions.gson.toJson(instances));
|
DiscUtil.write(file, Factions.gson.toJson(instances));
|
||||||
@ -403,9 +387,5 @@ public class Faction {
|
|||||||
|
|
||||||
// Clean the fplayers
|
// Clean the fplayers
|
||||||
FPlayer.clean();
|
FPlayer.clean();
|
||||||
|
|
||||||
// SAVE files
|
|
||||||
Board.save();
|
|
||||||
FPlayer.save();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,9 @@ import com.nijikokun.bukkit.Permissions.Permissions;
|
|||||||
|
|
||||||
import me.taylorkelly.help.Help;
|
import me.taylorkelly.help.Help;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The data is saved to disk every 30min and on plugin disable.
|
||||||
|
*/
|
||||||
public class Factions extends JavaPlugin {
|
public class Factions extends JavaPlugin {
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// Fields
|
// Fields
|
||||||
@ -134,16 +137,18 @@ public class Factions extends JavaPlugin {
|
|||||||
pm.registerEvent(Event.Type.ENTITY_EXPLODE, this.entityListener, Event.Priority.Normal, this);
|
pm.registerEvent(Event.Type.ENTITY_EXPLODE, this.entityListener, Event.Priority.Normal, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_DAMAGED, this.blockListener, Event.Priority.Normal, this);
|
pm.registerEvent(Event.Type.BLOCK_DAMAGED, this.blockListener, Event.Priority.Normal, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_PLACED, this.blockListener, Event.Priority.Normal, this);
|
pm.registerEvent(Event.Type.BLOCK_PLACED, this.blockListener, Event.Priority.Normal, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_INTERACT, this.blockListener, Event.Priority.Normal, this);
|
pm.registerEvent(Event.Type.BLOCK_INTERACT, this.blockListener, Event.Priority.Normal, this);
|
||||||
|
|
||||||
|
// Register recurring tasks
|
||||||
|
long saveTicks = 20 * 60 * 30; // Approximately every 30 min
|
||||||
|
this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new SaveTask(), saveTicks, saveTicks);
|
||||||
|
|
||||||
log("=== INIT DONE (Took "+(System.currentTimeMillis()-timeInitStart)+"ms) ===");
|
log("=== INIT DONE (Took "+(System.currentTimeMillis()-timeInitStart)+"ms) ===");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
FPlayer.save();
|
saveAll();
|
||||||
Faction.save();
|
|
||||||
Board.save();
|
|
||||||
log("Disabled");
|
log("Disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,5 +237,15 @@ public class Factions extends JavaPlugin {
|
|||||||
public static void log(Level level, String msg) {
|
public static void log(Level level, String msg) {
|
||||||
Logger.getLogger("Minecraft").log(level, "["+instance.getDescription().getFullName()+"] "+msg);
|
Logger.getLogger("Minecraft").log(level, "["+instance.getDescription().getFullName()+"] "+msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// Save all
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static void saveAll() {
|
||||||
|
FPlayer.save();
|
||||||
|
Faction.save();
|
||||||
|
Board.save();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
12
src/com/bukkit/mcteam/factions/SaveTask.java
Normal file
12
src/com/bukkit/mcteam/factions/SaveTask.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.bukkit.mcteam.factions;
|
||||||
|
|
||||||
|
public class SaveTask implements Runnable {
|
||||||
|
|
||||||
|
//TODO are they removed on disable?
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Factions.saveAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -47,8 +47,6 @@ public class FCommandCreate extends FBaseCommand {
|
|||||||
faction.setTag(tag);
|
faction.setTag(tag);
|
||||||
me.setRole(Role.ADMIN);
|
me.setRole(Role.ADMIN);
|
||||||
me.setFaction(faction);
|
me.setFaction(faction);
|
||||||
Faction.save();
|
|
||||||
FPlayer.save();
|
|
||||||
|
|
||||||
for (FPlayer follower : FPlayer.getAllOnline()) {
|
for (FPlayer follower : FPlayer.getAllOnline()) {
|
||||||
follower.sendMessage(me.getNameAndRelevant(follower)+Conf.colorSystem+" created a new faction "+faction.getTag(follower));
|
follower.sendMessage(me.getNameAndRelevant(follower)+Conf.colorSystem+" created a new faction "+faction.getTag(follower));
|
||||||
|
@ -50,7 +50,6 @@ public class FCommandDeinvite extends FBaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
myFaction.deinvite(you);
|
myFaction.deinvite(you);
|
||||||
Faction.save();
|
|
||||||
|
|
||||||
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" revoked your invitation to "+myFaction.getTag(you));
|
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" revoked your invitation to "+myFaction.getTag(you));
|
||||||
myFaction.sendMessage(me.getNameAndRelevant(me)+Conf.colorSystem+" revoked "+you.getNameAndRelevant(me)+"'s"+Conf.colorSystem+" invitation.");
|
myFaction.sendMessage(me.getNameAndRelevant(me)+Conf.colorSystem+" revoked "+you.getNameAndRelevant(me)+"'s"+Conf.colorSystem+" invitation.");
|
||||||
|
@ -34,6 +34,7 @@ public class FCommandDescription extends FBaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
me.getFaction().setDescription(TextUtil.implode(parameters));
|
me.getFaction().setDescription(TextUtil.implode(parameters));
|
||||||
|
|
||||||
// Broadcast the description to everyone
|
// Broadcast the description to everyone
|
||||||
for (FPlayer fplayer : FPlayer.getAllOnline()) {
|
for (FPlayer fplayer : FPlayer.getAllOnline()) {
|
||||||
fplayer.sendMessage("The faction "+fplayer.getRelationColor(me)+me.getFaction().getTag()+Conf.colorSystem+" changed their description to:");
|
fplayer.sendMessage("The faction "+fplayer.getRelationColor(me)+me.getFaction().getTag()+Conf.colorSystem+" changed their description to:");
|
||||||
|
@ -50,7 +50,6 @@ public class FCommandInvite extends FBaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
myFaction.invite(you);
|
myFaction.invite(you);
|
||||||
Faction.save();
|
|
||||||
|
|
||||||
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" invited you to "+myFaction.getTag(you));
|
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" invited you to "+myFaction.getTag(you));
|
||||||
myFaction.sendMessage(me.getNameAndRelevant(me)+Conf.colorSystem+" invited "+you.getNameAndRelevant(me)+Conf.colorSystem+" to your faction.");
|
myFaction.sendMessage(me.getNameAndRelevant(me)+Conf.colorSystem+" invited "+you.getNameAndRelevant(me)+Conf.colorSystem+" to your faction.");
|
||||||
|
@ -3,7 +3,6 @@ package com.bukkit.mcteam.factions.commands;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import com.bukkit.mcteam.factions.Conf;
|
import com.bukkit.mcteam.factions.Conf;
|
||||||
import com.bukkit.mcteam.factions.FPlayer;
|
|
||||||
import com.bukkit.mcteam.factions.Faction;
|
import com.bukkit.mcteam.factions.Faction;
|
||||||
|
|
||||||
public class FCommandJoin extends FBaseCommand {
|
public class FCommandJoin extends FBaseCommand {
|
||||||
@ -53,7 +52,6 @@ public class FCommandJoin extends FBaseCommand {
|
|||||||
me.resetFactionData();
|
me.resetFactionData();
|
||||||
me.setFaction(faction);
|
me.setFaction(faction);
|
||||||
faction.deinvite(me);
|
faction.deinvite(me);
|
||||||
FPlayer.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,6 @@ public class FCommandKick extends FBaseCommand {
|
|||||||
|
|
||||||
myFaction.deinvite(you);
|
myFaction.deinvite(you);
|
||||||
you.resetFactionData();
|
you.resetFactionData();
|
||||||
FPlayer.save();
|
|
||||||
Faction.save();
|
|
||||||
|
|
||||||
myFaction.sendMessage(me.getNameAndRelevant(myFaction)+Conf.colorSystem+" kicked "+you.getNameAndRelevant(myFaction)+Conf.colorSystem+" from the faction! :O");
|
myFaction.sendMessage(me.getNameAndRelevant(myFaction)+Conf.colorSystem+" kicked "+you.getNameAndRelevant(myFaction)+Conf.colorSystem+" from the faction! :O");
|
||||||
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" kicked you from "+myFaction.getTag(you)+Conf.colorSystem+"! :O");
|
you.sendMessage(me.getNameAndRelevant(you)+Conf.colorSystem+" kicked you from "+myFaction.getTag(you)+Conf.colorSystem+"! :O");
|
||||||
|
Loading…
Reference in New Issue
Block a user