Migrate the auto increment id as well.
This commit is contained in:
parent
cfd172b7b9
commit
0402d4456a
@ -9,6 +9,7 @@ import org.bukkit.ChatColor;
|
|||||||
|
|
||||||
import com.massivecraft.mcore.store.Coll;
|
import com.massivecraft.mcore.store.Coll;
|
||||||
import com.massivecraft.mcore.store.MStore;
|
import com.massivecraft.mcore.store.MStore;
|
||||||
|
import com.massivecraft.mcore.store.idstrategy.IdStrategyAiAbstract;
|
||||||
import com.massivecraft.mcore.util.DiscUtil;
|
import com.massivecraft.mcore.util.DiscUtil;
|
||||||
import com.massivecraft.mcore.util.Txt;
|
import com.massivecraft.mcore.util.Txt;
|
||||||
import com.massivecraft.mcore.xlib.gson.reflect.TypeToken;
|
import com.massivecraft.mcore.xlib.gson.reflect.TypeToken;
|
||||||
@ -51,7 +52,6 @@ public class FactionColl extends Coll<Faction, String>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: REMEMBER: Deciding on the next AI value is part of the migration routine.
|
|
||||||
public void migrate()
|
public void migrate()
|
||||||
{
|
{
|
||||||
// Create file objects
|
// Create file objects
|
||||||
@ -65,14 +65,34 @@ public class FactionColl extends Coll<Faction, String>
|
|||||||
Type type = new TypeToken<Map<String, Faction>>(){}.getType();
|
Type type = new TypeToken<Map<String, Faction>>(){}.getType();
|
||||||
Map<String, Faction> id2faction = Factions.get().gson.fromJson(DiscUtil.readCatch(oldFile), type);
|
Map<String, Faction> id2faction = Factions.get().gson.fromJson(DiscUtil.readCatch(oldFile), type);
|
||||||
|
|
||||||
|
// We need to find the next AI id!
|
||||||
|
int highestId = 0;
|
||||||
|
|
||||||
// Set the data
|
// Set the data
|
||||||
for (Entry<String, Faction> entry : id2faction.entrySet())
|
for (Entry<String, Faction> entry : id2faction.entrySet())
|
||||||
{
|
{
|
||||||
String factionId = entry.getKey();
|
String factionId = entry.getKey();
|
||||||
Faction faction = entry.getValue();
|
Faction faction = entry.getValue();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int intFactionId = Integer.valueOf(factionId);
|
||||||
|
if (highestId < intFactionId)
|
||||||
|
{
|
||||||
|
highestId = intFactionId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// Just ignore
|
||||||
|
}
|
||||||
|
|
||||||
FactionColl.get().create(factionId).load(faction);
|
FactionColl.get().create(factionId).load(faction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IdStrategyAiAbstract idStrategy = (IdStrategyAiAbstract) FactionColl.get().getIdStrategy();
|
||||||
|
idStrategy.setNext(this, highestId + 1);
|
||||||
|
|
||||||
// Mark as migrated
|
// Mark as migrated
|
||||||
oldFile.renameTo(newFile);
|
oldFile.renameTo(newFile);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user