adding new stuff
This commit is contained in:
@@ -36,7 +36,10 @@ public class CmdAdmin extends FCommand {
|
||||
if (fyou == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (fme.getRole() == Role.ADMIN){
|
||||
fme.msg(TL.COMMAND_ADMIN_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
boolean permAny = Permission.ADMIN_ANY.has(sender, false);
|
||||
Faction targetFaction = fyou.getFaction();
|
||||
|
||||
@@ -44,17 +47,20 @@ public class CmdAdmin extends FCommand {
|
||||
msg(TL.COMMAND_ADMIN_NOTMEMBER, fyou.describeTo(fme, true));
|
||||
return;
|
||||
}
|
||||
|
||||
if ((fyou == fme && fme.getRole() == Role.COLEADER) || (fme.getRole() == Role.COLEADER && fyou.getRole() == Role.ADMIN)){
|
||||
msg(TL.COMMAND_ADMIN_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
if (fme != null && fme.getRole() != Role.ADMIN && !permAny) {
|
||||
msg(TL.COMMAND_ADMIN_NOTADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (fyou == fme && !permAny) {
|
||||
msg(TL.COMMAND_ADMIN_TARGETSELF);
|
||||
return;
|
||||
}
|
||||
|
||||
// only perform a FPlayerJoinEvent when newLeader isn't actually in the faction
|
||||
if (fyou.getFaction() != targetFaction) {
|
||||
FPlayerJoinEvent event = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(me), targetFaction, FPlayerJoinEvent.PlayerJoinReason.LEADER);
|
||||
@@ -64,19 +70,23 @@ public class CmdAdmin extends FCommand {
|
||||
}
|
||||
}
|
||||
|
||||
FPlayer admin = targetFaction.getFPlayerAdmin();
|
||||
|
||||
|
||||
FPlayer admin = targetFaction.getFPlayerAdmin();
|
||||
// if target player is currently admin, demote and replace him
|
||||
if (fyou == admin && fyou.getFaction().getSize() == 1){
|
||||
msg(TL.COMMAND_ADMIN_NOMEMBERS);
|
||||
return;
|
||||
}
|
||||
if (fyou == admin) {
|
||||
targetFaction.promoteNewLeader();
|
||||
msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(fme, true));
|
||||
fyou.msg(TL.COMMAND_ADMIN_DEMOTED, senderIsConsole ? TL.GENERIC_SERVERADMIN.toString() : fme.describeTo(fyou, true));
|
||||
return;
|
||||
}
|
||||
|
||||
// promote target player, and demote existing admin if one exists
|
||||
if (admin != null) {
|
||||
admin.setRole(Role.MODERATOR);
|
||||
admin.setRole(Role.COLEADER);
|
||||
}
|
||||
fyou.setRole(Role.ADMIN);
|
||||
msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(fme, true));
|
||||
@@ -91,4 +101,4 @@ public class CmdAdmin extends FCommand {
|
||||
return TL.COMMAND_ADMIN_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,8 @@ public class CmdAnnounce extends FCommand {
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,6 +27,7 @@ public class CmdBan extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,11 @@ public class CmdBanlist extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (target == null) {
|
||||
sender.sendMessage(TL.COMMAND_BANLIST_INVALID.format(argAsString(0)));
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> lines = new ArrayList<>();
|
||||
lines.add(TL.COMMAND_BANLIST_HEADER.format(target.getBannedPlayers().size(), target.getTag(myFaction)));
|
||||
int i = 1;
|
||||
@@ -64,4 +69,4 @@ public class CmdBanlist extends FCommand {
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_BANLIST_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,8 @@ public class CmdBoom extends FCommand {
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ public class CmdBypass extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.struct.ChatMode;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class CmdChat extends FCommand {
|
||||
|
||||
@@ -21,6 +22,7 @@ public class CmdChat extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -36,7 +38,7 @@ public class CmdChat extends FCommand {
|
||||
|
||||
if (modeString != null) {
|
||||
modeString = modeString.toLowerCase();
|
||||
if (modeString.startsWith("m")) {
|
||||
if (modeString.startsWith("m")){
|
||||
modeTarget = ChatMode.MOD;
|
||||
} else if (modeString.startsWith("p")) {
|
||||
modeTarget = ChatMode.PUBLIC;
|
||||
@@ -54,9 +56,10 @@ public class CmdChat extends FCommand {
|
||||
|
||||
fme.setChatMode(modeTarget);
|
||||
|
||||
if (fme.getChatMode() == ChatMode.MOD) {
|
||||
if (fme.getChatMode() == ChatMode.MOD)
|
||||
{
|
||||
msg(TL.COMMAND_CHAT_MODE_MOD);
|
||||
} else if (fme.getChatMode() == ChatMode.PUBLIC) {
|
||||
}else if (fme.getChatMode() == ChatMode.PUBLIC) {
|
||||
msg(TL.COMMAND_CHAT_MODE_PUBLIC);
|
||||
} else if (fme.getChatMode() == ChatMode.ALLIANCE) {
|
||||
msg(TL.COMMAND_CHAT_MODE_ALLIANCE);
|
||||
@@ -71,4 +74,4 @@ public class CmdChat extends FCommand {
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_CHAT_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ public class CmdChatSpy extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ public class CmdClaim extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ public class CmdClaimAt extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class CmdClaimLine extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ public class CmdConfig extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ public class CmdCreate extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -55,6 +56,13 @@ public class CmdCreate extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
// trigger the faction creation event (cancellable)
|
||||
FactionCreateEvent createEvent = new FactionCreateEvent(me, tag);
|
||||
Bukkit.getServer().getPluginManager().callEvent(createEvent);
|
||||
if (createEvent.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// then make 'em pay (if applicable)
|
||||
if (!payForCommand(Conf.econCostCreate, TL.COMMAND_CREATE_TOCREATE, TL.COMMAND_CREATE_FORCREATE)) {
|
||||
return;
|
||||
@@ -80,10 +88,6 @@ public class CmdCreate extends FCommand {
|
||||
fme.setRole(Role.ADMIN);
|
||||
fme.setFaction(faction);
|
||||
|
||||
// trigger the faction creation event
|
||||
FactionCreateEvent createEvent = new FactionCreateEvent(me, tag, faction);
|
||||
Bukkit.getServer().getPluginManager().callEvent(createEvent);
|
||||
|
||||
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers()) {
|
||||
follower.msg(TL.COMMAND_CREATE_CREATED, fme.describeTo(follower, true), faction.getTag(follower));
|
||||
}
|
||||
@@ -100,4 +104,4 @@ public class CmdCreate extends FCommand {
|
||||
return TL.COMMAND_CREATE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ public class CmdDeinvite extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,8 @@ public class CmdDescription extends FCommand {
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ public class CmdDisband extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,25 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.*;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
import com.massivecraft.factions.util.Particle.ParticleEffect;
|
||||
import com.massivecraft.factions.util.WarmUpUtil;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.sql.BatchUpdateException;
|
||||
import java.util.*;
|
||||
|
||||
public class CmdFly extends FCommand {
|
||||
|
||||
|
||||
public static HashMap<String,Boolean> flyMap = new HashMap<String,Boolean>();
|
||||
public int id = -1;
|
||||
public int flyid = -1;
|
||||
public CmdFly() {
|
||||
super();
|
||||
this.aliases.add("fly");
|
||||
@@ -22,28 +33,233 @@ public class CmdFly extends FCommand {
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
// Disabled by default.
|
||||
if (!P.p.getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
fme.msg(TL.COMMAND_FLY_DISABLED);
|
||||
return;
|
||||
}
|
||||
|
||||
FLocation myfloc = new FLocation(me.getLocation());
|
||||
Faction toFac = Board.getInstance().getFactionAt(myfloc);
|
||||
if (Board.getInstance().getFactionAt(myfloc) != fme.getFaction()){
|
||||
if (!me.hasPermission("factions.fly.wilderness") && toFac.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.safezone") && toFac.isSafeZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.warzone") && toFac.isWarZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.enemy") && toFac.getRelationTo(myFaction)== Relation.ENEMY){
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.ally") && toFac.getRelationTo(myFaction)== Relation.ALLY){
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.truce") && toFac.getRelationTo(myFaction)== Relation.TRUCE){
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
if (!me.hasPermission("factions.fly.neutral") && toFac.getRelationTo(myFaction) == Relation.NEUTRAL) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
List<Entity> entities = me.getNearbyEntities(16,256,16);
|
||||
for (int i = 0; i <= entities.size() -1;i++)
|
||||
{
|
||||
if (entities.get(i) instanceof Player)
|
||||
{
|
||||
Player eplayer = (Player) entities.get(i);
|
||||
FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer);
|
||||
if (efplayer.getRelationTo(fme) == Relation.ENEMY)
|
||||
{
|
||||
fme.msg(TL.COMMAND_FLY_CHECK_ENEMY);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (args.size() == 0) {
|
||||
if (!fme.canFlyAtLocation() && !fme.isFlying()) {
|
||||
Faction factionAtLocation = Board.getInstance().getFactionAt(fme.getLastStoodAt());
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, factionAtLocation.getTag(fme));
|
||||
return;
|
||||
if (!me.hasPermission("factions.fly.wilderness") && toFac.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.safezone") && toFac.isSafeZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.warzone") && toFac.isWarZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.enemy") && toFac.getRelationTo(myFaction) == Relation.ENEMY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.ally") && toFac.getRelationTo(myFaction) == Relation.ALLY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.truce") && toFac.getRelationTo(myFaction) == Relation.TRUCE) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
} else if (!me.hasPermission("factions.fly.neutral") && toFac.getRelationTo(myFaction) == Relation.NEUTRAL) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toggleFlight(!fme.isFlying());
|
||||
toggleFlight(!fme.isFlying(),me);
|
||||
} else if (args.size() == 1) {
|
||||
if (!fme.canFlyAtLocation() && argAsBool(0)) {
|
||||
Faction factionAtLocation = Board.getInstance().getFactionAt(fme.getLastStoodAt());
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, factionAtLocation.getTag(fme));
|
||||
return;
|
||||
if (!me.hasPermission("factions.fly.wilderness") && toFac.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.safezone") && toFac.isSafeZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.warzone") && toFac.isWarZone()) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.enemy") && toFac.getRelationTo(myFaction) == Relation.ENEMY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.ally") && toFac.getRelationTo(myFaction) == Relation.ALLY) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
return;
|
||||
} else if (!me.hasPermission("factions.fly.truce") && toFac.getRelationTo(myFaction) == Relation.TRUCE) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
} else if (!me.hasPermission("factions.fly.neutral") && toFac.getRelationTo(myFaction) == Relation.NEUTRAL) {
|
||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(myfloc).getTag(fme));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toggleFlight(argAsBool(0));
|
||||
|
||||
toggleFlight(argAsBool(0),me);
|
||||
}
|
||||
}
|
||||
|
||||
private void toggleFlight(final boolean toggle) {
|
||||
public boolean isInFlightChecker(Player player){
|
||||
if (flyMap.containsKey(player.getName())){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void startParticles(){
|
||||
id = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for(String name : flyMap.keySet()){
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null){
|
||||
continue;
|
||||
}
|
||||
if (!player.isFlying()){
|
||||
continue;
|
||||
}
|
||||
ParticleEffect.CLOUD.display((float) 0.1,(float) 0.1,(float) 0.1,(float) 0.1,3,player.getLocation(),32);
|
||||
|
||||
}
|
||||
if (flyMap.keySet().size() == 0){
|
||||
Bukkit.getScheduler().cancelTask(id);
|
||||
id = -1;
|
||||
}
|
||||
}
|
||||
},20L,40L);
|
||||
}
|
||||
|
||||
public void startFlyCheck(){
|
||||
flyid = Bukkit.getScheduler().scheduleSyncRepeatingTask(P.p, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for (String name : flyMap.keySet()) {
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null) { continue;}
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||
|
||||
if (fPlayer == null) { continue; }
|
||||
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR){
|
||||
continue;
|
||||
}
|
||||
Faction myFaction = fPlayer.getFaction();
|
||||
if (myFaction.isWilderness()){
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
continue;
|
||||
}
|
||||
if(fPlayer.checkIfNearbyEnemies()){
|
||||
continue;
|
||||
}
|
||||
FLocation myFloc = new FLocation(player.getLocation());
|
||||
Faction toFac = Board.getInstance().getFactionAt(myFloc);
|
||||
if (Board.getInstance().getFactionAt(myFloc) != myFaction) {
|
||||
if (!checkBypassPerms(fPlayer,player,toFac)){
|
||||
fPlayer.setFlying(false);
|
||||
flyMap.remove(name);
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
checkTaskState();
|
||||
}
|
||||
}
|
||||
},20L,20L);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private boolean checkBypassPerms(FPlayer fplayer, Player player,Faction toFac){
|
||||
if (player.hasPermission("factions.fly.wilderness") && toFac.isWilderness()){
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.warzone") && toFac.isWarZone()){
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.safezone") && toFac.isSafeZone()){
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.enemy") && toFac.getRelationTo(fplayer.getFaction()) == Relation.ENEMY) {
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.ally") && toFac.getRelationTo(fplayer.getFaction()) == Relation.ALLY) {
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.truce") && toFac.getRelationTo(fplayer.getFaction()) == Relation.TRUCE) {
|
||||
return true;
|
||||
}
|
||||
if (player.hasPermission("factions.fly.neutral") && toFac.getRelationTo(fplayer.getFaction()) == Relation.NEUTRAL) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void checkTaskState(){
|
||||
if (flyMap.keySet().size() == 0) {
|
||||
Bukkit.getScheduler().cancelTask(flyid);
|
||||
flyid = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void toggleFlight(final boolean toggle, final Player player) {
|
||||
if (!toggle) {
|
||||
fme.setFlying(false);
|
||||
flyMap.remove(player.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -51,6 +267,15 @@ public class CmdFly extends FCommand {
|
||||
@Override
|
||||
public void run() {
|
||||
fme.setFlying(true);
|
||||
flyMap.put(player.getName(),true);
|
||||
if (id == -1){
|
||||
if (P.p.getConfig().getBoolean("ffly.Particles.Enabled")){
|
||||
startParticles();
|
||||
}
|
||||
}
|
||||
if (flyid == -1){
|
||||
startFlyCheck();
|
||||
}
|
||||
}
|
||||
}, this.p.getConfig().getLong("warmups.f-fly", 0));
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ public class CmdHelp extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ public class CmdHome extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ public class CmdInvite extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ public class CmdJoin extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ public class CmdKick extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -65,6 +66,11 @@ public class CmdKick extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((fme.getRole() == Role.MODERATOR || fme.getRole() == Role.COLEADER) && toKick.getRole() == Role.ADMIN){
|
||||
msg(TL.COMMAND_KICK_INSUFFICIENTRANK);
|
||||
return;
|
||||
}
|
||||
|
||||
// players with admin-level "disband" permission can bypass these requirements
|
||||
if (!Permission.KICK_ANY.has(sender)) {
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ public class CmdLeave extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ public class CmdList extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -50,7 +51,7 @@ public class CmdList extends FCommand {
|
||||
factionList.remove(Factions.getInstance().getWarZone());
|
||||
|
||||
// remove exempt factions
|
||||
if (!sender.hasPermission("factions.show.bypassexempt")) {
|
||||
if (!fme.getPlayer().hasPermission("factions.show.bypassexempt")) {
|
||||
List<String> exemptFactions = P.p.getConfig().getStringList("show-exempt");
|
||||
Iterator<Faction> factionIterator = factionList.iterator();
|
||||
while (factionIterator.hasNext()) {
|
||||
|
||||
@@ -25,6 +25,7 @@ public class CmdLock extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ public class CmdMap extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,8 @@ public class CmdMod extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = true;
|
||||
senderMustBeColeader = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -23,6 +23,7 @@ public class CmdModifyPower extends FCommand {
|
||||
this.senderMustBeAdmin = false;
|
||||
this.senderMustBePlayer = false;
|
||||
this.senderMustBeMember = false;
|
||||
senderMustBeColeader = false;
|
||||
this.senderMustBeModerator = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ public class CmdMoney extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
|
||||
this.helpLong.add(p.txt.parseTags(TL.COMMAND_MONEY_LONG.toString()));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.earth2me.essentials.Console;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
@@ -38,7 +39,9 @@ public class CmdMoneyBalance extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
Econ.sendBalanceInfo(fme, faction);
|
||||
if (fme != null) {
|
||||
Econ.sendBalanceInfo(fme, faction);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -46,4 +49,4 @@ public class CmdMoneyBalance extends FCommand {
|
||||
return TL.COMMAND_MONEYBALANCE_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ public class CmdMoneyDeposit extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ public class CmdMoneyTransferFf extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ public class CmdMoneyTransferFp extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ public class CmdMoneyTransferPf extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ public class CmdMoneyWithdraw extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,8 @@ public class CmdOpen extends FCommand {
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = true;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ public class CmdOwner extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ public class CmdOwnerList extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ public class CmdPeaceful extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,12 +28,13 @@ public class CmdPerm extends FCommand {
|
||||
this.optionalArgs.put("action", "action");
|
||||
this.optionalArgs.put("access", "access");
|
||||
|
||||
this.permission = Permission.PERMISSIONS.node;
|
||||
|
||||
this.disableOnLock = true;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = true;
|
||||
}
|
||||
|
||||
@@ -122,4 +123,4 @@ public class CmdPerm extends FCommand {
|
||||
return TL.COMMAND_PERM_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ public class CmdPermanent extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ public class CmdPermanentPower extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ public class CmdPower extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ public class CmdPowerBoost extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ public class CmdReload extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ public class CmdSafeunclaimall extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ public class CmdSaveAll extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.darkblade12.particleeffect.ParticleEffect;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.util.VisualizeUtil;
|
||||
@@ -9,8 +10,14 @@ import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class CmdSeeChunk extends FCommand {
|
||||
|
||||
private boolean useParticles;
|
||||
private int length;
|
||||
private ParticleEffect effect;
|
||||
|
||||
public CmdSeeChunk() {
|
||||
super();
|
||||
aliases.add("seechunk");
|
||||
@@ -22,6 +29,16 @@ public class CmdSeeChunk extends FCommand {
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
|
||||
this.useParticles = p.getConfig().getBoolean("see-chunk.particles", true);
|
||||
this.length = p.getConfig().getInt("see-chunk.length", 10);
|
||||
String effectName = p.getConfig().getString("see-chunk.particle", "BARRIER");
|
||||
this.effect = ParticleEffect.fromName(effectName.toUpperCase());
|
||||
if (this.effect == null) {
|
||||
this.effect = ParticleEffect.BARRIER;
|
||||
}
|
||||
|
||||
p.log(Level.INFO, "Using %s as the ParticleEffect for /f sc", effect.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,15 +68,19 @@ public class CmdSeeChunk extends FCommand {
|
||||
showPillar(me, world, blockX, blockZ);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void showPillar(Player player, World world, int blockX, int blockZ) {
|
||||
private void showPillar(Player player, World world, int blockX, int blockZ) {
|
||||
for (int blockY = 0; blockY < player.getLocation().getBlockY() + 30; blockY++) {
|
||||
Location loc = new Location(world, blockX, blockY, blockZ);
|
||||
if (loc.getBlock().getType() != Material.AIR) {
|
||||
continue;
|
||||
}
|
||||
int typeId = blockY % 5 == 0 ? Material.REDSTONE_LAMP_ON.getId() : Material.STAINED_GLASS.getId();
|
||||
VisualizeUtil.addLocation(player, loc, typeId);
|
||||
|
||||
if (useParticles) {
|
||||
this.effect.display(0, 0, 0, 10, 1, loc, player);
|
||||
} else {
|
||||
int typeId = blockY % 5 == 0 ? Material.REDSTONE_LAMP_ON.getId() : Material.STAINED_GLASS.getId();
|
||||
VisualizeUtil.addLocation(player, loc, typeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,4 +89,4 @@ public class CmdSeeChunk extends FCommand {
|
||||
return TL.GENERIC_PLACEHOLDER;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ public class CmdSetDefaultRole extends FCommand {
|
||||
|
||||
this.senderMustBeAdmin = true;
|
||||
this.senderMustBePlayer = true;
|
||||
senderMustBeColeader = false;
|
||||
|
||||
this.permission = Permission.DEFAULTRANK.node;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ public class CmdSetMaxVaults extends FCommand {
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ public class CmdSethome extends FCommand {
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -85,4 +86,4 @@ public class CmdSethome extends FCommand {
|
||||
return TL.COMMAND_SETHOME_DESCRIPTION;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.*;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import com.massivecraft.factions.zcore.util.TagReplacer;
|
||||
import com.massivecraft.factions.zcore.util.TagUtil;
|
||||
import mkremins.fanciful.FancyMessage;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -19,6 +19,7 @@ public class CmdShow extends FCommand {
|
||||
public CmdShow() {
|
||||
this.aliases.add("show");
|
||||
this.aliases.add("who");
|
||||
this.aliases.add("f");
|
||||
|
||||
// add defaults to /f show in case config doesnt have it
|
||||
defaults.add("{header}");
|
||||
@@ -47,6 +48,7 @@ public class CmdShow extends FCommand {
|
||||
@Override
|
||||
public void perform() {
|
||||
Faction faction = myFaction;
|
||||
|
||||
if (this.argIsSet(0)) {
|
||||
faction = this.argAsFaction(0);
|
||||
}
|
||||
@@ -54,6 +56,11 @@ public class CmdShow extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!fme.hasFaction() && fme.getFaction() == faction){
|
||||
fme.msg(TL.COMMAND_SHOW_NEEDFACTION);
|
||||
return;
|
||||
}
|
||||
|
||||
if (fme != null && !fme.getPlayer().hasPermission("factions.show.bypassexempt")
|
||||
&& P.p.getConfig().getStringList("show-exempt").contains(faction.getTag())) {
|
||||
msg(TL.COMMAND_SHOW_EXEMPT);
|
||||
@@ -69,6 +76,65 @@ public class CmdShow extends FCommand {
|
||||
if (show == null || show.isEmpty()) {
|
||||
show = defaults;
|
||||
}
|
||||
/* for (int i = 0; i <= show.size()-1; i ++){
|
||||
if (show.get(i).contains("{description}")){
|
||||
show.set(i,show.get(i).replace("{description}",faction.getDescription()));
|
||||
}
|
||||
if (show.get(i).contains("{online-list}")){
|
||||
String message = "";
|
||||
StringBuilder string = new StringBuilder(message);
|
||||
for (FPlayer fPlayer : faction.getFPlayers()){
|
||||
Bukkit.broadcastMessage(fPlayer.getTag());
|
||||
if (fPlayer.getPlayer().isOnline()){
|
||||
String prefix = "";
|
||||
if (fPlayer.getRole() == Role.ADMIN){
|
||||
prefix = Conf.prefixAdmin;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.COLEADER){
|
||||
prefix = Conf.prefixCoLeader;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.MODERATOR){
|
||||
prefix = Conf.prefixMod;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.NORMAL){
|
||||
prefix = Conf.prefixNormal;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.RECRUIT){
|
||||
prefix = Conf.prefixRecruit;
|
||||
}
|
||||
string.append(prefix + fPlayer.getName() + ",");
|
||||
}
|
||||
if (string.toString().equals("")) { continue; }
|
||||
show.set(i,show.get(i).replace("{online-list}",string.toString()));
|
||||
}
|
||||
}
|
||||
if (show.get(i).contains("{offline-list}")){
|
||||
String message = "";
|
||||
StringBuilder string = new StringBuilder(message);
|
||||
for (FPlayer fPlayer : faction.getFPlayers()){
|
||||
if (!fPlayer.getPlayer().isOnline()){
|
||||
String prefix = "";
|
||||
if (fPlayer.getRole() == Role.ADMIN){
|
||||
prefix = Conf.prefixAdmin;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.COLEADER){
|
||||
prefix = Conf.prefixCoLeader;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.MODERATOR){
|
||||
prefix = Conf.prefixMod;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.NORMAL){
|
||||
prefix = Conf.prefixNormal;
|
||||
}
|
||||
if (fPlayer.getRole() == Role.RECRUIT){
|
||||
prefix = Conf.prefixRecruit;
|
||||
}
|
||||
string.append(prefix + fPlayer.getName() + ",");
|
||||
}
|
||||
show.set(i,show.get(i).replace("{offline-list}",string.toString()));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if (!faction.isNormal()) {
|
||||
String tag = faction.getTag(fme);
|
||||
@@ -88,11 +154,9 @@ public class CmdShow extends FCommand {
|
||||
continue; // Due to minimal f show.
|
||||
}
|
||||
|
||||
if (fme != null) {
|
||||
parsed = TagUtil.parsePlaceholders(fme.getPlayer(), parsed);
|
||||
}
|
||||
parsed = TagUtil.parsePlaceholders(fme.getPlayer(), parsed);
|
||||
|
||||
if (fme != null && TagUtil.hasFancy(parsed)) {
|
||||
if (TagUtil.hasFancy(parsed)) {
|
||||
List<FancyMessage> fancy = TagUtil.parseFancy(faction, fme, parsed);
|
||||
if (fancy != null) {
|
||||
sendFancyMessage(fancy);
|
||||
|
||||
@@ -5,11 +5,20 @@ import com.drtshock.playervaults.translations.Lang;
|
||||
import com.drtshock.playervaults.vaultmanagement.UUIDVaultManager;
|
||||
import com.drtshock.playervaults.vaultmanagement.VaultOperations;
|
||||
import com.drtshock.playervaults.vaultmanagement.VaultViewInfo;
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Chest;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class CmdVault extends FCommand {
|
||||
|
||||
@@ -17,7 +26,7 @@ public class CmdVault extends FCommand {
|
||||
this.aliases.add("vault");
|
||||
|
||||
//this.requiredArgs.add("");
|
||||
this.optionalArgs.put("number", "number");
|
||||
|
||||
|
||||
this.permission = Permission.VAULT.node;
|
||||
this.disableOnLock = false;
|
||||
@@ -28,51 +37,41 @@ public class CmdVault extends FCommand {
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void perform() {
|
||||
/*
|
||||
/f vault <number>
|
||||
*/
|
||||
|
||||
int number = argAsInt(0, 0); // Default to 0 or show on 0
|
||||
|
||||
Player player = me;
|
||||
|
||||
if (PlayerVaults.getInstance().getInVault().containsKey(player.getUniqueId().toString())) {
|
||||
return; // Already in a vault so they must be trying to dupe.
|
||||
}
|
||||
|
||||
int max = myFaction.getMaxVaults();
|
||||
if (number > max) {
|
||||
me.sendMessage(TL.COMMAND_VAULT_TOOHIGH.format(number, max));
|
||||
if (!P.p.getConfig().getBoolean("fvault.Enabled")){
|
||||
fme.sendMessage("This command is disabled!");
|
||||
return;
|
||||
}
|
||||
|
||||
// Something like faction-id
|
||||
String vaultName = String.format(Conf.vaultPrefix, myFaction.getId());
|
||||
|
||||
if (number < 1) {
|
||||
// Message about which vaults that Faction has.
|
||||
// List the target
|
||||
YamlConfiguration file = UUIDVaultManager.getInstance().getPlayerVaultFile(vaultName);
|
||||
if (file == null) {
|
||||
sender.sendMessage(Lang.TITLE.toString() + Lang.VAULT_DOES_NOT_EXIST.toString());
|
||||
} else {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String key : file.getKeys(false)) {
|
||||
sb.append(key.replace("vault", "")).append(" ");
|
||||
}
|
||||
|
||||
sender.sendMessage(Lang.TITLE.toString() + Lang.EXISTING_VAULTS.toString().replaceAll("%p", fme.getTag()).replaceAll("%v", sb.toString().trim()));
|
||||
}
|
||||
if (fme.isInVault()){
|
||||
me.closeInventory();
|
||||
return;
|
||||
} // end listing vaults.
|
||||
|
||||
// Attempt to open vault.
|
||||
if (VaultOperations.openOtherVault(player, null, String.valueOf(number))) {
|
||||
// Success
|
||||
PlayerVaults.getInstance().getInVault().put(player.getUniqueId().toString(), new VaultViewInfo(vaultName, number));
|
||||
}
|
||||
fme.setInVault(true);
|
||||
Location vaultLocation = fme.getFaction().getVault();
|
||||
if (vaultLocation == null){
|
||||
fme.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
FLocation vaultFLocation = new FLocation(vaultLocation);
|
||||
if (Board.getInstance().getFactionAt(vaultFLocation) != fme.getFaction()){
|
||||
fme.getFaction().setVault(null);
|
||||
fme.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
if (vaultLocation.getBlock().getType() != Material.CHEST){
|
||||
fme.getFaction().setVault(null);
|
||||
fme.msg(TL.COMMAND_VAULT_INVALID);
|
||||
return;
|
||||
}
|
||||
Chest chest = (Chest) vaultLocation.getBlock().getState();
|
||||
Inventory chestInv = chest.getBlockInventory();
|
||||
fme.msg(TL.COMMAND_VAULT_OPENING);
|
||||
me.openInventory(chestInv);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,7 +22,6 @@ public class FCmdRoot extends FCommand {
|
||||
public CmdDeinvite cmdDeinvite = new CmdDeinvite();
|
||||
public CmdDescription cmdDescription = new CmdDescription();
|
||||
public CmdDisband cmdDisband = new CmdDisband();
|
||||
public CmdFly cmdFly = new CmdFly();
|
||||
public CmdHelp cmdHelp = new CmdHelp();
|
||||
public CmdHome cmdHome = new CmdHome();
|
||||
public CmdInvite cmdInvite = new CmdInvite();
|
||||
@@ -82,7 +81,18 @@ public class FCmdRoot extends FCommand {
|
||||
public CmdBan cmdban = new CmdBan();
|
||||
public CmdUnban cmdUnban = new CmdUnban();
|
||||
public CmdBanlist cmdbanlist = new CmdBanlist();
|
||||
|
||||
public CmdRules cmdRules = new CmdRules();
|
||||
public CmdCheckpoint cmdCheckpoint = new CmdCheckpoint();
|
||||
public CmdTnt cmdTnt = new CmdTnt();
|
||||
public CmdNear cmdNear = new CmdNear();
|
||||
public CmdUpgrades cmdUpgrades = new CmdUpgrades();
|
||||
public CmdVault cmdVault = new CmdVault();
|
||||
public CmdGetVault cmdGetVault = new CmdGetVault();
|
||||
public CmdFly cmdFly = new CmdFly();
|
||||
public CmdColeader cmdColeader = new CmdColeader();
|
||||
public CmdBanner cmdBanner = new CmdBanner();
|
||||
public CmdTpBanner cmdTpBanner = new CmdTpBanner();
|
||||
public CmdKillHolograms cmdKillHolograms = new CmdKillHolograms();
|
||||
public FCmdRoot() {
|
||||
super();
|
||||
this.aliases.addAll(Conf.baseCommandAliases);
|
||||
@@ -117,6 +127,7 @@ public class FCmdRoot extends FCommand {
|
||||
this.addSubCommand(this.cmdDeinvite);
|
||||
this.addSubCommand(this.cmdDescription);
|
||||
this.addSubCommand(this.cmdDisband);
|
||||
|
||||
this.addSubCommand(this.cmdHelp);
|
||||
this.addSubCommand(this.cmdHome);
|
||||
this.addSubCommand(this.cmdInvite);
|
||||
@@ -174,6 +185,24 @@ public class FCmdRoot extends FCommand {
|
||||
this.addSubCommand(this.cmdban);
|
||||
this.addSubCommand(this.cmdUnban);
|
||||
this.addSubCommand(this.cmdbanlist);
|
||||
this.addSubCommand(this.cmdRules);
|
||||
this.addSubCommand(this.cmdCheckpoint);
|
||||
this.addSubCommand(this.cmdTnt);
|
||||
this.addSubCommand(this.cmdNear);
|
||||
this.addSubCommand(this.cmdUpgrades);
|
||||
this.addSubCommand(this.cmdVault);
|
||||
this.addSubCommand(this.cmdGetVault);
|
||||
this.addSubCommand(this.cmdColeader);
|
||||
this.addSubCommand(this.cmdBanner);
|
||||
this.addSubCommand(this.cmdTpBanner);
|
||||
this.addSubCommand(this.cmdKillHolograms);
|
||||
|
||||
|
||||
|
||||
if (P.p.getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
this.addSubCommand(this.cmdFly);
|
||||
return;
|
||||
}
|
||||
if (Bukkit.getServer().getPluginManager().isPluginEnabled("FactionsTop")) {
|
||||
P.p.log(Level.INFO, "Found FactionsTop plugin. Disabling our own /f top command.");
|
||||
} else {
|
||||
@@ -181,17 +210,11 @@ public class FCmdRoot extends FCommand {
|
||||
}
|
||||
if (P.p.isHookedPlayervaults()) {
|
||||
P.p.log("Found playervaults hook, adding /f vault and /f setmaxvault commands.");
|
||||
this.addSubCommand(new CmdSetMaxVaults());
|
||||
this.addSubCommand(new CmdVault());
|
||||
// this.addSubCommand(new CmdSetMaxVaults());
|
||||
// this.addSubCommand(new CmdVault());
|
||||
}else{
|
||||
// this.addSubCommand(new CmdVault());
|
||||
}
|
||||
|
||||
if (P.p.getConfig().getBoolean("enable-faction-flight", false)) {
|
||||
this.addSubCommand(this.cmdFly);
|
||||
P.p.log(Level.INFO, "Enabling /f fly command");
|
||||
} else {
|
||||
P.p.log(Level.WARNING, "Faction flight set to false in config.yml. Not enabling /f fly command.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,6 +24,7 @@ public abstract class FCommand extends MCommand<P> {
|
||||
public boolean senderMustBeMember;
|
||||
public boolean senderMustBeModerator;
|
||||
public boolean senderMustBeAdmin;
|
||||
public boolean senderMustBeColeader;
|
||||
|
||||
public boolean isMoneyCommand;
|
||||
|
||||
@@ -38,6 +39,7 @@ public abstract class FCommand extends MCommand<P> {
|
||||
|
||||
senderMustBeMember = false;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeColeader = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
@@ -80,7 +82,7 @@ public abstract class FCommand extends MCommand<P> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!(this.senderMustBeMember || this.senderMustBeModerator || this.senderMustBeAdmin)) {
|
||||
if (!(this.senderMustBeMember || this.senderMustBeModerator || this.senderMustBeAdmin || this.senderMustBeColeader)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -98,11 +100,18 @@ public abstract class FCommand extends MCommand<P> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.senderMustBeColeader && !fme.getRole().isAtLeast(Role.COLEADER)){
|
||||
sender.sendMessage(p.txt.parse("<b>Only faction coleaders can %s.", this.getHelpShort()));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.senderMustBeAdmin && !fme.getRole().isAtLeast(Role.ADMIN)) {
|
||||
sender.sendMessage(p.txt.parse("<b>Only faction admins can %s.", this.getHelpShort()));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -257,8 +266,19 @@ public abstract class FCommand extends MCommand<P> {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (you.getRole().equals(Role.ADMIN)) {
|
||||
if (you.getRole().equals(Role.ADMIN))
|
||||
{
|
||||
i.sendMessage(p.txt.parse("<b>Only the faction admin can do that."));
|
||||
|
||||
}
|
||||
else if ((you.getRole().equals(Role.COLEADER)))
|
||||
{
|
||||
if (i == you){
|
||||
return true;
|
||||
} else {
|
||||
i.sendMessage(p.txt.parse("<b>Coleaders can't control each other..."));
|
||||
}
|
||||
|
||||
} else if (i.getRole().equals(Role.MODERATOR)) {
|
||||
if (i == you) {
|
||||
return true; //Moderators can control themselves
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.zcore.fperms.Access;
|
||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class FPromoteCommand extends FCommand {
|
||||
|
||||
@@ -27,22 +28,30 @@ public class FPromoteCommand extends FCommand {
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
|
||||
FPlayer target = this.argAsBestFPlayerMatch(0);
|
||||
if (target == null) {
|
||||
msg(TL.GENERIC_NOPLAYERFOUND, this.argAsString(0));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!target.getFaction().equals(myFaction)) {
|
||||
msg(TL.COMMAND_PROMOTE_WRONGFACTION, target.getName());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Access access = myFaction.getAccess(fme.getRole(), PermissableAction.PROMOTE);
|
||||
if (fme.getRole() == Role.COLEADER && target.getRole() == Role.ADMIN){
|
||||
fme.msg(TL.COMMAND_PROMOTE_COLEADER_ADMIN);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Well this is messy.
|
||||
if (access == null || access == Access.UNDEFINED) {
|
||||
if (!assertMinRole(Role.MODERATOR)) {
|
||||
if (!assertMinRole(Role.COLEADER)) {
|
||||
return;
|
||||
}
|
||||
} else if (access == Access.DENY) {
|
||||
@@ -50,6 +59,8 @@ public class FPromoteCommand extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Role current = target.getRole();
|
||||
Role promotion = Role.getRelative(current, +relative);
|
||||
if (promotion == null) {
|
||||
@@ -57,8 +68,14 @@ public class FPromoteCommand extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (fme == target && fme.getRole() == Role.COLEADER){
|
||||
fme.msg(TL.COMMAND_PROMOTE_COLEADER_ADMIN);
|
||||
return;
|
||||
}
|
||||
String action = relative > 0 ? TL.COMMAND_PROMOTE_PROMOTED.toString() : TL.COMMAND_PROMOTE_DEMOTED.toString();
|
||||
|
||||
|
||||
// Success!
|
||||
target.setRole(promotion);
|
||||
if (target.isOnline()) {
|
||||
|
||||
Reference in New Issue
Block a user