Harden Index Updates. Remove ancient debug output.

This commit is contained in:
Olof Larsson 2016-07-30 12:09:20 +02:00
parent 9a1f339e61
commit 2f96e747b5
No known key found for this signature in database
GPG Key ID: BBEF14F97DA52474
2 changed files with 80 additions and 16 deletions

View File

@ -46,7 +46,7 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
} }
// -------------------------------------------- // // -------------------------------------------- //
// OVERRIDE: ENTITY // LOAD
// -------------------------------------------- // // -------------------------------------------- //
@Override @Override
@ -65,6 +65,10 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
return this; return this;
} }
// -------------------------------------------- //
// IS DEFAULT
// -------------------------------------------- //
@Override @Override
public boolean isDefault() public boolean isDefault()
{ {
@ -81,30 +85,38 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
return true; return true;
} }
// -------------------------------------------- //
// UPDATE FACTION INDEXES
// -------------------------------------------- //
public void updateFactionIndexes(Faction before, Faction after)
{
// NoChange
if (MUtil.equals(before, after)) return;
// Before
if (before != null) before.mplayers.remove(this);
// After
if (after != null) after.mplayers.add(this);
}
@Override @Override
public void postAttach(String id) public void postAttach(String id)
{ {
// If inited ...
if (!Factions.get().isDatabaseInitialized()) return; if (!Factions.get().isDatabaseInitialized()) return;
Faction before = null;
// ... update the index. Faction after = this.getFaction();
Faction faction = this.getFaction(); this.updateFactionIndexes(before, after);
faction.mplayers.add(this);
//Factions.get().log(Txt.parse("<g>postAttach added <h>%s <i>aka <h>%s <i>to <h>%s <i>aka <h>%s<i>.", id, MixinDisplayName.get().getDisplayName(id), faction.getId(), faction.getName()));
} }
@Override @Override
public void preDetach(String id) public void preDetach(String id)
{ {
// If inited ...
if (!Factions.get().isDatabaseInitialized()) return; if (!Factions.get().isDatabaseInitialized()) return;
Faction before = this.getFaction();
// ... update the index. Faction after = null;
Faction faction = this.getFaction(); this.updateFactionIndexes(before, after);
faction.mplayers.remove(this);
//Factions.get().log(Txt.parse("<b>preDetach removed <h>%s <i>aka <h>%s <i>to <h>%s <i>aka <h>%s<i>.", id, MixinDisplayName.get().getDisplayName(id), faction.getId(), faction.getName()));
} }
// -------------------------------------------- // // -------------------------------------------- //
@ -280,6 +292,7 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
if (oldFaction != null) oldFaction.mplayers.remove(this); if (oldFaction != null) oldFaction.mplayers.remove(this);
if (faction != null) faction.mplayers.add(this); if (faction != null) faction.mplayers.add(this);
/*
String oldFactionIdDesc = "NULL"; String oldFactionIdDesc = "NULL";
String oldFactionNameDesc = "NULL"; String oldFactionNameDesc = "NULL";
if (oldFaction != null) if (oldFaction != null)
@ -294,8 +307,8 @@ public class MPlayer extends SenderEntity<MPlayer> implements EconomyParticipato
factionIdDesc = faction.getId(); factionIdDesc = faction.getId();
factionNameDesc = faction.getName(); factionNameDesc = faction.getName();
} }
Factions.get().log(Txt.parse("<i>setFactionId moved <h>%s <i>aka <h>%s <i>from <h>%s <i>aka <h>%s <i>to <h>%s <i>aka <h>%s<i>.", this.getId(), this.getDisplayName(IdUtil.getConsole()), oldFactionIdDesc, oldFactionNameDesc, factionIdDesc, factionNameDesc)); Factions.get().log(Txt.parse("<i>setFactionId moved <h>%s <i>aka <h>%s <i>from <h>%s <i>aka <h>%s <i>to <h>%s <i>aka <h>%s<i>.", this.getId(), this.getDisplayName(IdUtil.getConsole()), oldFactionIdDesc, oldFactionNameDesc, factionIdDesc, factionNameDesc));
*/
// Mark as changed // Mark as changed
this.changed(); this.changed();

View File

@ -1,6 +1,7 @@
package com.massivecraft.factions.entity; package com.massivecraft.factions.entity;
import java.util.Collection; import java.util.Collection;
import java.util.Map.Entry;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -8,6 +9,7 @@ import com.massivecraft.factions.Factions;
import com.massivecraft.massivecore.store.SenderColl; import com.massivecraft.massivecore.store.SenderColl;
import com.massivecraft.massivecore.util.IdUtil; import com.massivecraft.massivecore.util.IdUtil;
import com.massivecraft.massivecore.util.Txt; import com.massivecraft.massivecore.util.Txt;
import com.massivecraft.massivecore.xlib.gson.JsonObject;
public class MPlayerColl extends SenderColl<MPlayer> public class MPlayerColl extends SenderColl<MPlayer>
{ {
@ -28,6 +30,55 @@ public class MPlayerColl extends SenderColl<MPlayer>
super.onTick(); super.onTick();
} }
// -------------------------------------------- //
// UPDATE FACTION INDEXES
// -------------------------------------------- //
@Override
public synchronized MPlayer removeAtLocalFixed(String id)
{
if (!Factions.get().isDatabaseInitialized()) return super.removeAtLocalFixed(id);
MPlayer mplayer = this.id2entity.get(id);
if (mplayer != null)
{
Faction before = mplayer.getFaction();
Faction after = null;
mplayer.updateFactionIndexes(before, after);
}
return super.removeAtLocalFixed(id);
}
@Override
public synchronized void loadFromRemoteFixed(String id, Entry<JsonObject, Long> remoteEntry)
{
if (!Factions.get().isDatabaseInitialized())
{
super.loadFromRemoteFixed(id, remoteEntry);
return;
}
MPlayer mplayer = null;
// Before
Faction before = null;
if (mplayer == null) mplayer = this.id2entity.get(id);
if (mplayer != null) before = mplayer.getFaction();
// Super
super.loadFromRemoteFixed(id, remoteEntry);
// After
Faction after = null;
if (mplayer == null) mplayer = this.id2entity.get(id);
if (mplayer != null) after = mplayer.getFaction();
// Perform
if (mplayer != null) mplayer.updateFactionIndexes(before, after);
}
// -------------------------------------------- // // -------------------------------------------- //
// EXTRAS // EXTRAS
// -------------------------------------------- // // -------------------------------------------- //