Testing the new money interface
This commit is contained in:
parent
d1cebc351e
commit
ae61ef4c37
31
src/com/massivecraft/factions/ExtractorFactionAccountId.java
Normal file
31
src/com/massivecraft/factions/ExtractorFactionAccountId.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.massivecraft.factions;
|
||||||
|
|
||||||
|
import com.massivecraft.mcore.util.extractor.Extractor;
|
||||||
|
|
||||||
|
public class ExtractorFactionAccountId implements Extractor
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static ExtractorFactionAccountId i = new ExtractorFactionAccountId();
|
||||||
|
public static ExtractorFactionAccountId get() { return i; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// OVERRIDE: EXTRACTOR
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object extract(Object o)
|
||||||
|
{
|
||||||
|
if (o instanceof Faction)
|
||||||
|
{
|
||||||
|
String factionId = ((Faction)o).getId();
|
||||||
|
if (factionId == null) return null;
|
||||||
|
return "faction-"+factionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -10,7 +10,6 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||||
import com.massivecraft.factions.iface.RelationParticipator;
|
import com.massivecraft.factions.iface.RelationParticipator;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
|
||||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||||
import com.massivecraft.factions.util.*;
|
import com.massivecraft.factions.util.*;
|
||||||
import com.massivecraft.mcore.mixin.Mixin;
|
import com.massivecraft.mcore.mixin.Mixin;
|
||||||
@ -130,12 +129,6 @@ public class Faction extends Entity<Faction> implements EconomyParticipator
|
|||||||
{
|
{
|
||||||
String accountId = "faction-"+this.getId();
|
String accountId = "faction-"+this.getId();
|
||||||
|
|
||||||
// We need to override the default money given to players.
|
|
||||||
if ( ! Econ.hasAccount(accountId))
|
|
||||||
{
|
|
||||||
Econ.setBalance(accountId, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return accountId;
|
return accountId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import java.util.Map.Entry;
|
|||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
|
import com.massivecraft.mcore.money.Money;
|
||||||
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.util.DiscUtil;
|
import com.massivecraft.mcore.util.DiscUtil;
|
||||||
@ -69,18 +70,31 @@ public class FactionColl extends Coll<Faction>
|
|||||||
oldFile.renameTo(newFile);
|
oldFile.renameTo(newFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected synchronized String attach(Faction faction, Object oid, boolean noteChange)
|
||||||
|
{
|
||||||
|
String ret = super.attach(faction, oid, noteChange);
|
||||||
|
|
||||||
|
// Factions start with 0 money.
|
||||||
|
if (!Money.exists(faction, faction))
|
||||||
|
{
|
||||||
|
Money.set(faction, faction, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Faction detachId(Object oid)
|
public Faction detachId(Object oid)
|
||||||
{
|
{
|
||||||
String accountId = this.get(oid).getAccountId();
|
Faction faction = this.get(oid);
|
||||||
|
if (faction != null)
|
||||||
|
{
|
||||||
|
Money.set(faction, faction, 0);
|
||||||
|
}
|
||||||
|
|
||||||
Faction ret = super.detachId(oid);
|
Faction ret = super.detachId(oid);
|
||||||
|
|
||||||
if (Econ.isEnabled())
|
|
||||||
{
|
|
||||||
Econ.setBalance(accountId, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clean the board
|
// Clean the board
|
||||||
// TODO: Use events for this instead?
|
// TODO: Use events for this instead?
|
||||||
BoardColl.get().clean();
|
BoardColl.get().clean();
|
||||||
|
@ -34,6 +34,7 @@ import com.massivecraft.factions.task.AutoLeaveTask;
|
|||||||
import com.massivecraft.factions.task.EconLandRewardTask;
|
import com.massivecraft.factions.task.EconLandRewardTask;
|
||||||
|
|
||||||
import com.massivecraft.mcore.MPlugin;
|
import com.massivecraft.mcore.MPlugin;
|
||||||
|
import com.massivecraft.mcore.util.MUtil;
|
||||||
import com.massivecraft.mcore.xlib.gson.GsonBuilder;
|
import com.massivecraft.mcore.xlib.gson.GsonBuilder;
|
||||||
|
|
||||||
|
|
||||||
@ -70,6 +71,10 @@ public class Factions extends MPlugin
|
|||||||
// Load Server Config
|
// Load Server Config
|
||||||
ConfServer.get().load();
|
ConfServer.get().load();
|
||||||
|
|
||||||
|
// Register Faction accountId Extractor
|
||||||
|
// TODO: Perhaps this should be placed in the econ integration somewhere?
|
||||||
|
MUtil.registerExtractor(String.class, "accountId", ExtractorFactionAccountId.get());
|
||||||
|
|
||||||
// Initialize Collections
|
// Initialize Collections
|
||||||
FPlayerColl.get().init();
|
FPlayerColl.get().init();
|
||||||
FactionColl.get().init();
|
FactionColl.get().init();
|
||||||
|
Loading…
Reference in New Issue
Block a user