Major messaround with the internal events and payForCommand logic. Not done just yet though.
This commit is contained in:
parent
d3488311de
commit
61baf70ed1
@ -26,7 +26,6 @@ permissions:
|
||||
factions.claim.radius: {description: claim land in a large radius}
|
||||
factions.config: {description: change a conf.json setting}
|
||||
factions.create: {description: create a new faction}
|
||||
factions.deinvite: {description: remove a pending invitation}
|
||||
factions.demote: {description: demote lesser members in your faction}
|
||||
factions.description: {description: change the faction description}
|
||||
factions.disband: {description: disband a faction}
|
||||
@ -34,7 +33,7 @@ permissions:
|
||||
factions.flag.set: {description: set faction flags}
|
||||
factions.help: {description: display a help page}
|
||||
factions.home: {description: teleport to the faction home}
|
||||
factions.invite: {description: invite a player to your faction}
|
||||
factions.invite: {description: set if a player is invited}
|
||||
factions.join: {description: join a faction}
|
||||
factions.join.any: {description: join any faction, bypassing invitation process for closed factions}
|
||||
factions.join.others: {description: specify another player in the join command, to move them to the specified faction}
|
||||
@ -134,7 +133,6 @@ permissions:
|
||||
factions.cape.*: true
|
||||
factions.claim: true
|
||||
factions.claim.radius: true
|
||||
factions.deinvite: true
|
||||
factions.demote: true
|
||||
factions.description: true
|
||||
factions.disband: true
|
||||
|
@ -283,9 +283,10 @@ public class ConfServer extends SimpleConfig
|
||||
public static double econCostLeave = 0.0;
|
||||
public static double econCostKick = 0.0;
|
||||
public static double econCostInvite = 0.0;
|
||||
public static double econCostDeinvite = 0.0;
|
||||
public static double econCostHome = 0.0;
|
||||
public static double econCostTag = 0.0;
|
||||
public static double econCostDesc = 0.0;
|
||||
public static double econCostDescription = 0.0;
|
||||
public static double econCostTitle = 0.0;
|
||||
public static double econCostOpen = 0.0;
|
||||
public static double econCostAlly = 0.0;
|
||||
|
@ -3,13 +3,12 @@ package com.massivecraft.factions;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||
import com.massivecraft.factions.event.LandClaimEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventLeave;
|
||||
import com.massivecraft.factions.event.FactionsEventLandClaim;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.iface.RelationParticipator;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
@ -700,8 +699,8 @@ public class FPlayer extends SenderEntity<FPlayer> implements EconomyParticipato
|
||||
// if economy is enabled and they're not on the bypass list, make sure they can pay
|
||||
if (makePay && ! Econ.hasAtLeast(this, ConfServer.econCostLeave, "to leave your faction.")) return;
|
||||
|
||||
FPlayerLeaveEvent leaveEvent = new FPlayerLeaveEvent(this,myFaction,FPlayerLeaveEvent.PlayerLeaveReason.LEAVE);
|
||||
Bukkit.getServer().getPluginManager().callEvent(leaveEvent);
|
||||
FactionsEventLeave leaveEvent = new FactionsEventLeave(sender, this, myFaction, FactionsEventLeave.PlayerLeaveReason.LEAVE);
|
||||
leaveEvent.run();
|
||||
if (leaveEvent.isCancelled()) return;
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
@ -858,8 +857,8 @@ public class FPlayer extends SenderEntity<FPlayer> implements EconomyParticipato
|
||||
if ( ! Econ.hasAtLeast(payee, cost, "to claim this land")) return false;
|
||||
}
|
||||
|
||||
LandClaimEvent claimEvent = new LandClaimEvent(flocation, forFaction, this);
|
||||
Bukkit.getServer().getPluginManager().callEvent(claimEvent);
|
||||
FactionsEventLandClaim claimEvent = new FactionsEventLandClaim(sender, forFaction, flocation);
|
||||
claimEvent.run();
|
||||
if (claimEvent.isCancelled()) return false;
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
|
@ -354,39 +354,28 @@ public class Faction extends Entity<Faction> implements EconomyParticipator
|
||||
return this.isInvited(fplayer.getId());
|
||||
}
|
||||
|
||||
public boolean invite(String playerId)
|
||||
public boolean setInvited(String playerId, boolean invited)
|
||||
{
|
||||
TreeSet<String> invitedPlayerIds = this.getInvitedPlayerIds();
|
||||
if (invitedPlayerIds.add(playerId.toLowerCase()))
|
||||
boolean ret;
|
||||
if (invited)
|
||||
{
|
||||
ret = invitedPlayerIds.add(playerId.toLowerCase());
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = invitedPlayerIds.remove(playerId.toLowerCase());
|
||||
}
|
||||
this.setInvitedPlayerIds(invitedPlayerIds);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
public void invite(FPlayer fplayer)
|
||||
public void setInvited(FPlayer fplayer, boolean invited)
|
||||
{
|
||||
this.invite(fplayer.getId());
|
||||
this.setInvited(fplayer.getId(), invited);
|
||||
}
|
||||
|
||||
public boolean deinvite(String playerId)
|
||||
{
|
||||
TreeSet<String> invitedPlayerIds = this.getInvitedPlayerIds();
|
||||
if (invitedPlayerIds.remove(playerId.toLowerCase()))
|
||||
{
|
||||
this.setInvitedPlayerIds(invitedPlayerIds);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void deinvite(FPlayer fplayer)
|
||||
{
|
||||
this.deinvite(fplayer.getId());
|
||||
}
|
||||
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELD: relationWish
|
||||
// -------------------------------------------- //
|
||||
|
@ -26,7 +26,6 @@ import com.massivecraft.factions.integration.Worldguard;
|
||||
import com.massivecraft.factions.integration.herochat.HerochatFeatures;
|
||||
import com.massivecraft.factions.listeners.FactionsListenerChat;
|
||||
import com.massivecraft.factions.listeners.FactionsListenerEcon;
|
||||
import com.massivecraft.factions.listeners.TodoFactionsEntityListener;
|
||||
import com.massivecraft.factions.listeners.FactionsListenerExploit;
|
||||
import com.massivecraft.factions.listeners.FactionsListenerMain;
|
||||
import com.massivecraft.factions.listeners.TodoFactionsPlayerListener;
|
||||
@ -57,7 +56,6 @@ public class Factions extends MPlugin
|
||||
|
||||
// Listeners
|
||||
public TodoFactionsPlayerListener playerListener;
|
||||
public TodoFactionsEntityListener entityListener;
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
@ -90,13 +88,10 @@ public class Factions extends MPlugin
|
||||
// Right now only a few situations are handled through this listener.
|
||||
FactionsListenerEcon.get().setup();
|
||||
|
||||
// TODO: Get rid of these
|
||||
// TODO: Get rid of this one
|
||||
this.playerListener = new TodoFactionsPlayerListener();
|
||||
getServer().getPluginManager().registerEvents(this.playerListener, this);
|
||||
|
||||
this.entityListener = new TodoFactionsEntityListener();
|
||||
getServer().getPluginManager().registerEvents(this.entityListener, this);
|
||||
|
||||
// Schedule recurring non-tps-dependent tasks
|
||||
AutoLeaveTask.get().schedule(this);
|
||||
EconLandRewardTask.get().schedule(this);
|
||||
|
@ -23,7 +23,6 @@ public enum Perm
|
||||
CLAIM_RADIUS("claim.radius"),
|
||||
CONFIG("config"),
|
||||
CREATE("create"),
|
||||
DEINVITE("deinvite"),
|
||||
DEMOTE("demote"),
|
||||
DESCRIPTION("description"),
|
||||
DISBAND("disband"),
|
||||
|
@ -17,7 +17,6 @@ public class CmdFactions extends FCommand
|
||||
public CmdFactionsCape cmdFactionsCape = new CmdFactionsCape();
|
||||
public CmdFactionsClaim cmdFactionsClaim = new CmdFactionsClaim();
|
||||
public CmdFactionsCreate cmdFactionsCreate = new CmdFactionsCreate();
|
||||
public CmdFactionsDeinvite cmdFactionsDeinvite = new CmdFactionsDeinvite();
|
||||
public CmdFactionsDemote cmdFactionsDemote = new CmdFactionsDemote();
|
||||
public CmdFactionsDescription cmdFactionsDescription = new CmdFactionsDescription();
|
||||
public CmdFactionsDisband cmdFactionsDisband = new CmdFactionsDisband();
|
||||
@ -77,7 +76,6 @@ public class CmdFactions extends FCommand
|
||||
this.addSubCommand(this.cmdFactionsPerm);
|
||||
this.addSubCommand(this.cmdFactionsFlag);
|
||||
this.addSubCommand(this.cmdFactionsInvite);
|
||||
this.addSubCommand(this.cmdFactionsDeinvite);
|
||||
this.addSubCommand(this.cmdFactionsOpen);
|
||||
this.addSubCommand(this.cmdFactionsMoney);
|
||||
this.addSubCommand(this.cmdFactionsClaim);
|
||||
|
@ -12,8 +12,8 @@ import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||
import com.massivecraft.factions.event.FactionCreateEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventJoin;
|
||||
import com.massivecraft.factions.event.FactionsEventCreate;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsCreate extends FCommand
|
||||
@ -54,29 +54,19 @@ public class CmdFactionsCreate extends FCommand
|
||||
// trigger the faction creation event (cancellable)
|
||||
String factionId = FactionColl.get().getIdStrategy().generate(FactionColl.get());
|
||||
|
||||
FactionCreateEvent createEvent = new FactionCreateEvent(sender, tag, factionId);
|
||||
FactionsEventCreate createEvent = new FactionsEventCreate(sender, tag, factionId);
|
||||
Bukkit.getServer().getPluginManager().callEvent(createEvent);
|
||||
if (createEvent.isCancelled()) return;
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!payForCommand(ConfServer.econCostCreate)) return;
|
||||
|
||||
Faction faction = FactionColl.get().create(factionId);
|
||||
|
||||
// TODO: Why would this even happen??? Auto increment clash??
|
||||
if (faction == null)
|
||||
{
|
||||
msg("<b>There was an internal error while trying to create your faction. Please try again.");
|
||||
return;
|
||||
}
|
||||
|
||||
// finish setting up the Faction
|
||||
faction.setTag(tag);
|
||||
|
||||
// trigger the faction join event for the creator
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayerColl.get().get(sender),faction,FPlayerJoinEvent.PlayerJoinReason.CREATE);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
// join event cannot be cancelled or you'll have an empty faction
|
||||
FactionsEventJoin joinEvent = new FactionsEventJoin(sender, fme, faction, FactionsEventJoin.PlayerJoinReason.CREATE);
|
||||
joinEvent.run();
|
||||
// NOTE: join event cannot be cancelled or you'll have an empty faction
|
||||
|
||||
// finish setting up the FPlayer
|
||||
fme.setRole(Rel.LEADER);
|
||||
|
@ -1,44 +0,0 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.FPerm;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsDeinvite extends FCommand
|
||||
{
|
||||
|
||||
public CmdFactionsDeinvite()
|
||||
{
|
||||
this.addAliases("deinvite", "deinv");
|
||||
|
||||
this.addRequiredArg("player");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.DEINVITE.node));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
if ( ! FPerm.INVITE.has(sender, myFaction, true)) return;
|
||||
|
||||
FPlayer you = this.arg(0, ARFPlayer.getStartAny());
|
||||
if (you == null) return;
|
||||
|
||||
if (you.getFaction() == myFaction)
|
||||
{
|
||||
msg("%s<i> is already a member of %s", you.getName(), myFaction.getTag());
|
||||
msg("<i>You might want to: %s", Factions.get().getOuterCmdFactions().cmdFactionsKick.getUseageTemplate(false));
|
||||
return;
|
||||
}
|
||||
|
||||
myFaction.deinvite(you);
|
||||
|
||||
you.msg("%s<i> revoked your invitation to <h>%s<i>.", fme.describeTo(you), myFaction.describeTo(you));
|
||||
|
||||
myFaction.msg("%s<i> revoked %s's<i> invitation.", fme.describeTo(myFaction), you.describeTo(myFaction));
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionsEventDescriptionChange;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.mixin.Mixin;
|
||||
|
||||
@ -23,11 +23,19 @@ public class CmdFactionsDescription extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(ConfServer.econCostDesc)) return;
|
||||
// Args
|
||||
String newDescription = this.argConcatFrom(1);
|
||||
|
||||
// Event
|
||||
FactionsEventDescriptionChange event = new FactionsEventDescriptionChange(sender, myFaction, newDescription);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newDescription = event.getNewDescription();
|
||||
|
||||
// Apply
|
||||
myFaction.setDescription(this.argConcatFrom(1));
|
||||
|
||||
// Inform
|
||||
myFaction.msg("<i>%s <i>set your faction description to:\n%s", Mixin.getDisplayName(sender), myFaction.getDescription());
|
||||
}
|
||||
|
||||
|
@ -4,8 +4,8 @@ import org.bukkit.Bukkit;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||
import com.massivecraft.factions.event.FactionDisbandEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventLeave;
|
||||
import com.massivecraft.factions.event.FactionsEventDisband;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.factions.FPerm;
|
||||
@ -42,14 +42,15 @@ public class CmdFactionsDisband extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
FactionDisbandEvent disbandEvent = new FactionDisbandEvent(me, faction.getId());
|
||||
FactionsEventDisband disbandEvent = new FactionsEventDisband(me, faction);
|
||||
Bukkit.getServer().getPluginManager().callEvent(disbandEvent);
|
||||
if(disbandEvent.isCancelled()) return;
|
||||
|
||||
// Send FPlayerLeaveEvent for each player in the faction
|
||||
for ( FPlayer fplayer : faction.getFPlayers() )
|
||||
{
|
||||
Bukkit.getServer().getPluginManager().callEvent(new FPlayerLeaveEvent(fplayer, faction, FPlayerLeaveEvent.PlayerLeaveReason.DISBAND));
|
||||
FactionsEventLeave leaveEvent = new FactionsEventLeave(sender, fplayer, faction, FactionsEventLeave.PlayerLeaveReason.DISBAND);
|
||||
leaveEvent.run();
|
||||
}
|
||||
|
||||
// Inform all players
|
||||
|
@ -1,11 +1,12 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FPerm;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.event.FactionsEventInvitedChange;
|
||||
import com.massivecraft.mcore.cmd.arg.ARBoolean;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
|
||||
@ -16,6 +17,7 @@ public class CmdFactionsInvite extends FCommand
|
||||
this.addAliases("inv", "invite");
|
||||
|
||||
this.addRequiredArg("player");
|
||||
this.addOptionalArg("yes/no", "toggle");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.INVITE.node));
|
||||
this.addRequirements(ReqIsPlayer.get());
|
||||
@ -24,27 +26,44 @@ public class CmdFactionsInvite extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
if ( ! FPerm.INVITE.has(sender, myFaction, true)) return;
|
||||
// Args
|
||||
FPlayer fplayer = this.arg(0, ARFPlayer.getStartAny());
|
||||
if (fplayer == null) return;
|
||||
|
||||
FPlayer you = this.arg(0, ARFPlayer.getStartAny());
|
||||
if (you == null) return;
|
||||
Boolean newInvited = this.arg(1, ARBoolean.get(), !myFaction.isInvited(fplayer));
|
||||
if (newInvited == null) return;
|
||||
|
||||
if (you.getFaction() == myFaction)
|
||||
// Allready member?
|
||||
if (fplayer.getFaction() == myFaction)
|
||||
{
|
||||
msg("%s<i> is already a member of %s", you.getName(), myFaction.getTag());
|
||||
msg("%s<i> is already a member of %s", fplayer.getName(), myFaction.getTag());
|
||||
msg("<i>You might want to: " + Factions.get().getOuterCmdFactions().cmdFactionsKick.getUseageTemplate(false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (fme != null && ! FPerm.INVITE.has(fme, myFaction)) return;
|
||||
// FPerm
|
||||
if ( ! FPerm.INVITE.has(sender, myFaction, true)) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(ConfServer.econCostInvite)) return;
|
||||
// Event
|
||||
FactionsEventInvitedChange event = new FactionsEventInvitedChange(sender, fplayer, myFaction, newInvited);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newInvited = event.isNewInvited();
|
||||
|
||||
myFaction.invite(you);
|
||||
// Apply
|
||||
myFaction.setInvited(fplayer, newInvited);
|
||||
|
||||
you.msg("%s<i> invited you to %s", fme.describeTo(you, true), myFaction.describeTo(you));
|
||||
myFaction.msg("%s<i> invited %s<i> to your faction.", fme.describeTo(myFaction, true), you.describeTo(myFaction));
|
||||
// Inform
|
||||
if (newInvited)
|
||||
{
|
||||
fplayer.msg("%s<i> invited you to %s", fme.describeTo(fplayer, true), myFaction.describeTo(fplayer));
|
||||
myFaction.msg("%s<i> invited %s<i> to your faction.", fme.describeTo(myFaction, true), fplayer.describeTo(myFaction));
|
||||
}
|
||||
else
|
||||
{
|
||||
fplayer.msg("%s<i> revoked your invitation to <h>%s<i>.", fme.describeTo(fplayer), myFaction.describeTo(fplayer));
|
||||
myFaction.msg("%s<i> revoked %s's<i> invitation.", fme.describeTo(myFaction), fplayer.describeTo(myFaction));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventJoin;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsJoin extends FCommand
|
||||
@ -75,7 +75,7 @@ public class CmdFactionsJoin extends FCommand
|
||||
}
|
||||
|
||||
// trigger the join event (cancellable)
|
||||
FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayerColl.get().get(me),faction,FPlayerJoinEvent.PlayerJoinReason.COMMAND);
|
||||
FactionsEventJoin joinEvent = new FactionsEventJoin(FPlayerColl.get().get(me),faction,FactionsEventJoin.PlayerJoinReason.JOIN);
|
||||
Bukkit.getServer().getPluginManager().callEvent(joinEvent);
|
||||
if (joinEvent.isCancelled()) return;
|
||||
|
||||
|
@ -10,7 +10,7 @@ import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventLeave;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsKick extends FCommand
|
||||
@ -55,7 +55,7 @@ public class CmdFactionsKick extends FCommand
|
||||
if (fme != null && ! FPerm.KICK.has(fme, yourFaction)) return;
|
||||
|
||||
// trigger the leave event (cancellable) [reason:kicked]
|
||||
FPlayerLeaveEvent event = new FPlayerLeaveEvent(you, you.getFaction(), FPlayerLeaveEvent.PlayerLeaveReason.KICKED);
|
||||
FactionsEventLeave event = new FactionsEventLeave(you, you.getFaction(), FactionsEventLeave.PlayerLeaveReason.KICKED);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) return;
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Faction;
|
||||
@ -9,7 +7,7 @@ import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventJoin;
|
||||
import com.massivecraft.factions.util.RelationUtil;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
@ -67,8 +65,8 @@ public class CmdFactionsLeader extends FCommand
|
||||
// only perform a FPlayerJoinEvent when newLeader isn't actually in the faction
|
||||
if (newLeader.getFaction() != targetFaction)
|
||||
{
|
||||
FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayerColl.get().get(me),targetFaction,FPlayerJoinEvent.PlayerJoinReason.LEADER);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
FactionsEventJoin event = new FactionsEventJoin(sender, newLeader, targetFaction, FactionsEventJoin.PlayerJoinReason.LEADER);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionsEventOpenChange;
|
||||
import com.massivecraft.mcore.cmd.arg.ARBoolean;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
@ -24,17 +24,21 @@ public class CmdFactionsOpen extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
Boolean target = this.arg(0, ARBoolean.get(), !myFaction.isOpen());
|
||||
if (target == null) return;
|
||||
// Args
|
||||
Boolean newOpen = this.arg(0, ARBoolean.get(), !myFaction.isOpen());
|
||||
if (newOpen == null) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(ConfServer.econCostOpen)) return;
|
||||
// Event
|
||||
FactionsEventOpenChange event = new FactionsEventOpenChange(sender, myFaction, newOpen);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newOpen = event.isNewOpen();
|
||||
|
||||
myFaction.setOpen(target);
|
||||
|
||||
String descTarget = myFaction.isOpen() ? "open" : "closed";
|
||||
// Apply
|
||||
myFaction.setOpen(newOpen);
|
||||
|
||||
// Inform
|
||||
String descTarget = myFaction.isOpen() ? "open" : "closed";
|
||||
myFaction.msg("%s<i> changed the faction to <h>%s<i>.", fme.describeTo(myFaction, true), descTarget);
|
||||
for (Faction faction : FactionColl.get().getAll())
|
||||
{
|
||||
|
@ -1,7 +1,5 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.factions.Faction;
|
||||
@ -9,7 +7,7 @@ import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionRelationEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventRelationChange;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
@ -28,8 +26,11 @@ public abstract class CmdFactionsRelationAbstract extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
Faction them = this.arg(0, ARFaction.get());
|
||||
if (them == null) return;
|
||||
// Args
|
||||
Faction otherFaction = this.arg(0, ARFaction.get());
|
||||
if (otherFaction == null) return;
|
||||
|
||||
Rel newRelation = targetRelation;
|
||||
|
||||
/*if ( ! them.isNormal())
|
||||
{
|
||||
@ -37,60 +38,60 @@ public abstract class CmdFactionsRelationAbstract extends FCommand
|
||||
return;
|
||||
}*/
|
||||
|
||||
if (them == myFaction)
|
||||
// Verify
|
||||
|
||||
if (otherFaction == myFaction)
|
||||
{
|
||||
msg("<b>Nope! You can't declare a relation to yourself :)");
|
||||
return;
|
||||
}
|
||||
|
||||
if (myFaction.getRelationWish(them) == targetRelation)
|
||||
if (myFaction.getRelationWish(otherFaction) == newRelation)
|
||||
{
|
||||
msg("<b>You already have that relation wish set with %s.", them.getTag());
|
||||
msg("<b>You already have that relation wish set with %s.", otherFaction.getTag());
|
||||
return;
|
||||
}
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(targetRelation.getRelationCost())) return;
|
||||
// Event
|
||||
FactionsEventRelationChange event = new FactionsEventRelationChange(sender, myFaction, otherFaction, newRelation);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newRelation = event.getNewRelation();
|
||||
|
||||
// try to set the new relation
|
||||
Rel oldRelation = myFaction.getRelationTo(them, true);
|
||||
myFaction.setRelationWish(them, targetRelation);
|
||||
Rel currentRelation = myFaction.getRelationTo(them, true);
|
||||
myFaction.setRelationWish(otherFaction, newRelation);
|
||||
Rel currentRelation = myFaction.getRelationTo(otherFaction, true);
|
||||
|
||||
// if the relation change was successful
|
||||
if (targetRelation == currentRelation)
|
||||
if (newRelation == currentRelation)
|
||||
{
|
||||
// trigger the faction relation event
|
||||
FactionRelationEvent relationEvent = new FactionRelationEvent(myFaction, them, oldRelation, currentRelation);
|
||||
Bukkit.getServer().getPluginManager().callEvent(relationEvent);
|
||||
|
||||
them.msg("%s<i> is now %s.", myFaction.describeTo(them, true), targetRelation.getDescFactionOne());
|
||||
myFaction.msg("%s<i> is now %s.", them.describeTo(myFaction, true), targetRelation.getDescFactionOne());
|
||||
otherFaction.msg("%s<i> is now %s.", myFaction.describeTo(otherFaction, true), newRelation.getDescFactionOne());
|
||||
myFaction.msg("%s<i> is now %s.", otherFaction.describeTo(myFaction, true), newRelation.getDescFactionOne());
|
||||
}
|
||||
// inform the other faction of your request
|
||||
else
|
||||
{
|
||||
them.msg("%s<i> wishes to be %s.", myFaction.describeTo(them, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||
them.msg("<i>Type <c>/"+ConfServer.baseCommandAliases.get(0)+" "+targetRelation+" "+myFaction.getTag()+"<i> to accept.");
|
||||
myFaction.msg("%s<i> were informed that you wish to be %s<i>.", them.describeTo(myFaction, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||
otherFaction.msg("%s<i> wishes to be %s.", myFaction.describeTo(otherFaction, true), newRelation.getColor()+newRelation.getDescFactionOne());
|
||||
otherFaction.msg("<i>Type <c>/"+ConfServer.baseCommandAliases.get(0)+" "+newRelation+" "+myFaction.getTag()+"<i> to accept.");
|
||||
myFaction.msg("%s<i> were informed that you wish to be %s<i>.", otherFaction.describeTo(myFaction, true), newRelation.getColor()+newRelation.getDescFactionOne());
|
||||
}
|
||||
|
||||
// TODO: The ally case should work!!
|
||||
// * this might have to be bumped up to make that happen, & allow ALLY,NEUTRAL only
|
||||
if ( targetRelation != Rel.TRUCE && them.getFlag(FFlag.PEACEFUL))
|
||||
if ( newRelation != Rel.TRUCE && otherFaction.getFlag(FFlag.PEACEFUL))
|
||||
{
|
||||
them.msg("<i>This will have no effect while your faction is peaceful.");
|
||||
otherFaction.msg("<i>This will have no effect while your faction is peaceful.");
|
||||
myFaction.msg("<i>This will have no effect while their faction is peaceful.");
|
||||
}
|
||||
|
||||
if ( targetRelation != Rel.TRUCE && myFaction.getFlag(FFlag.PEACEFUL))
|
||||
if ( newRelation != Rel.TRUCE && myFaction.getFlag(FFlag.PEACEFUL))
|
||||
{
|
||||
them.msg("<i>This will have no effect while their faction is peaceful.");
|
||||
otherFaction.msg("<i>This will have no effect while their faction is peaceful.");
|
||||
myFaction.msg("<i>This will have no effect while your faction is peaceful.");
|
||||
}
|
||||
|
||||
SpoutFeatures.updateTitle(myFaction, them);
|
||||
SpoutFeatures.updateTitle(them, myFaction);
|
||||
SpoutFeatures.updateTitle(myFaction, otherFaction);
|
||||
SpoutFeatures.updateTitle(otherFaction, myFaction);
|
||||
SpoutFeatures.updateTerritoryDisplayLoc(null);
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.event.FactionsHomeChangeEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventHomeChange;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
@ -48,14 +48,11 @@ public class CmdFactionsSethome extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
FactionsHomeChangeEvent event = new FactionsHomeChangeEvent(sender, FactionsHomeChangeEvent.REASON_COMMAND_SETHOME, faction, newHome);
|
||||
FactionsEventHomeChange event = new FactionsEventHomeChange(sender, faction, newHome);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newHome = event.getNewHome();
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(ConfServer.econCostSethome)) return;
|
||||
|
||||
faction.setHome(newHome);
|
||||
|
||||
faction.msg("%s<i> set the home for your faction. You can now use:", fme.describeTo(myFaction, true));
|
||||
|
@ -10,7 +10,7 @@ import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionRenameEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventTagChange;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.util.MiscUtil;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
@ -31,33 +31,33 @@ public class CmdFactionsTag extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
String tag = this.arg(0);
|
||||
// Arg
|
||||
String newTag = this.arg(0);
|
||||
|
||||
// TODO does not first test cover selfcase?
|
||||
if (FactionColl.get().isTagTaken(tag) && ! MiscUtil.getComparisonString(tag).equals(myFaction.getComparisonTag()))
|
||||
if (FactionColl.get().isTagTaken(newTag) && ! MiscUtil.getComparisonString(newTag).equals(myFaction.getComparisonTag()))
|
||||
{
|
||||
msg("<b>That tag is already taken");
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<String> errors = new ArrayList<String>();
|
||||
errors.addAll(FactionColl.validateTag(tag));
|
||||
errors.addAll(FactionColl.validateTag(newTag));
|
||||
if (errors.size() > 0)
|
||||
{
|
||||
sendMessage(errors);
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the faction rename event (cancellable)
|
||||
FactionRenameEvent renameEvent = new FactionRenameEvent(fme, tag);
|
||||
// Event
|
||||
FactionsEventTagChange renameEvent = new FactionsEventTagChange(sender, myFaction, newTag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(renameEvent);
|
||||
if (renameEvent.isCancelled()) return;
|
||||
newTag = renameEvent.getNewTag();
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!payForCommand(ConfServer.econCostTag)) return;
|
||||
|
||||
// Apply
|
||||
String oldtag = myFaction.getTag();
|
||||
myFaction.setTag(tag);
|
||||
myFaction.setTag(newTag);
|
||||
|
||||
// Inform
|
||||
myFaction.msg("%s<i> changed your faction tag to %s", fme.describeTo(myFaction, true), myFaction.getTag(myFaction));
|
||||
|
@ -6,6 +6,7 @@ import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionsEventTitleChange;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.arg.ARString;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
@ -26,18 +27,24 @@ public class CmdFactionsTitle extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
// Args
|
||||
FPlayer you = this.arg(0, ARFPlayer.getStartAny());
|
||||
if (you == null) return;
|
||||
|
||||
String title = this.argConcatFrom(1, ARString.get(), "");
|
||||
if (title == null) return;
|
||||
String newTitle = this.argConcatFrom(1, ARString.get(), "");
|
||||
if (newTitle == null) return;
|
||||
|
||||
// Verify
|
||||
if ( ! canIAdministerYou(fme, you)) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if (!payForCommand(ConfServer.econCostTitle)) return;
|
||||
// Event
|
||||
FactionsEventTitleChange event = new FactionsEventTitleChange(sender, you, newTitle);
|
||||
event.run();
|
||||
if (event.isCancelled()) return;
|
||||
newTitle = event.getNewTitle();
|
||||
|
||||
you.setTitle(title);
|
||||
// Apply
|
||||
you.setTitle(newTitle);
|
||||
|
||||
// Inform
|
||||
myFaction.msg("%s<i> changed a title: %s", fme.describeTo(myFaction, true), you.describeTo(myFaction, true));
|
||||
|
@ -3,7 +3,7 @@ package com.massivecraft.factions.cmd;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.event.LandUnclaimEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventLandUnclaim;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.BoardColl;
|
||||
@ -33,7 +33,7 @@ public class CmdFactionsUnclaim extends FCommand
|
||||
|
||||
if ( ! FPerm.TERRITORY.has(sender, otherFaction, true)) return;
|
||||
|
||||
LandUnclaimEvent unclaimEvent = new LandUnclaimEvent(chunk, otherFaction, fme);
|
||||
FactionsEventLandUnclaim unclaimEvent = new FactionsEventLandUnclaim(sender, otherFaction, chunk);
|
||||
Bukkit.getServer().getPluginManager().callEvent(unclaimEvent);
|
||||
if(unclaimEvent.isCancelled()) return;
|
||||
|
||||
|
@ -8,7 +8,7 @@ import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.LandUnclaimAllEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventLandUnclaimAll;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
@ -39,7 +39,7 @@ public class CmdFactionsUnclaimall extends FCommand
|
||||
}
|
||||
}
|
||||
|
||||
LandUnclaimAllEvent unclaimAllEvent = new LandUnclaimAllEvent(myFaction, fme);
|
||||
FactionsEventLandUnclaimAll unclaimAllEvent = new FactionsEventLandUnclaimAll(sender, myFaction);
|
||||
Bukkit.getServer().getPluginManager().callEvent(unclaimAllEvent);
|
||||
// this event cannot be cancelled
|
||||
|
||||
|
@ -4,7 +4,6 @@ import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.MCommand;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
@ -61,8 +60,8 @@ public abstract class FCommand extends MCommand
|
||||
}
|
||||
|
||||
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
||||
public boolean payForCommand(double cost)
|
||||
/*public boolean payForCommand(double cost)
|
||||
{
|
||||
return Econ.payForAction(cost, sender, this.getDesc());
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
@ -1,68 +0,0 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
|
||||
public class FactionDisbandEvent extends Event implements Cancellable
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
// TODO: Could the fields be reorganized to achieve symmetry?
|
||||
|
||||
private String id;
|
||||
private CommandSender sender;
|
||||
|
||||
public Faction getFaction()
|
||||
{
|
||||
return FactionColl.get().get(id);
|
||||
}
|
||||
|
||||
public FPlayer getFPlayer()
|
||||
{
|
||||
return FPlayer.get(sender);
|
||||
}
|
||||
|
||||
public CommandSender getPlayer()
|
||||
{
|
||||
return this.sender;
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionDisbandEvent(CommandSender sender, String factionId)
|
||||
{
|
||||
this.cancelled = false;
|
||||
this.sender = sender;
|
||||
this.id = factionId;
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// ASSORTED
|
||||
// -------------------------------------------- //
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionRenameEvent extends Event implements Cancellable
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private String tag;
|
||||
|
||||
|
||||
// TODO: fix these
|
||||
public Player getPlayer() { return this.fplayer.getPlayer(); }
|
||||
public String getOldFactionTag() { return this.faction.getTag(); }
|
||||
public String getFactionTag() { return this.tag; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionRenameEvent(FPlayer sender, String newTag)
|
||||
{
|
||||
this.cancelled = false;
|
||||
this.fplayer = sender;
|
||||
this.faction = sender.getFaction(); // TODO: Players can only rename their own faction? A field and constructor rewrite is probably pending for this class...
|
||||
this.tag = newTag;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import com.massivecraft.mcore.event.MCoreEvent;
|
||||
|
||||
public abstract class FactionsEventAbstract extends MCoreEvent
|
||||
{
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.mcore.event.MCoreEvent;
|
||||
|
||||
public abstract class FactionsEventAbstractSender extends MCoreEvent
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final CommandSender sender;
|
||||
public CommandSender getSender() { return this.sender; }
|
||||
public FPlayer getFSender() { return FPlayer.get(this.sender); }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventAbstractSender(CommandSender sender)
|
||||
{
|
||||
this.sender = sender;
|
||||
}
|
||||
}
|
@ -1,11 +1,9 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class FactionCreateEvent extends Event implements Cancellable
|
||||
public class FactionsEventCreate extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -19,13 +17,6 @@ public class FactionCreateEvent extends Event implements Cancellable
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled = false;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
private final CommandSender sender;
|
||||
public CommandSender getSender() { return this.sender; }
|
||||
|
||||
// TODO: How do we know what universe? Should we perhaps actually create the faction?
|
||||
|
||||
private String factionTag;
|
||||
@ -38,9 +29,9 @@ public class FactionCreateEvent extends Event implements Cancellable
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionCreateEvent(CommandSender sender, String factionTag, String factionId)
|
||||
public FactionsEventCreate(CommandSender sender, String factionTag, String factionId)
|
||||
{
|
||||
this.sender = sender;
|
||||
super(sender);
|
||||
this.factionTag = factionTag;
|
||||
this.factionId = factionId;
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionsEventDescriptionChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private String newDescription;
|
||||
public String getNewDescription() { return this.newDescription; }
|
||||
public void setNewDescription(String newDescription) { this.newDescription = newDescription; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventDescriptionChange(CommandSender sender, Faction faction, String newDescription)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.newDescription = newDescription;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionsEventDisband extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final String factionId;
|
||||
public String getFactionId() { return this.factionId; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventDisband(CommandSender sender, Faction faction)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.factionId = faction.getId();
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// ASSORTED
|
||||
// -------------------------------------------- //
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -4,19 +4,10 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.mcore.event.MCoreCancellableEvent;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
|
||||
public class FactionsHomeChangeEvent extends MCoreCancellableEvent
|
||||
public class FactionsEventHomeChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// CONSTANTS
|
||||
// -------------------------------------------- //
|
||||
|
||||
public final static String REASON_COMMAND_SETHOME = "FACTIONS_COMMAND_SETHOME";
|
||||
public final static String REASON_VERIFY_FAILED = "FACTIONS_VERIFY_FAILED";
|
||||
public final static String REASON_UNDEFINED = "FACTIONS_UNDEFINED";
|
||||
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
@ -29,12 +20,6 @@ public class FactionsHomeChangeEvent extends MCoreCancellableEvent
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final CommandSender sender;
|
||||
public CommandSender getSender() { return this.sender; }
|
||||
|
||||
private final String reason;
|
||||
public String getReason() { return this.reason; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
@ -46,10 +31,9 @@ public class FactionsHomeChangeEvent extends MCoreCancellableEvent
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsHomeChangeEvent(CommandSender sender, String reason, Faction faction, PS newHome)
|
||||
public FactionsEventHomeChange(CommandSender sender, Faction faction, PS newHome)
|
||||
{
|
||||
this.sender = sender;
|
||||
this.reason = reason;
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.newHome = newHome;
|
||||
}
|
26
src/com/massivecraft/factions/event/LandUnclaimAllEvent.java → src/com/massivecraft/factions/event/FactionsEventInvitedChange.java
Executable file → Normal file
26
src/com/massivecraft/factions/event/LandUnclaimAllEvent.java → src/com/massivecraft/factions/event/FactionsEventInvitedChange.java
Executable file → Normal file
@ -1,13 +1,12 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class LandUnclaimAllEvent extends Event
|
||||
public class FactionsEventInvitedChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -21,25 +20,26 @@ public class LandUnclaimAllEvent extends Event
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
// TODO: These methods seem redundant? Why were they added? Can I remove them?
|
||||
public String getFactionId() { return this.faction.getId(); }
|
||||
public String getFactionTag() { return this.faction.getTag(); }
|
||||
public Player getPlayer() { return this.fplayer.getPlayer(); }
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private boolean newInvited;
|
||||
public boolean isNewInvited() { return this.newInvited; }
|
||||
public void setNewInvited(boolean newInvited) { this.newInvited = newInvited; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public LandUnclaimAllEvent(Faction faction, FPlayer fplayer)
|
||||
public FactionsEventInvitedChange(CommandSender sender, FPlayer fplayer, Faction faction, boolean newInvited)
|
||||
{
|
||||
this.faction = faction;
|
||||
super(sender);
|
||||
this.fplayer = fplayer;
|
||||
this.faction = faction;
|
||||
this.newInvited = newInvited;
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +1,12 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FPlayerJoinEvent extends Event implements Cancellable
|
||||
public class FactionsEventJoin extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -21,45 +20,34 @@ public class FPlayerJoinEvent extends Event implements Cancellable
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private FPlayer fplayer;
|
||||
private Faction faction;
|
||||
private PlayerJoinReason reason;
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
private boolean cancelled = false;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final PlayerJoinReason reason;
|
||||
public PlayerJoinReason getReason() { return reason; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FPlayerJoinEvent(FPlayer fplayer, Faction faction, PlayerJoinReason reason)
|
||||
public FactionsEventJoin(CommandSender sender, FPlayer fplayer, Faction faction, PlayerJoinReason reason)
|
||||
{
|
||||
super(sender);
|
||||
this.fplayer = fplayer;
|
||||
this.faction = faction;
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
public FPlayer getFPlayer()
|
||||
{
|
||||
return fplayer;
|
||||
}
|
||||
public Faction getFaction()
|
||||
{
|
||||
return faction;
|
||||
}
|
||||
public PlayerJoinReason getReason()
|
||||
{
|
||||
return reason;
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// INTERNAL ENUM
|
||||
// -------------------------------------------- //
|
||||
|
||||
public enum PlayerJoinReason
|
||||
{
|
||||
CREATE, LEADER, COMMAND
|
||||
CREATE, LEADER, JOIN
|
||||
}
|
||||
|
||||
}
|
@ -1,16 +1,12 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class LandUnclaimEvent extends Event implements Cancellable
|
||||
public class FactionsEventLandClaim extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -24,34 +20,21 @@ public class LandUnclaimEvent extends Event implements Cancellable
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
private final PS chunk;
|
||||
public PS getChunk() { return this.chunk; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
// TODO: These methods seem redundant? Why were they added? Can I remove them?
|
||||
public String getFactionId() { return this.faction.getId(); }
|
||||
public String getFactionTag() { return this.faction.getTag(); }
|
||||
public Player getPlayer() { return this.fplayer.getPlayer(); }
|
||||
private final PS chunk;
|
||||
public PS getChunk() { return this.chunk; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public LandUnclaimEvent(PS chunk, Faction faction, FPlayer fplayer)
|
||||
public FactionsEventLandClaim(CommandSender sender, Faction faction, PS chunk)
|
||||
{
|
||||
this.cancelled = false;
|
||||
this.chunk = chunk.getChunk(true);
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.fplayer = fplayer;
|
||||
this.chunk = chunk.getChunk(true);
|
||||
}
|
||||
|
||||
}
|
@ -1,16 +1,12 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class LandClaimEvent extends Event implements Cancellable
|
||||
public class FactionsEventLandUnclaim extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -24,34 +20,21 @@ public class LandClaimEvent extends Event implements Cancellable
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled = false;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
private final PS chunk;
|
||||
public PS getChunk() { return this.chunk; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
// TODO: These methods seem redundant? Why were they added? Can I remove them?
|
||||
public String getFactionId() { return faction.getId(); }
|
||||
public String getFactionTag() { return this.faction.getTag(); }
|
||||
public Player getPlayer() { return this.fplayer.getPlayer(); }
|
||||
private final PS chunk;
|
||||
public PS getChunk() { return this.chunk; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public LandClaimEvent(PS chunk, Faction faction, FPlayer fplayer)
|
||||
public FactionsEventLandUnclaim(CommandSender sender, Faction faction, PS chunk)
|
||||
{
|
||||
this.cancelled = false;
|
||||
super(sender);
|
||||
this.chunk = chunk.getChunk(true);
|
||||
this.faction = faction;
|
||||
this.fplayer = fplayer;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionsEventLandUnclaimAll extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventLandUnclaimAll(CommandSender sender, Faction faction)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +1,12 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FPlayerLeaveEvent extends Event implements Cancellable
|
||||
public class FactionsEventLeave extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -21,35 +20,32 @@ public class FPlayerLeaveEvent extends Event implements Cancellable
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override
|
||||
public void setCancelled(boolean c)
|
||||
public void setCancelled(boolean cancelled)
|
||||
{
|
||||
if (reason == PlayerLeaveReason.DISBAND || reason == PlayerLeaveReason.RESET)
|
||||
if (this.reason == PlayerLeaveReason.DISBAND || this.reason == PlayerLeaveReason.RESET)
|
||||
{
|
||||
cancelled = false;
|
||||
return;
|
||||
}
|
||||
cancelled = c;
|
||||
super.setCancelled(cancelled);
|
||||
}
|
||||
|
||||
private final PlayerLeaveReason reason;
|
||||
public PlayerLeaveReason getReason() { return this.reason; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final PlayerLeaveReason reason;
|
||||
public PlayerLeaveReason getReason() { return this.reason; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FPlayerLeaveEvent(FPlayer fplayer, Faction faction, PlayerLeaveReason reason)
|
||||
public FactionsEventLeave(CommandSender sender, FPlayer fplayer, Faction faction, PlayerLeaveReason reason)
|
||||
{
|
||||
this.cancelled = false;
|
||||
super(sender);
|
||||
this.fplayer = fplayer;
|
||||
this.faction = faction;
|
||||
this.reason = reason;
|
@ -0,0 +1,40 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionsEventOpenChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private boolean newOpen;
|
||||
public boolean isNewOpen() { return this.newOpen; }
|
||||
public void setNewOpen(boolean newOpen) { this.newOpen = newOpen; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventOpenChange(CommandSender sender, Faction faction, boolean newOpen)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.newOpen = newOpen;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class FactionsEventPowerLoss extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
// TODO: Replace this event with a power change event?
|
||||
|
||||
public FactionsEventPowerLoss(CommandSender sender)
|
||||
{
|
||||
super(sender);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +1,13 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Rel;
|
||||
|
||||
|
||||
public class FactionRelationEvent extends Event
|
||||
public class FactionsEventRelationChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
@ -21,32 +21,26 @@ public class FactionRelationEvent extends Event
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
// TODO: Should this one be informative only?
|
||||
// TODO: How about making it Cancellable?
|
||||
// TODO: How about making the target relation non-final?
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final Faction targetFaction;
|
||||
public Faction getTargetFaction() { return this.targetFaction; }
|
||||
private final Faction otherFaction;
|
||||
public Faction getOtherFaction() { return this.otherFaction; }
|
||||
|
||||
private final Rel oldRel;
|
||||
public Rel getOldRel() { return this.oldRel; }
|
||||
|
||||
private final Rel newRel;
|
||||
public Rel getNewRel() { return this.newRel; }
|
||||
private Rel newRelation;
|
||||
public Rel getNewRelation() { return this.newRelation; }
|
||||
public void setNewRelation(Rel newRelation) { this.newRelation = newRelation; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionRelationEvent(Faction faction, Faction targetFaction, Rel oldRel, Rel newRel)
|
||||
public FactionsEventRelationChange(CommandSender sender, Faction faction, Faction otherFaction, Rel newRelation)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.targetFaction = targetFaction;
|
||||
this.oldRel = oldRel;
|
||||
this.newRel = newRel;
|
||||
this.otherFaction = otherFaction;
|
||||
this.newRelation = newRelation;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
public class FactionsEventTagChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private String newTag;
|
||||
public String getNewTag() { return this.newTag; }
|
||||
public void setNewTag(String newTag) { this.newTag = newTag; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventTagChange(CommandSender sender, Faction faction, String newTag)
|
||||
{
|
||||
super(sender);
|
||||
this.faction = faction;
|
||||
this.newTag = newTag;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
|
||||
public class FactionsEventTitleChange extends FactionsEventAbstractSender
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
private String newTitle;
|
||||
public String getNewTitle() { return this.newTitle; }
|
||||
public void setNewTitle(String newTitle) { this.newTitle = newTitle; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public FactionsEventTitleChange(CommandSender sender, FPlayer fplayer, String newTitle)
|
||||
{
|
||||
super(sender);
|
||||
this.fplayer = fplayer;
|
||||
this.newTitle = newTitle;
|
||||
}
|
||||
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
package com.massivecraft.factions.event;
|
||||
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class PowerLossEvent extends Event implements Cancellable
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELDS
|
||||
// -------------------------------------------- //
|
||||
|
||||
private boolean cancelled;
|
||||
@Override public boolean isCancelled() { return this.cancelled; }
|
||||
@Override public void setCancelled(boolean cancelled) { this.cancelled = cancelled; }
|
||||
|
||||
private final Faction faction;
|
||||
public Faction getFaction() { return this.faction; }
|
||||
|
||||
private final FPlayer fplayer;
|
||||
public FPlayer getFPlayer() { return this.fplayer; }
|
||||
|
||||
// TODO: Should message really be set here? Or should it be sent by the plugin that cancells directly?
|
||||
private String message;
|
||||
public String getMessage() { return this.message; }
|
||||
public void setMessage(String message) { this.message = message; }
|
||||
|
||||
// TODO: These methods seem redundant? Why were they added? Can I remove them?
|
||||
public String getFactionId() { return this.faction.getId(); }
|
||||
public String getFactionTag() { return this.faction.getTag(); }
|
||||
public Player getPlayer() { return this.fplayer.getPlayer(); }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public PowerLossEvent(Faction faction, FPlayer fplayer)
|
||||
{
|
||||
this.cancelled = false;
|
||||
this.faction = faction;
|
||||
this.fplayer = fplayer;
|
||||
}
|
||||
|
||||
}
|
@ -7,8 +7,17 @@ import org.bukkit.event.Listener;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.event.FactionsHomeChangeEvent;
|
||||
import com.massivecraft.factions.event.FactionsEventAbstractSender;
|
||||
import com.massivecraft.factions.event.FactionsEventCreate;
|
||||
import com.massivecraft.factions.event.FactionsEventDescriptionChange;
|
||||
import com.massivecraft.factions.event.FactionsEventHomeChange;
|
||||
import com.massivecraft.factions.event.FactionsEventInvitedChange;
|
||||
import com.massivecraft.factions.event.FactionsEventOpenChange;
|
||||
import com.massivecraft.factions.event.FactionsEventRelationChange;
|
||||
import com.massivecraft.factions.event.FactionsEventTagChange;
|
||||
import com.massivecraft.factions.event.FactionsEventTitleChange;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.MCommand;
|
||||
|
||||
public class FactionsListenerEcon implements Listener
|
||||
{
|
||||
@ -30,20 +39,67 @@ public class FactionsListenerEcon implements Listener
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// LISTENER
|
||||
// PAY FOR COMMAND
|
||||
// -------------------------------------------- //
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onFactionsHomeChangeEvent(FactionsHomeChangeEvent event)
|
||||
public void payForCommand(FactionsEventAbstractSender event, double cost, MCommand command)
|
||||
{
|
||||
// If the faction home is being changed through a command ...
|
||||
if (!event.getReason().equals(FactionsHomeChangeEvent.REASON_COMMAND_SETHOME)) return;
|
||||
// If there is a sender ...
|
||||
if (event.getSender() == null) return;
|
||||
|
||||
// ... and the sender can not afford the command ...
|
||||
if (Econ.payForAction(ConfServer.econCostSethome, event.getSender(), Factions.get().getOuterCmdFactions().cmdFactionsSethome.getDesc())) return;
|
||||
// ... and the sender can't afford ...
|
||||
if (Econ.payForAction(cost, event.getSender(), command.getDesc())) return;
|
||||
|
||||
// ... then cancel the change.
|
||||
// ... then cancel.
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventHomeChange event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostSethome, Factions.get().getOuterCmdFactions().cmdFactionsSethome);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventCreate event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostCreate, Factions.get().getOuterCmdFactions().cmdFactionsCreate);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventDescriptionChange event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostDescription, Factions.get().getOuterCmdFactions().cmdFactionsDescription);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventTagChange event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostTag, Factions.get().getOuterCmdFactions().cmdFactionsTag);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventTitleChange event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostTitle, Factions.get().getOuterCmdFactions().cmdFactionsTitle);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventRelationChange event)
|
||||
{
|
||||
payForCommand(event, event.getNewRelation().getRelationCost(), Factions.get().getOuterCmdFactions().cmdFactionsRelationNeutral);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventOpenChange event)
|
||||
{
|
||||
payForCommand(event, ConfServer.econCostOpen, Factions.get().getOuterCmdFactions().cmdFactionsOpen);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void payForCommand(FactionsEventInvitedChange event)
|
||||
{
|
||||
double cost = event.isNewInvited() ? ConfServer.econCostInvite : ConfServer.econCostDeinvite;
|
||||
payForCommand(event, cost, Factions.get().getOuterCmdFactions().cmdFactionsInvite);
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.entity.PotionSplashEvent;
|
||||
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
||||
import org.bukkit.event.hanging.HangingBreakEvent;
|
||||
@ -59,6 +60,7 @@ import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.event.FactionsEventPowerLoss;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.util.VisualizeUtil;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
@ -84,6 +86,44 @@ public class FactionsListenerMain implements Listener
|
||||
Bukkit.getPluginManager().registerEvents(this, Factions.get());
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// POWER LOSS ON DEATH
|
||||
// -------------------------------------------- //
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void powerLossOnDeath(PlayerDeathEvent event)
|
||||
{
|
||||
// If a player dies ...
|
||||
Player player = event.getEntity();
|
||||
FPlayer fplayer = FPlayerColl.get().get(player);
|
||||
|
||||
// ... and powerloss can happen here ...
|
||||
Faction faction = BoardColl.get().getFactionAt(PS.valueOf(player));
|
||||
|
||||
if (!faction.getFlag(FFlag.POWERLOSS))
|
||||
{
|
||||
fplayer.msg("<i>You didn't lose any power since the territory you died in works that way.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ConfServer.worldsNoPowerLoss.contains(player.getWorld().getName()))
|
||||
{
|
||||
fplayer.msg("<i>You didn't lose any power due to the world you died in.");
|
||||
return;
|
||||
}
|
||||
|
||||
// ... and our special event doesn't get cancelled ...
|
||||
FactionsEventPowerLoss powerLossEvent = new FactionsEventPowerLoss(player);
|
||||
powerLossEvent.run();
|
||||
if (powerLossEvent.isCancelled()) return;
|
||||
|
||||
// ... alter the power ...
|
||||
fplayer.setPower(fplayer.getPower() + ConfServer.powerPerDeath);
|
||||
|
||||
// ... and inform the player.
|
||||
fplayer.msg("<i>Your power is now <h>%d / %d", fplayer.getPowerRounded(), fplayer.getPowerMaxRounded());
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CAN COMBAT DAMAGE HAPPEN
|
||||
// -------------------------------------------- //
|
||||
|
@ -1,78 +0,0 @@
|
||||
package com.massivecraft.factions.listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
|
||||
import com.massivecraft.factions.BoardColl;
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.event.PowerLossEvent;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
|
||||
|
||||
public class TodoFactionsEntityListener implements Listener
|
||||
{
|
||||
|
||||
// -------------------------------------------- //
|
||||
// POWER LOSS ON DEATH
|
||||
// -------------------------------------------- //
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void powerLossOnDeath(PlayerDeathEvent event)
|
||||
{
|
||||
// If a player dies ...
|
||||
Player player = event.getEntity();
|
||||
FPlayer fplayer = FPlayerColl.get().get(player);
|
||||
|
||||
// ... TODO: Sending the message through the event is not the best way of doing it.
|
||||
// TODO: We should listen to our own events and send message from there if we cancel.
|
||||
//
|
||||
Faction faction = BoardColl.get().getFactionAt(PS.valueOf(player));
|
||||
|
||||
PowerLossEvent powerLossEvent = new PowerLossEvent(faction, fplayer);
|
||||
|
||||
// Check for no power loss conditions
|
||||
if ( ! faction.getFlag(FFlag.POWERLOSS))
|
||||
{
|
||||
powerLossEvent.setMessage("<i>You didn't lose any power since the territory you died in works that way.");
|
||||
powerLossEvent.setCancelled(true);
|
||||
}
|
||||
else if (ConfServer.worldsNoPowerLoss.contains(player.getWorld().getName()))
|
||||
{
|
||||
powerLossEvent.setMessage("<i>You didn't lose any power due to the world you died in.");
|
||||
powerLossEvent.setCancelled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
powerLossEvent.setMessage("<i>Your power is now <h>%d / %d");
|
||||
}
|
||||
|
||||
// call Event
|
||||
Bukkit.getPluginManager().callEvent(powerLossEvent);
|
||||
|
||||
// Call player onDeath if the event is not cancelled
|
||||
if ( ! powerLossEvent.isCancelled())
|
||||
{
|
||||
fplayer.setPower(fplayer.getPower() + ConfServer.powerPerDeath);
|
||||
}
|
||||
|
||||
// Send the message from the powerLossEvent
|
||||
final String msg = powerLossEvent.getMessage();
|
||||
if (msg != null && !msg.isEmpty())
|
||||
{
|
||||
fplayer.msg(msg, fplayer.getPowerRounded(), fplayer.getPowerMaxRounded());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user