Ensure recreation of faction flags and perms on getAll and every 3 seconds to allow for runtime database deletion without server crash.
This commit is contained in:
parent
c058cd7ca5
commit
f8d7e50828
@ -39,6 +39,7 @@ import com.massivecraft.factions.integration.herochat.IntegrationHerochat;
|
|||||||
import com.massivecraft.factions.integration.lwc.IntegrationLwc;
|
import com.massivecraft.factions.integration.lwc.IntegrationLwc;
|
||||||
import com.massivecraft.factions.mixin.PowerMixin;
|
import com.massivecraft.factions.mixin.PowerMixin;
|
||||||
import com.massivecraft.factions.mixin.PowerMixinDefault;
|
import com.massivecraft.factions.mixin.PowerMixinDefault;
|
||||||
|
import com.massivecraft.factions.task.TaskFlagPermCreate;
|
||||||
import com.massivecraft.factions.task.TaskPlayerDataRemove;
|
import com.massivecraft.factions.task.TaskPlayerDataRemove;
|
||||||
import com.massivecraft.factions.task.TaskEconLandReward;
|
import com.massivecraft.factions.task.TaskEconLandReward;
|
||||||
import com.massivecraft.factions.task.TaskPlayerPowerUpdate;
|
import com.massivecraft.factions.task.TaskPlayerPowerUpdate;
|
||||||
@ -161,6 +162,7 @@ public class Factions extends MassivePlugin
|
|||||||
TaskPlayerPowerUpdate.get().activate(this);
|
TaskPlayerPowerUpdate.get().activate(this);
|
||||||
TaskPlayerDataRemove.get().activate(this);
|
TaskPlayerDataRemove.get().activate(this);
|
||||||
TaskEconLandReward.get().activate(this);
|
TaskEconLandReward.get().activate(this);
|
||||||
|
TaskFlagPermCreate.get().activate(this);
|
||||||
|
|
||||||
// Register built in chat modifiers
|
// Register built in chat modifiers
|
||||||
ChatModifierLc.get().register();
|
ChatModifierLc.get().register();
|
||||||
|
@ -2,6 +2,7 @@ package com.massivecraft.factions.entity;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.event.EventFactionsCreateFlags;
|
||||||
import com.massivecraft.massivecore.PredictateIsRegistered;
|
import com.massivecraft.massivecore.PredictateIsRegistered;
|
||||||
import com.massivecraft.massivecore.Prioritized;
|
import com.massivecraft.massivecore.Prioritized;
|
||||||
import com.massivecraft.massivecore.Registerable;
|
import com.massivecraft.massivecore.Registerable;
|
||||||
@ -52,6 +53,13 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
|
|
||||||
public static List<MFlag> getAll()
|
public static List<MFlag> getAll()
|
||||||
{
|
{
|
||||||
|
return getAll(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<MFlag> getAll(boolean isAsync)
|
||||||
|
{
|
||||||
|
setupStandardFlags();
|
||||||
|
new EventFactionsCreateFlags(isAsync).run();
|
||||||
return MFlagColl.get().getAll(PredictateIsRegistered.get());
|
return MFlagColl.get().getAll(PredictateIsRegistered.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import com.massivecraft.factions.Factions;
|
|||||||
import com.massivecraft.factions.Perm;
|
import com.massivecraft.factions.Perm;
|
||||||
import com.massivecraft.factions.Rel;
|
import com.massivecraft.factions.Rel;
|
||||||
import com.massivecraft.factions.TerritoryAccess;
|
import com.massivecraft.factions.TerritoryAccess;
|
||||||
|
import com.massivecraft.factions.event.EventFactionsCreatePerms;
|
||||||
import com.massivecraft.massivecore.PredictateIsRegistered;
|
import com.massivecraft.massivecore.PredictateIsRegistered;
|
||||||
import com.massivecraft.massivecore.Prioritized;
|
import com.massivecraft.massivecore.Prioritized;
|
||||||
import com.massivecraft.massivecore.Registerable;
|
import com.massivecraft.massivecore.Registerable;
|
||||||
@ -85,6 +86,14 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable
|
|||||||
|
|
||||||
public static List<MPerm> getAll()
|
public static List<MPerm> getAll()
|
||||||
{
|
{
|
||||||
|
return getAll(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<MPerm> getAll(boolean isAsync)
|
||||||
|
{
|
||||||
|
setupStandardPerms();
|
||||||
|
new EventFactionsCreatePerms().run();
|
||||||
|
|
||||||
return MPermColl.get().getAll(PredictateIsRegistered.get());
|
return MPermColl.get().getAll(PredictateIsRegistered.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,19 @@ package com.massivecraft.factions.event;
|
|||||||
import com.massivecraft.massivecore.event.EventMassiveCore;
|
import com.massivecraft.massivecore.event.EventMassiveCore;
|
||||||
|
|
||||||
public abstract class EventFactionsAbstract extends EventMassiveCore
|
public abstract class EventFactionsAbstract extends EventMassiveCore
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public EventFactionsAbstract()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EventFactionsAbstract(boolean isAsync)
|
||||||
|
{
|
||||||
|
super(isAsync);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.massivecraft.factions.event;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External plugins that add Faction flags should make sure they exist when this event is called.
|
||||||
|
*/
|
||||||
|
public class EventFactionsCreateFlags extends EventFactionsAbstract
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// REQUIRED EVENT CODE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
@Override public HandlerList getHandlers() { return handlers; }
|
||||||
|
public static HandlerList getHandlerList() { return handlers; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public EventFactionsCreateFlags()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public EventFactionsCreateFlags(boolean isAsync)
|
||||||
|
{
|
||||||
|
super(isAsync);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.massivecraft.factions.event;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External plugins that add Faction perms should make sure they exist when this event is called.
|
||||||
|
*/
|
||||||
|
public class EventFactionsCreatePerms extends EventFactionsAbstract
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// REQUIRED EVENT CODE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
@Override public HandlerList getHandlers() { return handlers; }
|
||||||
|
public static HandlerList getHandlerList() { return handlers; }
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package com.massivecraft.factions.task;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.entity.MFlag;
|
||||||
|
import com.massivecraft.factions.entity.MPerm;
|
||||||
|
import com.massivecraft.massivecore.ModuloRepeatTask;
|
||||||
|
import com.massivecraft.massivecore.util.TimeUnit;
|
||||||
|
|
||||||
|
public class TaskFlagPermCreate extends ModuloRepeatTask
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static TaskFlagPermCreate i = new TaskFlagPermCreate();
|
||||||
|
public static TaskFlagPermCreate get() { return i; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// OVERRIDE: MODULO REPEAT TASK
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getDelayMillis()
|
||||||
|
{
|
||||||
|
return TimeUnit.MILLIS_PER_SECOND * 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDelayMillis(long delayMillis)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(long now)
|
||||||
|
{
|
||||||
|
MPerm.getAll();
|
||||||
|
MFlag.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user