Compare commits
84 Commits
2.2.2-BETA
...
duels
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3771feb01 | ||
|
|
07599fa06d | ||
|
|
3d997bbf16 | ||
|
|
a086f8db7a | ||
|
|
2c13204294 | ||
|
|
43c567ee02 | ||
|
|
dfbfbf9981 | ||
|
|
13399c53c5 | ||
|
|
55d6af7195 | ||
|
|
4f675dfd66 | ||
|
|
22957b641b | ||
|
|
0fc3e47289 | ||
|
|
730693aed1 | ||
|
|
61570be012 | ||
|
|
bcc04e6174 | ||
|
|
d30780e06e | ||
|
|
ed73baf5f1 | ||
|
|
94d2035c78 | ||
|
|
8ff8c78a44 | ||
|
|
591dc2172f | ||
|
|
1a4c860c46 | ||
|
|
ad56264c5d | ||
|
|
def1a8b15a | ||
|
|
8b577d360b | ||
|
|
f34ebc73fa | ||
|
|
c86db7ab51 | ||
|
|
070f239948 | ||
|
|
018f08699d | ||
|
|
5542245b2a | ||
|
|
6eb204587d | ||
|
|
ce1eedd7cd | ||
|
|
417cc57aa7 | ||
|
|
57ac2c8c98 | ||
|
|
25515d863e | ||
|
|
2412931122 | ||
|
|
51838df0d7 | ||
|
|
e3e6f5561c | ||
|
|
a54a7aa4fb | ||
|
|
9de773ddae | ||
|
|
9a32cd9501 | ||
|
|
90d39a3974 | ||
|
|
6544513ca7 | ||
|
|
f7619f0685 | ||
|
|
a20c2ec2eb | ||
|
|
028734a42c | ||
|
|
29b9eadd57 | ||
|
|
83a33c2222 | ||
|
|
c274918244 | ||
|
|
57833bee13 | ||
|
|
0a1346f1c2 | ||
|
|
5145ae1714 | ||
|
|
086ec3e145 | ||
|
|
d538502457 | ||
|
|
978782e2fe | ||
|
|
ce1004d318 | ||
|
|
3545253844 | ||
|
|
ad69019ba6 | ||
|
|
b8f6a05538 | ||
|
|
98b40d325a | ||
|
|
8f2e58733d | ||
|
|
ae17f3d788 | ||
|
|
a71bbd5b14 | ||
|
|
05e1a7297c | ||
|
|
1f9965b13a | ||
|
|
fb32d2155b | ||
|
|
4c90bae87c | ||
|
|
05cfd5d8b0 | ||
|
|
b2fdcd5649 | ||
|
|
f4bfa83e24 | ||
|
|
4222dd9689 | ||
|
|
ccb2dae890 | ||
|
|
f7297c96c4 | ||
|
|
87f0810914 | ||
|
|
016c82fa85 | ||
|
|
fad866cf33 | ||
|
|
c3319ce109 | ||
|
|
ca5d7663f9 | ||
|
|
cee9c1f4d7 | ||
|
|
fb03d78234 | ||
|
|
e0134d680e | ||
|
|
8e855bc9bb | ||
|
|
2772d85603 | ||
|
|
acf06c78ed | ||
|
|
cda1610a58 |
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -23,7 +23,7 @@ A clear and concise description of what you expected to happen.
|
|||||||
**Screenshots**
|
**Screenshots**
|
||||||
If applicable, add screenshots to help explain your problem.
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
**Server VErsion (please complete the following information):**
|
**Server Version (please complete the following information):**
|
||||||
- Spigot Version: [e.g. Paperspigot 1.8.8]
|
- Spigot Version: [e.g. Paperspigot 1.8.8]
|
||||||
- Factions Version [use /f version]
|
- Factions Version [use /f version]
|
||||||
- Minecraft Version: [If a bug is dependent on client version]
|
- Minecraft Version: [If a bug is dependent on client version]
|
||||||
|
|||||||
37
README.md
37
README.md
@@ -1,9 +1,8 @@
|
|||||||
# SaberFactions
|
# SaberFactions
|
||||||
|
|
||||||
 [](https://www.codefactor.io/repository/github/driftay/saber-factions)
|
 [](https://www.codefactor.io/repository/github/driftay/saber-factions) [](https://github.com/SaberLLC/Saber-Factions/blob/1.6.x/LICENSE) 
|
||||||
|
|
||||||
SaberFactions is a fork of both FactionsUUID and SavageFactions. Creators of those plugins include DtrShock and ProSavage. Credits to them.
|
SaberFactions is an exotic, performance optmized, and feature rich factions plugin that focuses on not only making the player experience as great as possibly but maintaining this aspect with the cost of NOTHING! We strive to continue development for SaberFactions as the factions community is strongly growing and seeking new players every day.
|
||||||
SaberFactions is the newest, latest and greatest factions plugin designed for the best and most functional factions experience minecraft has seen!
|
|
||||||
|
|
||||||
## Some Exciting Features
|
## Some Exciting Features
|
||||||
Some of our features include the following
|
Some of our features include the following
|
||||||
@@ -14,21 +13,27 @@ Some of our features include the following
|
|||||||
* More F Upgrades - Unbreakable Redstone Upgrade, Members Upgrade, and Power Upgrade.
|
* More F Upgrades - Unbreakable Redstone Upgrade, Members Upgrade, and Power Upgrade.
|
||||||
* Factions Corner - In the corner of a world? No Problem /f corner will claim your entire buffer for you!
|
* Factions Corner - In the corner of a world? No Problem /f corner will claim your entire buffer for you!
|
||||||
* Command Cooldowns - Configurable Command Cooldowns for most "spam" commands. And so Much More to Come!
|
* Command Cooldowns - Configurable Command Cooldowns for most "spam" commands. And so Much More to Come!
|
||||||
|
* Faction Points - A point based currency that can be used for any aspect of factions gameplay!
|
||||||
|
* Faction Shop - A shop that essentially lets players buy in-game items in exchange for faction points!
|
||||||
|
* Faction Discord Integration - A discord intergrated factions bot for each faction to have their own personalized discord bot within their faction!
|
||||||
|
* Faction Audit - A full based logging system (GUI designed) to see every aspect of what happens in your faction!
|
||||||
|
* Factions Check System - An automated check system that alerts players when to check walls/buffers!
|
||||||
|
* Faction Reserves - A system designed to reserve a specific faction name for a specific player!
|
||||||
|
|
||||||
## Dependency With Maven
|
## Dependency With Maven
|
||||||
```
|
```
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>jitpack.io</id>
|
<id>jitpack.io</id>
|
||||||
<url>https://jitpack.io</url>
|
<url>https://jitpack.io</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.Driftay</groupId>
|
<groupId>com.github.SaberLLC</groupId>
|
||||||
<artifactId>Saber-Factions</artifactId>
|
<artifactId>Saber-Factions</artifactId>
|
||||||
<version>1.4.1</version>
|
<version>2.2.7-STABLE</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
## Moving Forward
|
## Moving Forward
|
||||||
|
|
||||||
@@ -36,8 +41,8 @@ Moving forward we plan to take all suggestions into consideration, as they come
|
|||||||
We Plan on Releasing the latest and greatest factions/skyblock/prison plugins minecraft has to offer and wont settle for anything less
|
We Plan on Releasing the latest and greatest factions/skyblock/prison plugins minecraft has to offer and wont settle for anything less
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
Our Discord is Currently In Progress of a Massive Overhaul, but we still encourage our community to join and express any concerns/questions/suggestions they may have!
|
Have a problem, question, or concer? We encourage our community to join and express any inquiry you may have
|
||||||
https://discord.gg/37JvmM
|
https://discord.saber.pw
|
||||||
|
|
||||||
Look forward to a bright future and a journey with all of you!
|
Look forward to a bright future and a journey with all of you!
|
||||||
|
|
||||||
|
|||||||
12
pom.xml
12
pom.xml
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<groupId>com.massivecraft</groupId>
|
<groupId>com.massivecraft</groupId>
|
||||||
<artifactId>Factions</artifactId>
|
<artifactId>Factions</artifactId>
|
||||||
<version>1.6.9.5-U0.2.1-2.2.2-BETA</version>
|
<version>1.6.9.5-2.2.9-RC</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>SaberFactions</name>
|
<name>SaberFactions</name>
|
||||||
@@ -385,6 +385,12 @@
|
|||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mojang</groupId>
|
||||||
|
<artifactId>authlib</artifactId>
|
||||||
|
<version>1.5.21</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.rayzr522</groupId>
|
<groupId>me.rayzr522</groupId>
|
||||||
<artifactId>jsonmessage</artifactId>
|
<artifactId>jsonmessage</artifactId>
|
||||||
@@ -405,6 +411,10 @@
|
|||||||
<name>bintray</name>
|
<name>bintray</name>
|
||||||
<url>http://jcenter.bintray.com</url>
|
<url>http://jcenter.bintray.com</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>mojang-repo</id>
|
||||||
|
<url>https://libraries.minecraft.net/</url>
|
||||||
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>net.coreprotect</id>
|
<id>net.coreprotect</id>
|
||||||
<url>http://maven.playpro.com/</url>
|
<url>http://maven.playpro.com/</url>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class Conf {
|
|||||||
public static final transient double DYNMAP_STYLE_FILL_OPACITY = 0.35D;
|
public static final transient double DYNMAP_STYLE_FILL_OPACITY = 0.35D;
|
||||||
public static final transient String DYNMAP_STYLE_HOME_MARKER = "greenflag";
|
public static final transient String DYNMAP_STYLE_HOME_MARKER = "greenflag";
|
||||||
public static final transient boolean DYNMAP_STYLE_BOOST = false;
|
public static final transient boolean DYNMAP_STYLE_BOOST = false;
|
||||||
public static List<String> baseCommandAliases = new ArrayList<>();
|
public static List<String> baseCommandAliases = new ArrayList<>(Collections.singletonList("f"));
|
||||||
public static boolean allowNoSlashCommand = true;
|
public static boolean allowNoSlashCommand = true;
|
||||||
|
|
||||||
// Colors
|
// Colors
|
||||||
@@ -100,6 +100,13 @@ public class Conf {
|
|||||||
public static boolean worldGuardChecking = false;
|
public static boolean worldGuardChecking = false;
|
||||||
public static boolean worldGuardBuildPriority = false;
|
public static boolean worldGuardBuildPriority = false;
|
||||||
public static boolean factionsDrainEnabled = false;
|
public static boolean factionsDrainEnabled = false;
|
||||||
|
//RESERVE
|
||||||
|
public static boolean useReserveSystem = true;
|
||||||
|
//AUDIT
|
||||||
|
public static boolean useAuditSystem = true;
|
||||||
|
|
||||||
|
//GUI's
|
||||||
|
public static boolean useDisbandGUI = true;
|
||||||
|
|
||||||
//DISCORD
|
//DISCORD
|
||||||
public static boolean useDiscordSystem = false;
|
public static boolean useDiscordSystem = false;
|
||||||
@@ -239,6 +246,7 @@ public class Conf {
|
|||||||
public static boolean ownedMessageInsideTerritory = true;
|
public static boolean ownedMessageInsideTerritory = true;
|
||||||
public static boolean ownedMessageByChunk = false;
|
public static boolean ownedMessageByChunk = false;
|
||||||
public static boolean pistonProtectionThroughDenyBuild = true;
|
public static boolean pistonProtectionThroughDenyBuild = true;
|
||||||
|
public static Set<Material> loggableMaterials = EnumSet.noneOf(Material.class);
|
||||||
public static Set<Material> territoryProtectedMaterials = EnumSet.noneOf(Material.class);
|
public static Set<Material> territoryProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||||
public static Set<Material> territoryDenyUsageMaterials = EnumSet.noneOf(Material.class);
|
public static Set<Material> territoryDenyUsageMaterials = EnumSet.noneOf(Material.class);
|
||||||
public static Set<Material> territoryProtectedMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
public static Set<Material> territoryProtectedMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||||
@@ -403,7 +411,6 @@ public class Conf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
baseCommandAliases.add("f");
|
|
||||||
|
|
||||||
blacklistedFactionNames.add("somenamehere");
|
blacklistedFactionNames.add("somenamehere");
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import java.util.Set;
|
|||||||
public class FLocation implements Serializable {
|
public class FLocation implements Serializable {
|
||||||
private static final long serialVersionUID = -8292915234027387983L;
|
private static final long serialVersionUID = -8292915234027387983L;
|
||||||
private static final boolean worldBorderSupport;
|
private static final boolean worldBorderSupport;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
boolean worldBorderClassPresent = false;
|
boolean worldBorderClassPresent = false;
|
||||||
try {
|
try {
|
||||||
@@ -22,7 +21,6 @@ public class FLocation implements Serializable {
|
|||||||
worldBorderClassPresent = true;
|
worldBorderClassPresent = true;
|
||||||
} catch (ClassNotFoundException ignored) {
|
} catch (ClassNotFoundException ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
worldBorderSupport = worldBorderClassPresent;
|
worldBorderSupport = worldBorderClassPresent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +43,7 @@ public class FLocation implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public FLocation(Location location) {
|
public FLocation(Location location) {
|
||||||
this(location.getWorld().getName(), blockToChunk(location.getBlockX()), blockToChunk(location.getBlockZ()));
|
this(Objects.requireNonNull(location.getWorld()).getName(), blockToChunk(location.getBlockX()), blockToChunk(location.getBlockZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public FLocation(Player player) {
|
public FLocation(Player player) {
|
||||||
@@ -152,6 +150,8 @@ public class FLocation implements Serializable {
|
|||||||
return "" + x + "," + z;
|
return "" + x + "," + z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String formatXAndZ(String splitter) { return chunkToBlock(this.x) + "x" + splitter + " " + chunkToBlock(this.z) + "z"; }
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
// Misc Geometry
|
// Misc Geometry
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
@@ -178,9 +178,9 @@ public class FLocation implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInChunk(Location loc) {
|
public boolean isInChunk(Location loc) {
|
||||||
if (loc == null) {
|
if(loc == null) return false;
|
||||||
return false;
|
if(loc.getWorld() == null) return false;
|
||||||
}
|
|
||||||
Chunk chunk = loc.getChunk();
|
Chunk chunk = loc.getChunk();
|
||||||
return loc.getWorld().getName().equalsIgnoreCase(getWorldName()) && chunk.getX() == x && chunk.getZ() == z;
|
return loc.getWorld().getName().equalsIgnoreCase(getWorldName()) && chunk.getX() == x && chunk.getZ() == z;
|
||||||
}
|
}
|
||||||
@@ -192,18 +192,23 @@ public class FLocation implements Serializable {
|
|||||||
* @return whether this location is outside of the border
|
* @return whether this location is outside of the border
|
||||||
*/
|
*/
|
||||||
public boolean isOutsideWorldBorder(int buffer) {
|
public boolean isOutsideWorldBorder(int buffer) {
|
||||||
if (!worldBorderSupport) {
|
if (!worldBorderSupport) return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
WorldBorder border = getWorld().getWorldBorder();
|
WorldBorder border = getWorld().getWorldBorder();
|
||||||
Chunk chunk = border.getCenter().getChunk();
|
Location center = border.getCenter();
|
||||||
|
double size = border.getSize();
|
||||||
|
|
||||||
int lim = FLocation.chunkToRegion((int) border.getSize()) - buffer;
|
int bufferBlocks = buffer << 4;
|
||||||
int diffX = chunk.getX() - x;
|
|
||||||
int diffZ = chunk.getZ() - z;
|
|
||||||
|
|
||||||
return (diffX > lim || diffZ > lim) || (-diffX >= lim || -diffZ >= lim);
|
double borderMinX = (center.getX() - size / 2.0D) + bufferBlocks;
|
||||||
|
double borderMinZ = (center.getZ() - size / 2.0D) + bufferBlocks;
|
||||||
|
double borderMaxX = (center.getX() + size / 2.0D) - bufferBlocks;
|
||||||
|
double borderMaxZ = (center.getZ() + size / 2.0D) - bufferBlocks;
|
||||||
|
|
||||||
|
int chunkMinX = this.x << 4;
|
||||||
|
int chunkMaxX = chunkMinX | 15;
|
||||||
|
int chunkMinZ = this.z << 4;
|
||||||
|
int chunkMaxZ = chunkMinZ | 15;
|
||||||
|
return (chunkMinX >= borderMaxX) || (chunkMinZ >= borderMaxZ) || (chunkMaxX <= borderMinX) || (chunkMaxZ <= borderMinZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
@@ -213,10 +218,7 @@ public class FLocation implements Serializable {
|
|||||||
double radiusSquared = radius * radius;
|
double radiusSquared = radius * radius;
|
||||||
|
|
||||||
Set<FLocation> ret = new LinkedHashSet<>();
|
Set<FLocation> ret = new LinkedHashSet<>();
|
||||||
if (radius <= 0) {
|
if (radius <= 0) return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int xfrom = (int) Math.floor(this.x - radius);
|
int xfrom = (int) Math.floor(this.x - radius);
|
||||||
int xto = (int) Math.ceil(this.x + radius);
|
int xto = (int) Math.ceil(this.x + radius);
|
||||||
int zfrom = (int) Math.floor(this.z - radius);
|
int zfrom = (int) Math.floor(this.z - radius);
|
||||||
@@ -230,7 +232,6 @@ public class FLocation implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,13 +247,8 @@ public class FLocation implements Serializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (obj == this) {
|
if (obj == this) return true;
|
||||||
return true;
|
if (!(obj instanceof FLocation)) return false;
|
||||||
}
|
|
||||||
if (!(obj instanceof FLocation)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
FLocation that = (FLocation) obj;
|
FLocation that = (FLocation) obj;
|
||||||
return this.x == that.x && this.z == that.z && (Objects.equals(this.worldName, that.worldName));
|
return this.x == that.x && this.z == that.z && (Objects.equals(this.worldName, that.worldName));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,10 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,6 +33,43 @@ public interface FPlayer extends EconomyParticipator {
|
|||||||
|
|
||||||
boolean hasNotificationsEnabled();
|
boolean hasNotificationsEnabled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if a player has enemies nearby based on the enemy check task in CmdFly
|
||||||
|
* NOTE: THIS VALUE IS ONLY UPDATED WHEN A USER IS USING FLY
|
||||||
|
* @return enemiesNearby as a boolean
|
||||||
|
*/
|
||||||
|
boolean hasEnemiesNearby();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if this FPlayer has an enemy nearby
|
||||||
|
* @param b enemiesNearby
|
||||||
|
*/
|
||||||
|
void setEnemiesNearby(Boolean b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get this players inventory prior to entering the duel (Will be set to null after duel!)
|
||||||
|
* @return Map of old inventory contents
|
||||||
|
*/
|
||||||
|
Map<Integer, ItemStack> getOldInv();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set this players stored inventory, this inventory will be retrieved after a duel is complete
|
||||||
|
* @param inv Map of inventory contents
|
||||||
|
*/
|
||||||
|
void setOldInv(Map<Integer, ItemStack> inv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to check if player has entered a duel and has not proceeded
|
||||||
|
* @return boolean determining if the player is in a duel
|
||||||
|
*/
|
||||||
|
boolean isInDuel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used before and after duels to set the inDuel status of the FPlayer
|
||||||
|
* @param b Desired status
|
||||||
|
*/
|
||||||
|
void setInDuel(Boolean b);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get if a player has setup their Discord before
|
* Get if a player has setup their Discord before
|
||||||
* @return if the player setup Discord as a boolean
|
* @return if the player setup Discord as a boolean
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
|
|
||||||
public interface Faction extends EconomyParticipator {
|
public interface Faction extends EconomyParticipator {
|
||||||
|
|
||||||
|
void broadcast(String s);
|
||||||
|
|
||||||
String getMemberRoleId();
|
String getMemberRoleId();
|
||||||
|
|
||||||
void setMemberRoleId(String roleId);
|
void setMemberRoleId(String roleId);
|
||||||
@@ -441,4 +443,7 @@ public interface Faction extends EconomyParticipator {
|
|||||||
|
|
||||||
void paypalSet(String paypal);
|
void paypalSet(String paypal);
|
||||||
|
|
||||||
|
// -------------------------------
|
||||||
|
// Shields
|
||||||
|
// -------------------------------
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,13 +4,15 @@ import ch.njol.skript.Skript;
|
|||||||
import ch.njol.skript.SkriptAddon;
|
import ch.njol.skript.SkriptAddon;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.massivecraft.factions.cmd.CmdAutoHelp;
|
import com.massivecraft.factions.cmd.*;
|
||||||
import com.massivecraft.factions.cmd.CommandContext;
|
import com.massivecraft.factions.cmd.audit.FChestListener;
|
||||||
import com.massivecraft.factions.cmd.FCmdRoot;
|
import com.massivecraft.factions.cmd.audit.FLogManager;
|
||||||
import com.massivecraft.factions.cmd.FCommand;
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.cmd.check.CheckTask;
|
import com.massivecraft.factions.cmd.check.CheckTask;
|
||||||
import com.massivecraft.factions.cmd.check.WeeWooTask;
|
import com.massivecraft.factions.cmd.check.WeeWooTask;
|
||||||
import com.massivecraft.factions.cmd.chest.AntiChestListener;
|
import com.massivecraft.factions.cmd.chest.AntiChestListener;
|
||||||
|
import com.massivecraft.factions.cmd.reserve.ListParameterizedType;
|
||||||
|
import com.massivecraft.factions.cmd.reserve.ReserveObject;
|
||||||
import com.massivecraft.factions.discord.Discord;
|
import com.massivecraft.factions.discord.Discord;
|
||||||
import com.massivecraft.factions.discord.DiscordListener;
|
import com.massivecraft.factions.discord.DiscordListener;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
@@ -24,12 +26,14 @@ import com.massivecraft.factions.struct.Relation;
|
|||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.util.*;
|
import com.massivecraft.factions.util.*;
|
||||||
import com.massivecraft.factions.util.Particles.ReflectionUtils;
|
import com.massivecraft.factions.util.Particles.ReflectionUtils;
|
||||||
|
import com.massivecraft.factions.util.Sync.SyncExecutor;
|
||||||
|
import com.massivecraft.factions.util.Wait.WaitExecutor;
|
||||||
import com.massivecraft.factions.zcore.CommandVisibility;
|
import com.massivecraft.factions.zcore.CommandVisibility;
|
||||||
import com.massivecraft.factions.zcore.MPlugin;
|
import com.massivecraft.factions.zcore.MPlugin;
|
||||||
import com.massivecraft.factions.zcore.fperms.Access;
|
import com.massivecraft.factions.zcore.fperms.Access;
|
||||||
import com.massivecraft.factions.zcore.fperms.Permissable;
|
import com.massivecraft.factions.zcore.fperms.Permissable;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.fupgrades.*;
|
import com.massivecraft.factions.zcore.fupgrades.UpgradesListener;
|
||||||
import com.massivecraft.factions.zcore.util.TextUtil;
|
import com.massivecraft.factions.zcore.util.TextUtil;
|
||||||
import me.lucko.commodore.CommodoreProvider;
|
import me.lucko.commodore.CommodoreProvider;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
@@ -37,8 +41,6 @@ import net.milkbowl.vault.permission.Permission;
|
|||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.ArmorStand;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
@@ -51,6 +53,9 @@ import org.bukkit.plugin.RegisteredServiceProvider;
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.OpenOption;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
@@ -67,7 +72,6 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
// Plugins can check this boolean while hooking in have
|
// Plugins can check this boolean while hooking in have
|
||||||
// a green light to use the api.
|
// a green light to use the api.
|
||||||
public static boolean startupFinished = false;
|
public static boolean startupFinished = false;
|
||||||
public static Economy econ = null;
|
|
||||||
public boolean PlaceholderApi;
|
public boolean PlaceholderApi;
|
||||||
// Commands
|
// Commands
|
||||||
public FCmdRoot cmdBase;
|
public FCmdRoot cmdBase;
|
||||||
@@ -77,6 +81,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
public boolean mc112 = false;
|
public boolean mc112 = false;
|
||||||
public boolean mc113 = false;
|
public boolean mc113 = false;
|
||||||
public boolean mc114 = false;
|
public boolean mc114 = false;
|
||||||
|
public boolean mc115 = false;
|
||||||
public boolean useNonPacketParticles = false;
|
public boolean useNonPacketParticles = false;
|
||||||
public boolean factionsFlight = false;
|
public boolean factionsFlight = false;
|
||||||
SkriptAddon skriptAddon;
|
SkriptAddon skriptAddon;
|
||||||
@@ -90,6 +95,8 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
private Listener[] eventsListener;
|
private Listener[] eventsListener;
|
||||||
public List<String> itemList = getConfig().getStringList("fchest.Items-Not-Allowed");
|
public List<String> itemList = getConfig().getStringList("fchest.Items-Not-Allowed");
|
||||||
private Worldguard wg;
|
private Worldguard wg;
|
||||||
|
private FLogManager fLogManager;
|
||||||
|
private List<ReserveObject> reserveObjects;
|
||||||
|
|
||||||
|
|
||||||
public FactionsPlugin() {
|
public FactionsPlugin() {
|
||||||
@@ -119,25 +126,19 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void playSoundForAll(String sound) {
|
public void playSoundForAll(String sound) {
|
||||||
for (Player pl : Bukkit.getOnlinePlayers()) {
|
for (Player pl : Bukkit.getOnlinePlayers()) playSound(pl, sound);
|
||||||
playSound(pl, sound);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSoundForAll(List<String> sounds) {
|
public void playSoundForAll(List<String> sounds) {
|
||||||
for (Player pl : Bukkit.getOnlinePlayers()) {
|
for (Player pl : Bukkit.getOnlinePlayers()) playSound(pl, sounds);
|
||||||
playSound(pl, sounds);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSound(Player p, List<String> sounds) {
|
public void playSound(Player p, List<String> sounds) {
|
||||||
for (String sound : sounds) {
|
for (String sound : sounds) playSound(p, sound);
|
||||||
playSound(p, sound);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSound(Player p, String sound) {
|
public void playSound(Player p, String sound) {
|
||||||
float pitch = Float.valueOf(sound.split(":")[1]);
|
float pitch = Float.parseFloat(sound.split(":")[1]);
|
||||||
sound = sound.split(":")[0];
|
sound = sound.split(":")[0];
|
||||||
p.playSound(p.getLocation(), Sound.valueOf(sound), pitch, 5.0F);
|
p.playSound(p.getLocation(), Sound.valueOf(sound), pitch, 5.0F);
|
||||||
}
|
}
|
||||||
@@ -167,37 +168,44 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
FactionsPlugin.instance.log("Minecraft Version 1.14 found.");
|
FactionsPlugin.instance.log("Minecraft Version 1.14 found.");
|
||||||
mc114 = true;
|
mc114 = true;
|
||||||
break;
|
break;
|
||||||
|
case 15:
|
||||||
|
FactionsPlugin.instance.log("Minecraft Version 1.15 found.");
|
||||||
|
mc115 = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
migrateFPlayerLeaders();
|
migrateFPlayerLeaders();
|
||||||
log("==== End Setup ====");
|
log("==== End Setup ====");
|
||||||
|
|
||||||
if (!preEnable()) {
|
if (!preEnable()) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.loadSuccessful = false;
|
this.loadSuccessful = false;
|
||||||
|
|
||||||
if (!new File(this.getDataFolder() + "/config.yml").exists()) {
|
if (!new File(this.getDataFolder() + "/config.yml").exists()) {
|
||||||
this.saveResource("config.yml", false);
|
this.saveResource("config.yml", false);
|
||||||
this.reloadConfig();
|
this.reloadConfig();
|
||||||
}
|
}
|
||||||
|
//Start synctask
|
||||||
|
SyncExecutor.startTask();
|
||||||
|
//Start wait task executor
|
||||||
|
WaitExecutor.startTask();
|
||||||
//Attempt to generate a permission list
|
//Attempt to generate a permission list
|
||||||
PermissionList.generateFile();
|
PermissionList.generateFile();
|
||||||
// Load Conf from disk
|
// Load Conf from disk
|
||||||
Conf.load();
|
Conf.load();
|
||||||
|
fLogManager = new FLogManager();
|
||||||
//Dependency checks
|
//Dependency checks
|
||||||
if (Conf.dependencyCheck && (!Bukkit.getPluginManager().isPluginEnabled("Vault") && !Bukkit.getPluginManager().isPluginEnabled("Essentials"))) {
|
if (Conf.dependencyCheck && (!Bukkit.getPluginManager().isPluginEnabled("Vault"))) {
|
||||||
divider();
|
divider();
|
||||||
System.out.println("You are missing dependencies!");
|
System.out.println("You are missing dependencies!");
|
||||||
System.out.println("Please verify EssentialsX and Vault are installed!");
|
System.out.println("Please verify Vault is installed!");
|
||||||
Conf.save();
|
Conf.save();
|
||||||
Bukkit.getPluginManager().disablePlugin(instance);
|
Bukkit.getPluginManager().disablePlugin(instance);
|
||||||
divider();
|
divider();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//TODO fix this
|
||||||
//Update their config if needed
|
//Update their config if needed
|
||||||
// Updater.updateIfNeeded(getConfig());
|
// Updater.updateIfNeeded(getConfig());
|
||||||
RegisteredServiceProvider<Economy> rsp = FactionsPlugin.this.getServer().getServicesManager().getRegistration(Economy.class);
|
RegisteredServiceProvider<Economy> rsp = FactionsPlugin.this.getServer().getServicesManager().getRegistration(Economy.class);
|
||||||
FactionsPlugin.econ = rsp.getProvider();
|
|
||||||
com.massivecraft.factions.integration.Essentials.setup();
|
com.massivecraft.factions.integration.Essentials.setup();
|
||||||
hookedPlayervaults = setupPlayervaults();
|
hookedPlayervaults = setupPlayervaults();
|
||||||
FPlayers.getInstance().load();
|
FPlayers.getInstance().load();
|
||||||
@@ -210,20 +218,15 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
fPlayer.resetFactionData(false);
|
fPlayer.resetFactionData(false);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (fPlayer.isAlt()) {
|
if (fPlayer.isAlt()) faction.addAltPlayer(fPlayer);
|
||||||
faction.addAltPlayer(fPlayer);
|
else faction.addFPlayer(fPlayer);
|
||||||
} else {
|
|
||||||
faction.addFPlayer(fPlayer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getConfig().getBoolean("enable-faction-flight", true)) {
|
|
||||||
UtilFly.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
Board.getInstance().load();
|
Board.getInstance().load();
|
||||||
Board.getInstance().clean();
|
Board.getInstance().clean();
|
||||||
|
//Load command aliases
|
||||||
|
Aliases.load();
|
||||||
// Add Base Commands
|
// Add Base Commands
|
||||||
this.cmdBase = new FCmdRoot();
|
this.cmdBase = new FCmdRoot();
|
||||||
this.cmdAutoHelp = new CmdAutoHelp();
|
this.cmdAutoHelp = new CmdAutoHelp();
|
||||||
@@ -243,9 +246,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
log("Minecraft Version 1.9 or higher found, using non packet based particle API");
|
log("Minecraft Version 1.9 or higher found, using non packet based particle API");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getConfig().getBoolean("enable-faction-flight")) {
|
if (getConfig().getBoolean("enable-faction-flight")) factionsFlight = true;
|
||||||
factionsFlight = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getServer().getPluginManager().getPlugin("Skript") != null) {
|
if (getServer().getPluginManager().getPlugin("Skript") != null) {
|
||||||
log("Skript was found! Registering FactionsPlugin Addon...");
|
log("Skript was found! Registering FactionsPlugin Addon...");
|
||||||
@@ -259,11 +260,11 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
if (Conf.useCheckSystem) {
|
if (Conf.useCheckSystem) {
|
||||||
int minute = 1200;
|
int minute = 1200;
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 3), 0L, (long) (minute * 3));
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 3), 0L, minute * 3);
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 5), 0L, (long) (minute * 5));
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 5), 0L, minute * 5);
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 10), 0L, (long) (minute * 10));
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 10), 0L, minute * 10);
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 15), 0L, (long) (minute * 15));
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 15), 0L, minute * 15);
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 30), 0L, (long) (minute * 30));
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new CheckTask(this, 30), 0L, minute * 30);
|
||||||
this.getServer().getScheduler().runTaskTimer(this, CheckTask::cleanupTask, 0L, 1200L);
|
this.getServer().getScheduler().runTaskTimer(this, CheckTask::cleanupTask, 0L, 1200L);
|
||||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new WeeWooTask(this), 600L, 600L);
|
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new WeeWooTask(this), 600L, 600L);
|
||||||
}
|
}
|
||||||
@@ -271,6 +272,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
new Discord(this);
|
new Discord(this);
|
||||||
|
|
||||||
ShopConfig.setup();
|
ShopConfig.setup();
|
||||||
|
fLogManager.loadLogs(this);
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(factionsPlayerListener = new FactionsPlayerListener(), this);
|
getServer().getPluginManager().registerEvents(factionsPlayerListener = new FactionsPlayerListener(), this);
|
||||||
|
|
||||||
@@ -280,9 +282,10 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
new FactionsEntityListener(),
|
new FactionsEntityListener(),
|
||||||
new FactionsExploitListener(),
|
new FactionsExploitListener(),
|
||||||
new FactionsBlockListener(),
|
new FactionsBlockListener(),
|
||||||
new FUpgradesGUI(),
|
|
||||||
new UpgradesListener(),
|
new UpgradesListener(),
|
||||||
new MissionHandler(this),
|
new MissionHandler(this),
|
||||||
|
new FChestListener(),
|
||||||
|
new MenuListener(),
|
||||||
new AntiChestListener()
|
new AntiChestListener()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -292,7 +295,25 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
this.getCommand(refCommand).setExecutor(cmdBase);
|
this.getCommand(refCommand).setExecutor(cmdBase);
|
||||||
|
|
||||||
if (!CommodoreProvider.isSupported()) this.getCommand(refCommand).setTabCompleter(this);
|
if (!CommodoreProvider.isSupported()) this.getCommand(refCommand).setTabCompleter(this);
|
||||||
|
reserveObjects = new ArrayList<>();
|
||||||
|
String path = Paths.get(this.getDataFolder().getAbsolutePath()).toAbsolutePath().toString() + File.separator + "reserves.json";
|
||||||
|
File file = new File(path);
|
||||||
|
try {
|
||||||
|
String json;
|
||||||
|
if (!file.exists()) {
|
||||||
|
file.getParentFile().mkdirs();
|
||||||
|
file.createNewFile();
|
||||||
|
}
|
||||||
|
json = String.join("", Files.readAllLines(Paths.get(file.getPath()))).replace("\n", "").replace("\r", "");
|
||||||
|
if (json.equalsIgnoreCase("")) {
|
||||||
|
Files.write(Paths.get(path), "[]".getBytes());
|
||||||
|
json = "[]";
|
||||||
|
}
|
||||||
|
reserveObjects = this.getGsonBuilder().create().fromJson(json, new ListParameterizedType(ReserveObject.class));
|
||||||
|
if (reserveObjects == null) reserveObjects = new ArrayList<>();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
if (getDescription().getFullName().contains("BETA")) {
|
if (getDescription().getFullName().contains("BETA")) {
|
||||||
divider();
|
divider();
|
||||||
System.out.println("You are using a BETA version of the plugin!");
|
System.out.println("You are using a BETA version of the plugin!");
|
||||||
@@ -349,7 +370,6 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
try {
|
try {
|
||||||
BufferedReader br = new BufferedReader(new FileReader(fplayerFile));
|
BufferedReader br = new BufferedReader(new FileReader(fplayerFile));
|
||||||
System.out.println("Migrating old players.json file.");
|
System.out.println("Migrating old players.json file.");
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
if (line.contains("\"role\": \"ADMIN\"")) {
|
if (line.contains("\"role\": \"ADMIN\"")) {
|
||||||
@@ -381,9 +401,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
private boolean setupPermissions() {
|
private boolean setupPermissions() {
|
||||||
try {
|
try {
|
||||||
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
|
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
|
||||||
if (rsp != null) {
|
if (rsp != null) perms = rsp.getProvider();
|
||||||
perms = rsp.getProvider();
|
|
||||||
}
|
|
||||||
} catch (NoClassDefFoundError ex) {
|
} catch (NoClassDefFoundError ex) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -420,24 +438,41 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
// only save data if plugin actually completely loaded successfully
|
try {
|
||||||
if (this.loadSuccessful) {
|
String path = Paths.get(getDataFolder().getAbsolutePath()).toAbsolutePath().toString() + File.separator + "reserves.json";
|
||||||
Conf.saveSync();
|
File file = new File(path);
|
||||||
|
if (!file.exists()) {
|
||||||
|
file.getParentFile().mkdirs();
|
||||||
|
file.createNewFile();
|
||||||
|
}
|
||||||
|
Files.write(Paths.get(file.getPath()),getGsonBuilder().create().toJson(reserveObjects).getBytes());
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// only save data if plugin actually completely loaded successfully
|
||||||
|
if (this.loadSuccessful) Conf.saveSync();
|
||||||
|
|
||||||
|
|
||||||
if (AutoLeaveTask != null) {
|
if (AutoLeaveTask != null) {
|
||||||
this.getServer().getScheduler().cancelTask(AutoLeaveTask);
|
this.getServer().getScheduler().cancelTask(AutoLeaveTask);
|
||||||
AutoLeaveTask = null;
|
AutoLeaveTask = null;
|
||||||
}
|
}
|
||||||
DiscordListener.saveGuilds();
|
DiscordListener.saveGuilds();
|
||||||
|
if (Discord.jda != null) {
|
||||||
|
Discord.jda.shutdownNow();
|
||||||
|
}
|
||||||
super.onDisable();
|
super.onDisable();
|
||||||
|
try {
|
||||||
|
fLogManager.saveLogs();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startAutoLeaveTask(boolean restartIfRunning) {
|
public void startAutoLeaveTask(boolean restartIfRunning) {
|
||||||
if (AutoLeaveTask != null) {
|
if (AutoLeaveTask != null) {
|
||||||
if (!restartIfRunning) {
|
if (!restartIfRunning) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.getServer().getScheduler().cancelTask(AutoLeaveTask);
|
this.getServer().getScheduler().cancelTask(AutoLeaveTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,7 +489,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack createItem(Material material, int amount, short datavalue, String name, List<String> lore) {
|
public ItemStack createItem(Material material, int amount, short datavalue, String name, List<String> lore) {
|
||||||
ItemStack item = new ItemStack(XMaterial.matchXMaterial(material.toString()).parseMaterial(), amount, datavalue);
|
ItemStack item = new ItemStack(XMaterial.matchXMaterial(material.toString()).get().parseMaterial(), amount, datavalue);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
meta.setDisplayName(color(name));
|
meta.setDisplayName(color(name));
|
||||||
meta.setLore(colorList(lore));
|
meta.setLore(colorList(lore));
|
||||||
@@ -489,9 +524,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] split) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] split) {
|
||||||
if (split.length == 0) {
|
if (split.length == 0) return handleCommand(sender, "/f help", false);
|
||||||
return handleCommand(sender, "/f help", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// otherwise, needs to be handled; presumably another plugin directly ran the command
|
// otherwise, needs to be handled; presumably another plugin directly ran the command
|
||||||
String cmd = Conf.baseCommandAliases.isEmpty() ? "/f" : "/" + Conf.baseCommandAliases.get(0);
|
String cmd = Conf.baseCommandAliases.isEmpty() ? "/f" : "/" + Conf.baseCommandAliases.get(0);
|
||||||
@@ -504,8 +537,6 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
// Must be a LinkedList to prevent UnsupportedOperationException.
|
// Must be a LinkedList to prevent UnsupportedOperationException.
|
||||||
List<String> argsList = new LinkedList<>(Arrays.asList(args));
|
List<String> argsList = new LinkedList<>(Arrays.asList(args));
|
||||||
CommandContext context = new CommandContext(sender, argsList, alias);
|
CommandContext context = new CommandContext(sender, argsList, alias);
|
||||||
String cmd = Conf.baseCommandAliases.isEmpty() ? "/f" : "/" + Conf.baseCommandAliases.get(0);
|
|
||||||
// String cmdValid = (cmd + " " + TextUtil.implode(context.args, " ")).trim();
|
|
||||||
List<FCommand> commandsList = cmdBase.subCommands;
|
List<FCommand> commandsList = cmdBase.subCommands;
|
||||||
FCommand commandsEx = cmdBase;
|
FCommand commandsEx = cmdBase;
|
||||||
List<String> completions = new ArrayList<>();
|
List<String> completions = new ArrayList<>();
|
||||||
@@ -534,16 +565,12 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String lastArg = args[args.length - 1].toLowerCase();
|
String lastArg = args[args.length - 1].toLowerCase();
|
||||||
|
|
||||||
completions = completions.stream()
|
completions = completions.stream()
|
||||||
.filter(m -> m.toLowerCase().startsWith(lastArg))
|
.filter(m -> m.toLowerCase().startsWith(lastArg))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
return completions;
|
return completions;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
String lastArg = args[args.length - 1].toLowerCase();
|
String lastArg = args[args.length - 1].toLowerCase();
|
||||||
|
|
||||||
for (Role value : Role.values()) completions.add(value.nicename);
|
for (Role value : Role.values()) completions.add(value.nicename);
|
||||||
for (Relation value : Relation.values()) completions.add(value.nicename);
|
for (Relation value : Relation.values()) completions.add(value.nicename);
|
||||||
// The stream and foreach from the old implementation looped 2 times, by looping all players -> filtered -> looped filter and added -> filtered AGAIN at the end.
|
// The stream and foreach from the old implementation looped 2 times, by looping all players -> filtered -> looped filter and added -> filtered AGAIN at the end.
|
||||||
@@ -556,22 +583,6 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createTimedHologram(final Location location, String text, Long timeout) {
|
|
||||||
ArmorStand as = (ArmorStand) location.add(0.5, 1, 0.5).getWorld().spawnEntity(location, EntityType.ARMOR_STAND); //Spawn the ArmorStand
|
|
||||||
as.setVisible(false); //Makes the ArmorStand invisible
|
|
||||||
as.setGravity(false); //Make sure it doesn't fall
|
|
||||||
as.setCanPickupItems(false); //I'm not sure what happens if you leave this as it is, but you might as well disable it
|
|
||||||
as.setCustomName(FactionsPlugin.instance.color(text)); //Set this to the text you want
|
|
||||||
as.setCustomNameVisible(true); //This makes the text appear no matter if your looking at the entity or not
|
|
||||||
final ArmorStand armorStand = as;
|
|
||||||
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.instance, () -> {
|
|
||||||
armorStand.remove();
|
|
||||||
getLogger().info("Removing Hologram.");
|
|
||||||
}
|
|
||||||
, timeout * 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// Functions for other plugins to hook into
|
// Functions for other plugins to hook into
|
||||||
@@ -598,11 +609,8 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
// Does player have Faction Chat enabled? If so, chat plugins should preferably not do channels,
|
// Does player have Faction Chat enabled? If so, chat plugins should preferably not do channels,
|
||||||
// local chat, or anything else which targets individual recipients, so Faction Chat can be done
|
// local chat, or anything else which targets individual recipients, so Faction Chat can be done
|
||||||
public boolean isPlayerFactionChatting(Player player) {
|
public boolean isPlayerFactionChatting(Player player) {
|
||||||
if (player == null) {
|
if (player == null) return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
FPlayer me = FPlayers.getInstance().getByPlayer(player);
|
FPlayer me = FPlayers.getInstance().getByPlayer(player);
|
||||||
|
|
||||||
return me != null && me.getChatMode().isAtLeast(ChatMode.ALLIANCE);
|
return me != null && me.getChatMode().isAtLeast(ChatMode.ALLIANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -623,15 +631,11 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
public String getPlayerFactionTagRelation(Player speaker, Player listener) {
|
public String getPlayerFactionTagRelation(Player speaker, Player listener) {
|
||||||
String tag = "~";
|
String tag = "~";
|
||||||
|
|
||||||
if (speaker == null) {
|
if (speaker == null) return tag;
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
FPlayer me = FPlayers.getInstance().getByPlayer(speaker);
|
FPlayer me = FPlayers.getInstance().getByPlayer(speaker);
|
||||||
if (me == null) {
|
if (me == null) return tag;
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if listener isn't set, or config option is disabled, give back uncolored tag
|
// if listener isn't set, or config option is disabled, give back uncolored tag
|
||||||
if (listener == null || !Conf.chatTagRelationColored) {
|
if (listener == null || !Conf.chatTagRelationColored) {
|
||||||
tag = me.getChatTag().trim();
|
tag = me.getChatTag().trim();
|
||||||
@@ -639,29 +643,28 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
FPlayer you = FPlayers.getInstance().getByPlayer(listener);
|
FPlayer you = FPlayers.getInstance().getByPlayer(listener);
|
||||||
if (you == null) {
|
if (you == null) {
|
||||||
tag = me.getChatTag().trim();
|
tag = me.getChatTag().trim();
|
||||||
} else // everything checks out, give the colored tag
|
} else { // everything checks out, give the colored tag
|
||||||
{
|
|
||||||
tag = me.getChatTag(you).trim();
|
tag = me.getChatTag(you).trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tag.isEmpty()) {
|
if (tag.isEmpty()) tag = "~";
|
||||||
tag = "~";
|
|
||||||
}
|
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public FLogManager getFlogManager() {
|
||||||
|
return fLogManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void logFactionEvent(Faction faction, FLogType type, String... arguments) {
|
||||||
|
this.fLogManager.log(faction, type, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
// Get a player's title within their faction, mainly for usage by chat plugins for local/channel chat
|
// Get a player's title within their faction, mainly for usage by chat plugins for local/channel chat
|
||||||
public String getPlayerTitle(Player player) {
|
public String getPlayerTitle(Player player) {
|
||||||
if (player == null) {
|
if (player == null) return "";
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
FPlayer me = FPlayers.getInstance().getByPlayer(player);
|
FPlayer me = FPlayers.getInstance().getByPlayer(player);
|
||||||
if (me == null) {
|
if (me == null) return "";
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
return me.getTitle().trim();
|
return me.getTitle().trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -672,9 +675,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
|
|
||||||
//colors a string list
|
//colors a string list
|
||||||
public List<String> colorList(List<String> lore) {
|
public List<String> colorList(List<String> lore) {
|
||||||
for (int i = 0; i <= lore.size() - 1; i++) {
|
for (int i = 0; i <= lore.size() - 1; i++) lore.set(i, color(lore.get(i)));
|
||||||
lore.set(i, color(lore.get(i)));
|
|
||||||
}
|
|
||||||
return lore;
|
return lore;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -683,14 +684,16 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
return Factions.getInstance().getFactionTags();
|
return Factions.getInstance().getFactionTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ReserveObject> getFactionReserves() {
|
||||||
|
return this.reserveObjects;
|
||||||
|
}
|
||||||
|
|
||||||
// Get a list of all players in the specified faction
|
// Get a list of all players in the specified faction
|
||||||
public Set<String> getPlayersInFaction(String factionTag) {
|
public Set<String> getPlayersInFaction(String factionTag) {
|
||||||
Set<String> players = new HashSet<>();
|
Set<String> players = new HashSet<>();
|
||||||
Faction faction = Factions.getInstance().getByTag(factionTag);
|
Faction faction = Factions.getInstance().getByTag(factionTag);
|
||||||
if (faction != null) {
|
if (faction != null) {
|
||||||
for (FPlayer fplayer : faction.getFPlayers()) {
|
for (FPlayer fplayer : faction.getFPlayers()) players.add(fplayer.getName());
|
||||||
players.add(fplayer.getName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return players;
|
return players;
|
||||||
}
|
}
|
||||||
@@ -700,9 +703,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
Set<String> players = new HashSet<>();
|
Set<String> players = new HashSet<>();
|
||||||
Faction faction = Factions.getInstance().getByTag(factionTag);
|
Faction faction = Factions.getInstance().getByTag(factionTag);
|
||||||
if (faction != null) {
|
if (faction != null) {
|
||||||
for (FPlayer fplayer : faction.getFPlayersWhereOnline(true)) {
|
for (FPlayer fplayer : faction.getFPlayersWhereOnline(true)) players.add(fplayer.getName());
|
||||||
players.add(fplayer.getName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return players;
|
return players;
|
||||||
}
|
}
|
||||||
@@ -722,9 +723,7 @@ public class FactionsPlugin extends MPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void debug(Level level, String s) {
|
public void debug(Level level, String s) {
|
||||||
if (getConfig().getBoolean("debug", false)) {
|
if (getConfig().getBoolean("debug", false)) getLogger().log(level, s);
|
||||||
getLogger().log(level, s);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FactionsPlayerListener getFactionsPlayerListener() {
|
public FactionsPlayerListener getFactionsPlayerListener() {
|
||||||
|
|||||||
150
src/main/java/com/massivecraft/factions/cmd/Aliases.java
Normal file
150
src/main/java/com/massivecraft/factions/cmd/Aliases.java
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author DroppingAnvil
|
||||||
|
*/
|
||||||
|
public class Aliases {
|
||||||
|
public static ArrayList<String> alts_alts = new ArrayList<>(Arrays.asList("alts", "alt"));
|
||||||
|
public static ArrayList<String> alts_list = new ArrayList<>(Arrays.asList("list", "l"));
|
||||||
|
public static ArrayList<String> alts_invite = new ArrayList<>(Collections.singletonList("invite"));
|
||||||
|
public static ArrayList<String> alts_kick = new ArrayList<>(Collections.singletonList("kick"));
|
||||||
|
public static ArrayList<String> audit = new ArrayList<>(Arrays.asList("audit", "log", "logs"));
|
||||||
|
public static ArrayList<String> check = new ArrayList<>(Arrays.asList("check"));
|
||||||
|
public static ArrayList<String> weewoo = new ArrayList<>(Collections.singletonList("weewoo"));
|
||||||
|
public static ArrayList<String> chest = new ArrayList<>(Arrays.asList("chest", "pv"));
|
||||||
|
public static ArrayList<String> claim_auto = new ArrayList<>(Collections.singletonList("autoclaim"));
|
||||||
|
public static ArrayList<String> claim_claim = new ArrayList<>(Collections.singletonList("claim"));
|
||||||
|
public static ArrayList<String> claim_at = new ArrayList<>(Collections.singletonList("claimat"));
|
||||||
|
public static ArrayList<String> claim_line = new ArrayList<>(Arrays.asList("claimline", "cl"));
|
||||||
|
public static ArrayList<String> claim_corner = new ArrayList<>(Arrays.asList("corner"));
|
||||||
|
public static ArrayList<String> unclaim_all_safe = new ArrayList<>(Arrays.asList("safeunclaimall", "safedeclaimall"));
|
||||||
|
public static ArrayList<String> unclaim_unclaim = new ArrayList<>(Arrays.asList("unclaim", "declaim"));
|
||||||
|
public static ArrayList<String> unclaim_all_unsafe = new ArrayList<>(Arrays.asList("unclaimall", "declaimall"));
|
||||||
|
public static ArrayList<String> unclaim_all_war = new ArrayList<>(Arrays.asList("warunclaimall", "wardeclaimall"));
|
||||||
|
public static ArrayList<String> money_money = new ArrayList<>(Arrays.asList("money", "bank"));
|
||||||
|
public static ArrayList<String> money_balance = new ArrayList<>(Arrays.asList("b", "balance"));
|
||||||
|
public static ArrayList<String> money_deposit = new ArrayList<>(Arrays.asList("d", "deposit"));
|
||||||
|
public static ArrayList<String> money_transfer_Ff = new ArrayList<>(Collections.singletonList("ff"));
|
||||||
|
public static ArrayList<String> money_transfer_Fp = new ArrayList<>(Collections.singletonList("fp"));
|
||||||
|
public static ArrayList<String> money_transfer_Pf = new ArrayList<>(Collections.singletonList("pf"));
|
||||||
|
public static ArrayList<String> money_withdraw = new ArrayList<>(Arrays.asList("w", "withdraw"));
|
||||||
|
public static ArrayList<String> grace = new ArrayList<>(Collections.singletonList("grace"));
|
||||||
|
public static ArrayList<String> logout = new ArrayList<>(Collections.singletonList("logout"));
|
||||||
|
public static ArrayList<String> points_points = new ArrayList<>(Collections.singletonList("points"));
|
||||||
|
public static ArrayList<String> points_add = new ArrayList<>(Collections.singletonList("add"));
|
||||||
|
public static ArrayList<String> points_remove = new ArrayList<>(Collections.singletonList("remove"));
|
||||||
|
public static ArrayList<String> points_set = new ArrayList<>(Collections.singletonList("set"));
|
||||||
|
public static ArrayList<String> relation_ally = new ArrayList<>(Collections.singletonList("ally"));
|
||||||
|
public static ArrayList<String> relation_enemy = new ArrayList<>(Collections.singletonList("enemy"));
|
||||||
|
public static ArrayList<String> relation_neutral = new ArrayList<>(Collections.singletonList("neutral"));
|
||||||
|
public static ArrayList<String> relation_truce = new ArrayList<>(Collections.singletonList("truce"));
|
||||||
|
public static ArrayList<String> reserve = new ArrayList<>(Collections.singletonList("reserve"));
|
||||||
|
public static ArrayList<String> roles_demote = new ArrayList<>(Collections.singletonList("demote"));
|
||||||
|
public static ArrayList<String> roles_promote = new ArrayList<>(Collections.singletonList("promote"));
|
||||||
|
public static ArrayList<String> tnt_tnt = new ArrayList<>(Collections.singletonList("tnt"));
|
||||||
|
public static ArrayList<String> tnt_tntfill = new ArrayList<>(Collections.singletonList("tntfill"));
|
||||||
|
public static ArrayList<String> wild = new ArrayList<>(Collections.singletonList("wild"));
|
||||||
|
public static ArrayList<String> admin = new ArrayList<>(Arrays.asList("admin", "setadmin", "leader", "setleader"));
|
||||||
|
public static ArrayList<String> ahome = new ArrayList<>(Collections.singletonList("ahome"));
|
||||||
|
public static ArrayList<String> announce = new ArrayList<>(Arrays.asList("ann", "announce"));
|
||||||
|
public static ArrayList<String> help = new ArrayList<>(Arrays.asList("help", "h", "?"));
|
||||||
|
public static ArrayList<String> ban_ban = new ArrayList<>(Collections.singletonList("ban"));
|
||||||
|
public static ArrayList<String> ban_banlist = new ArrayList<>(Arrays.asList("banlist", "bans", "banl"));
|
||||||
|
public static ArrayList<String> banner = new ArrayList<>(Collections.singletonList("banner"));
|
||||||
|
public static ArrayList<String> boom = new ArrayList<>(Arrays.asList("noboom", "explosions", "toggleexplosions"));
|
||||||
|
public static ArrayList<String> bypass = new ArrayList<>(Collections.singletonList("bypass"));
|
||||||
|
public static ArrayList<String> chat = new ArrayList<>(Arrays.asList("chat", "c"));
|
||||||
|
public static ArrayList<String> chatspy = new ArrayList<>(Collections.singletonList("chatspy"));
|
||||||
|
public static ArrayList<String> checkpoint = new ArrayList<>(Arrays.asList("checkp", "checkpoint", "cpoint"));
|
||||||
|
public static ArrayList<String> coleader = new ArrayList<>(Arrays.asList("coleader", "setcoleader", "co", "setco"));
|
||||||
|
public static ArrayList<String> config = new ArrayList<>(Collections.singletonList("config"));
|
||||||
|
public static ArrayList<String> convert = new ArrayList<>(Collections.singletonList("convert"));
|
||||||
|
public static ArrayList<String> coords = new ArrayList<>(Arrays.asList("coords", "coord"));
|
||||||
|
public static ArrayList<String> create = new ArrayList<>(Collections.singletonList("create"));
|
||||||
|
public static ArrayList<String> debug = new ArrayList<>(Collections.singletonList("debug"));
|
||||||
|
public static ArrayList<String> deinvite = new ArrayList<>(Arrays.asList("deinvite", "deinv"));
|
||||||
|
public static ArrayList<String> deletefwarp = new ArrayList<>(Arrays.asList("delwarp", "dw", "deletewarp"));
|
||||||
|
public static ArrayList<String> description = new ArrayList<>(Arrays.asList("desc", "description"));
|
||||||
|
public static ArrayList<String> disband = new ArrayList<>(Collections.singletonList("disband"));
|
||||||
|
public static ArrayList<String> discord_discord = new ArrayList<>(Collections.singletonList("discord"));
|
||||||
|
public static ArrayList<String> drain = new ArrayList<>(Collections.singletonList("drain"));
|
||||||
|
public static ArrayList<String> global = new ArrayList<>(Arrays.asList("gchat", "global", "globalchat"));
|
||||||
|
public static ArrayList<String> fly = new ArrayList<>(Collections.singletonList("fly"));
|
||||||
|
public static ArrayList<String> focus = new ArrayList<>(Collections.singletonList("focus"));
|
||||||
|
public static ArrayList<String> warp = new ArrayList<>(Arrays.asList("warp", "warps"));
|
||||||
|
public static ArrayList<String> getvault = new ArrayList<>(Collections.singletonList("getvault"));
|
||||||
|
public static ArrayList<String> home = new ArrayList<>(Collections.singletonList("home"));
|
||||||
|
public static ArrayList<String> inspect = new ArrayList<>(Arrays.asList("inspect", "ins"));
|
||||||
|
public static ArrayList<String> invsee = new ArrayList<>(Arrays.asList("invsee", "inventorysee"));
|
||||||
|
public static ArrayList<String> invite = new ArrayList<>(Arrays.asList("invite", "inv"));
|
||||||
|
public static ArrayList<String> join = new ArrayList<>(Collections.singletonList("join"));
|
||||||
|
public static ArrayList<String> kick = new ArrayList<>(Collections.singletonList("kick"));
|
||||||
|
public static ArrayList<String> killholograms = new ArrayList<>(Collections.singletonList("killholos"));
|
||||||
|
public static ArrayList<String> leave = new ArrayList<>(Collections.singletonList("leave"));
|
||||||
|
public static ArrayList<String> list = new ArrayList<>(Arrays.asList("list", "ls"));
|
||||||
|
public static ArrayList<String> lock = new ArrayList<>(Collections.singletonList("lock"));
|
||||||
|
public static ArrayList<String> logins = new ArrayList<>(Arrays.asList("logins", "login", "logouts"));
|
||||||
|
public static ArrayList<String> lookup = new ArrayList<>(Collections.singletonList("lookup"));
|
||||||
|
public static ArrayList<String> lowPower = new ArrayList<>(Collections.singletonList("lowpower"));
|
||||||
|
public static ArrayList<String> map_map = new ArrayList<>(Collections.singletonList("map"));
|
||||||
|
public static ArrayList<String> map_height = new ArrayList<>(Arrays.asList("mapheight", "mh"));
|
||||||
|
public static ArrayList<String> mod = new ArrayList<>(Arrays.asList("mod", "setmod", "officer", "setofficer"));
|
||||||
|
public static ArrayList<String> modifyPower = new ArrayList<>(Arrays.asList("mp", "pm", "modpower", "modifypower"));
|
||||||
|
public static ArrayList<String> near = new ArrayList<>(Arrays.asList("near", "nearby"));
|
||||||
|
public static ArrayList<String> open = new ArrayList<>(Collections.singletonList("open"));
|
||||||
|
public static ArrayList<String> owner_owner = new ArrayList<>(Collections.singletonList("owner"));
|
||||||
|
public static ArrayList<String> owner_list = new ArrayList<>(Collections.singletonList("ownerlist"));
|
||||||
|
public static ArrayList<String> paypal_see = new ArrayList<>(Arrays.asList("paypal", "seepaypal"));
|
||||||
|
public static ArrayList<String> paypal_set = new ArrayList<>(Collections.singletonList("setpaypal"));
|
||||||
|
public static ArrayList<String> peaceful = new ArrayList<>(Collections.singletonList("peaceful"));
|
||||||
|
public static ArrayList<String> perm = new ArrayList<>(Arrays.asList("perm", "perms", "permission", "permissions"));
|
||||||
|
public static ArrayList<String> permanent_faction = new ArrayList<>(Collections.singletonList("permanent"));
|
||||||
|
public static ArrayList<String> permanent_power = new ArrayList<>(Collections.singletonList("permanentpower"));
|
||||||
|
public static ArrayList<String> titles = new ArrayList<>(Collections.singletonList("titles"));
|
||||||
|
public static ArrayList<String> power_power = new ArrayList<>(Arrays.asList("pow", "power"));
|
||||||
|
public static ArrayList<String> power_boost = new ArrayList<>(Collections.singletonList("powerboost"));
|
||||||
|
public static ArrayList<String> reload = new ArrayList<>(Collections.singletonList("reload"));
|
||||||
|
public static ArrayList<String> rules = new ArrayList<>(Arrays.asList("r", "rule", "rules"));
|
||||||
|
public static ArrayList<String> saveAll = new ArrayList<>(Arrays.asList("save", "saveall"));
|
||||||
|
public static ArrayList<String> scoreboard = new ArrayList<>(Arrays.asList("sb", "scoreboard"));
|
||||||
|
public static ArrayList<String> seeChunk = new ArrayList<>(Arrays.asList("sc", "seechunk"));
|
||||||
|
public static ArrayList<String> discord_see = new ArrayList<>(Collections.singletonList("seediscord"));
|
||||||
|
public static ArrayList<String> discord_set = new ArrayList<>(Collections.singletonList("setdiscord"));
|
||||||
|
public static ArrayList<String> setBanner = new ArrayList<>(Collections.singletonList("setbanner"));
|
||||||
|
public static ArrayList<String> setDefaultRole = new ArrayList<>(Arrays.asList("defaultrole", "def", "default", "defaultrank"));
|
||||||
|
public static ArrayList<String> setWarp = new ArrayList<>(Arrays.asList("sw", "setwarp"));
|
||||||
|
public static ArrayList<String> setHome = new ArrayList<>(Collections.singletonList("sethome"));
|
||||||
|
public static ArrayList<String> setMaxVaults = new ArrayList<>(Arrays.asList("smv", "setmaxvaults"));
|
||||||
|
public static ArrayList<String> show_show = new ArrayList<>(Arrays.asList("show", "who"));
|
||||||
|
public static ArrayList<String> show_claims = new ArrayList<>(Arrays.asList("showclaim", "showclaims"));
|
||||||
|
public static ArrayList<String> show_invites = new ArrayList<>(Collections.singletonList("showinvites"));
|
||||||
|
public static ArrayList<String> spawnerlock = new ArrayList<>(Arrays.asList("lockspawners", "spawnerlock"));
|
||||||
|
public static ArrayList<String> status = new ArrayList<>(Arrays.asList("s", "status"));
|
||||||
|
public static ArrayList<String> stealth = new ArrayList<>(Arrays.asList("stealth", "ninja"));
|
||||||
|
public static ArrayList<String> strikes_strikes = new ArrayList<>(Collections.singletonList("strikes"));
|
||||||
|
public static ArrayList<String> strikes_give = new ArrayList<>(Collections.singletonList("give"));
|
||||||
|
public static ArrayList<String> strikes_info = new ArrayList<>(Collections.singletonList("info"));
|
||||||
|
public static ArrayList<String> strikes_set = new ArrayList<>(Collections.singletonList("set"));
|
||||||
|
public static ArrayList<String> strikes_take = new ArrayList<>(Collections.singletonList("take"));
|
||||||
|
public static ArrayList<String> stuck = new ArrayList<>(Arrays.asList("stuck", "halp!"));
|
||||||
|
public static ArrayList<String> tag = new ArrayList<>(Arrays.asList("tag", "rename"));
|
||||||
|
public static ArrayList<String> title = new ArrayList<>(Collections.singletonList("title"));
|
||||||
|
public static ArrayList<String> toggleAllianceChat = new ArrayList<>(Arrays.asList("tac", "ac", "togglealliancechat"));
|
||||||
|
public static ArrayList<String> top = new ArrayList<>(Arrays.asList("t", "top"));
|
||||||
|
public static ArrayList<String> tpBanner = new ArrayList<>(Collections.singletonList("tpbanner"));
|
||||||
|
public static ArrayList<String> unban = new ArrayList<>(Collections.singletonList("unban"));
|
||||||
|
public static ArrayList<String> upgrades = new ArrayList<>(Arrays.asList("upgrades", "upgrade"));
|
||||||
|
public static ArrayList<String> vault = new ArrayList<>(Collections.singletonList("vault"));
|
||||||
|
public static ArrayList<String> viewChest = new ArrayList<>(Arrays.asList("viewchest", "viewpv"));
|
||||||
|
private static transient Aliases i = new Aliases();
|
||||||
|
|
||||||
|
public static void load() {
|
||||||
|
FactionsPlugin.getInstance().persist.loadOrSaveDefault(i, Aliases.class, "aliases");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ public class CmdAHome extends FCommand {
|
|||||||
|
|
||||||
public CmdAHome() {
|
public CmdAHome() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("ahome");
|
this.aliases.addAll(Aliases.ahome);
|
||||||
|
|
||||||
this.requiredArgs.add("player");
|
this.requiredArgs.add("player");
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ import com.massivecraft.factions.FPlayer;
|
|||||||
import com.massivecraft.factions.FPlayers;
|
import com.massivecraft.factions.FPlayers;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
public class CmdAdmin extends FCommand {
|
public class CmdAdmin extends FCommand {
|
||||||
|
|
||||||
@@ -18,10 +20,7 @@ public class CmdAdmin extends FCommand {
|
|||||||
|
|
||||||
public CmdAdmin() {
|
public CmdAdmin() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("admin");
|
this.aliases.addAll(Aliases.admin);
|
||||||
this.aliases.add("setadmin");
|
|
||||||
this.aliases.add("leader");
|
|
||||||
this.aliases.add("setleader");
|
|
||||||
|
|
||||||
this.requiredArgs.add("player");
|
this.requiredArgs.add("player");
|
||||||
|
|
||||||
@@ -71,7 +70,7 @@ public class CmdAdmin extends FCommand {
|
|||||||
|
|
||||||
// if target player is currently admin, demote and replace him
|
// if target player is currently admin, demote and replace him
|
||||||
if (fyou == admin) {
|
if (fyou == admin) {
|
||||||
targetFaction.promoteNewLeader();
|
promoteNewLeader(targetFaction);
|
||||||
context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true));
|
context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true));
|
||||||
fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true));
|
fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true));
|
||||||
return;
|
return;
|
||||||
@@ -79,11 +78,13 @@ public class CmdAdmin extends FCommand {
|
|||||||
|
|
||||||
// promote target player, and demote existing admin if one exists
|
// promote target player, and demote existing admin if one exists
|
||||||
if (admin != null) {
|
if (admin != null) {
|
||||||
admin.setRole(Role.COLEADER);
|
setRole(admin, Role.COLEADER);
|
||||||
}
|
}
|
||||||
fyou.setRole(Role.LEADER);
|
setRole(fyou, Role.LEADER);
|
||||||
context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true));
|
context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true));
|
||||||
|
|
||||||
|
FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), fyou.getName(), ChatColor.RED + "Admin");
|
||||||
|
|
||||||
// Inform all players
|
// Inform all players
|
||||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||||
fplayer.msg(TL.COMMAND_ADMIN_PROMOTED,
|
fplayer.msg(TL.COMMAND_ADMIN_PROMOTED,
|
||||||
@@ -93,6 +94,18 @@ public class CmdAdmin extends FCommand {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setRole(FPlayer fp, Role r) {
|
||||||
|
FactionsPlugin.getInstance().getServer().getScheduler().runTask(FactionsPlugin.instance, () -> {
|
||||||
|
fp.setRole(r);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void promoteNewLeader(Faction f) {
|
||||||
|
FactionsPlugin.getInstance().getServer().getScheduler().runTask(FactionsPlugin.instance, () -> {
|
||||||
|
f.promoteNewLeader();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public TL getUsageTranslation() {
|
public TL getUsageTranslation() {
|
||||||
return TL.COMMAND_ADMIN_DESCRIPTION;
|
return TL.COMMAND_ADMIN_DESCRIPTION;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ public class CmdAnnounce extends FCommand {
|
|||||||
|
|
||||||
public CmdAnnounce() {
|
public CmdAnnounce() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("ann");
|
this.aliases.addAll(Aliases.announce);
|
||||||
this.aliases.add("announce");
|
|
||||||
|
|
||||||
this.requiredArgs.add("message");
|
this.requiredArgs.add("message");
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ public class CmdAutoHelp extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdAutoHelp() {
|
public CmdAutoHelp() {
|
||||||
this.aliases.add("?");
|
this.aliases.addAll(Aliases.help);
|
||||||
this.aliases.add("h");
|
|
||||||
this.aliases.add("help");
|
|
||||||
|
|
||||||
this.setHelpShort("");
|
this.setHelpShort("");
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||||
import com.massivecraft.factions.struct.BanInfo;
|
import com.massivecraft.factions.struct.BanInfo;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
|
import com.massivecraft.factions.util.CC;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@@ -19,7 +21,7 @@ public class CmdBan extends FCommand {
|
|||||||
|
|
||||||
public CmdBan() {
|
public CmdBan() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("ban");
|
this.aliases.addAll(Aliases.ban_ban);
|
||||||
|
|
||||||
this.requiredArgs.add("target");
|
this.requiredArgs.add("target");
|
||||||
|
|
||||||
@@ -79,6 +81,7 @@ public class CmdBan extends FCommand {
|
|||||||
|
|
||||||
// Lets inform the people!
|
// Lets inform the people!
|
||||||
target.msg(TL.COMMAND_BAN_TARGET, context.faction.getTag(target.getFaction()));
|
target.msg(TL.COMMAND_BAN_TARGET, context.faction.getTag(target.getFaction()));
|
||||||
|
FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.BANS, context.fPlayer.getName(), CC.Green + "banned", target.getName());
|
||||||
context.faction.msg(TL.COMMAND_BAN_BANNED, context.fPlayer.getName(), target.getName());
|
context.faction.msg(TL.COMMAND_BAN_BANNED, context.fPlayer.getName(), target.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,7 @@ public class CmdBanlist extends FCommand {
|
|||||||
|
|
||||||
public CmdBanlist() {
|
public CmdBanlist() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("banlist");
|
this.aliases.addAll(Aliases.ban_banlist);
|
||||||
this.aliases.add("bans");
|
|
||||||
this.aliases.add("banl");
|
|
||||||
|
|
||||||
this.optionalArgs.put("faction", "faction");
|
this.optionalArgs.put("faction", "faction");
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ public class CmdBanner extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdBanner() {
|
public CmdBanner() {
|
||||||
this.aliases.add("banner");
|
this.aliases.addAll(Aliases.banner);
|
||||||
this.aliases.add("warbanner");
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER).playerOnly().memberOnly().build();
|
this.requirements = new CommandRequirements.Builder(Permission.BANNER).playerOnly().memberOnly().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,6 +46,7 @@ public class CmdBanner extends FCommand {
|
|||||||
warBanner.setAmount(1);
|
warBanner.setAmount(1);
|
||||||
context.player.getInventory().addItem(warBanner);
|
context.player.getInventory().addItem(warBanner);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public boolean hasMoney(FPlayer fme, int amt) {
|
public boolean hasMoney(FPlayer fme, int amt) {
|
||||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||||
@@ -56,6 +56,7 @@ public class CmdBanner extends FCommand {
|
|||||||
fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void takeMoney(FPlayer fme, int amt) {
|
public void takeMoney(FPlayer fme, int amt) {
|
||||||
if (this.hasMoney(fme, amt)) {
|
if (this.hasMoney(fme, amt)) {
|
||||||
|
|||||||
@@ -12,9 +12,7 @@ public class CmdBoom extends FCommand {
|
|||||||
|
|
||||||
public CmdBoom() {
|
public CmdBoom() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("noboom");
|
this.aliases.addAll(Aliases.boom);
|
||||||
this.aliases.add("explosions");
|
|
||||||
this.aliases.add("toggleexplosions");
|
|
||||||
|
|
||||||
//this.requiredArgs.add("");
|
//this.requiredArgs.add("");
|
||||||
this.optionalArgs.put("on/off", "flip");
|
this.optionalArgs.put("on/off", "flip");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdBypass extends FCommand {
|
|||||||
|
|
||||||
public CmdBypass() {
|
public CmdBypass() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("bypass");
|
this.aliases.addAll(Aliases.bypass);
|
||||||
|
|
||||||
//this.requiredArgs.add("");
|
//this.requiredArgs.add("");
|
||||||
this.optionalArgs.put("on/off", "flip");
|
this.optionalArgs.put("on/off", "flip");
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ public class CmdChat extends FCommand {
|
|||||||
|
|
||||||
public CmdChat() {
|
public CmdChat() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("c");
|
this.aliases.addAll(Aliases.chat);
|
||||||
this.aliases.add("chat");
|
|
||||||
|
|
||||||
//this.requiredArgs.add("");
|
//this.requiredArgs.add("");
|
||||||
this.optionalArgs.put("mode", "next");
|
this.optionalArgs.put("mode", "next");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdChatSpy extends FCommand {
|
|||||||
|
|
||||||
public CmdChatSpy() {
|
public CmdChatSpy() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("chatspy");
|
this.aliases.addAll(Aliases.chatspy);
|
||||||
|
|
||||||
this.optionalArgs.put("on/off", "flip");
|
this.optionalArgs.put("on/off", "flip");
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ public class CmdCheckpoint extends FCommand {
|
|||||||
|
|
||||||
public CmdCheckpoint() {
|
public CmdCheckpoint() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("checkp");
|
this.aliases.addAll(Aliases.checkpoint);
|
||||||
this.aliases.add("checkpoint");
|
|
||||||
this.aliases.add("cpoint");
|
|
||||||
|
|
||||||
this.optionalArgs.put("set", "");
|
this.optionalArgs.put("set", "");
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.massivecraft.factions.cmd;
|
|||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
@@ -17,10 +19,7 @@ public class CmdColeader extends FCommand {
|
|||||||
|
|
||||||
public CmdColeader() {
|
public CmdColeader() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("co");
|
this.aliases.addAll(Aliases.coleader);
|
||||||
this.aliases.add("setcoleader");
|
|
||||||
this.aliases.add("coleader");
|
|
||||||
this.aliases.add("setco");
|
|
||||||
|
|
||||||
this.optionalArgs.put("player name", "name");
|
this.optionalArgs.put("player name", "name");
|
||||||
|
|
||||||
@@ -81,6 +80,7 @@ public class CmdColeader extends FCommand {
|
|||||||
you.setRole(Role.COLEADER);
|
you.setRole(Role.COLEADER);
|
||||||
targetFaction.msg(TL.COMMAND_COLEADER_PROMOTED, you.describeTo(targetFaction, true));
|
targetFaction.msg(TL.COMMAND_COLEADER_PROMOTED, you.describeTo(targetFaction, true));
|
||||||
context.msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(context.fPlayer, true));
|
context.msg(TL.COMMAND_COLEADER_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||||
|
FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), you.getName(), ChatColor.RED + "Co-Leader");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class CmdConfig extends FCommand {
|
|||||||
|
|
||||||
public CmdConfig() {
|
public CmdConfig() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("config");
|
this.aliases.addAll(Aliases.config);
|
||||||
|
|
||||||
this.requiredArgs.add("setting");
|
this.requiredArgs.add("setting");
|
||||||
this.requiredArgs.add("value");
|
this.requiredArgs.add("value");
|
||||||
@@ -225,7 +225,7 @@ public class CmdConfig extends FCommand {
|
|||||||
if (!success.isEmpty()) {
|
if (!success.isEmpty()) {
|
||||||
if (context.sender instanceof Player) {
|
if (context.sender instanceof Player) {
|
||||||
context.sendMessage(success);
|
context.sendMessage(success);
|
||||||
FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format((Player) context.sender));
|
FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format(context.sender));
|
||||||
} else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log
|
} else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log
|
||||||
{
|
{
|
||||||
FactionsPlugin.getInstance().log(success);
|
FactionsPlugin.getInstance().log(success);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class CmdConvert extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdConvert() {
|
public CmdConvert() {
|
||||||
this.aliases.add("convert");
|
this.aliases.addAll(Aliases.convert);
|
||||||
this.requiredArgs.add("[MYSQL|JSON]");
|
this.requiredArgs.add("[MYSQL|JSON]");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.CONVERT)
|
this.requirements = new CommandRequirements.Builder(Permission.CONVERT)
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ public class CmdCoords extends FCommand {
|
|||||||
|
|
||||||
public CmdCoords() {
|
public CmdCoords() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("coords");
|
this.aliases.addAll(Aliases.coords);
|
||||||
this.aliases.add("coord");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.COORD)
|
this.requirements = new CommandRequirements.Builder(Permission.COORD)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class CmdCreate extends FCommand {
|
|||||||
|
|
||||||
public CmdCreate() {
|
public CmdCreate() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("create");
|
this.aliases.addAll(Aliases.create);
|
||||||
|
|
||||||
this.requiredArgs.add("faction tag");
|
this.requiredArgs.add("faction tag");
|
||||||
|
|
||||||
@@ -115,7 +115,9 @@ public class CmdCreate extends FCommand {
|
|||||||
Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue();
|
Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (HierarchyException e) {System.out.print(e.getMessage());}
|
} catch (HierarchyException e) {
|
||||||
|
System.out.print(e.getMessage());
|
||||||
|
}
|
||||||
//End Discord
|
//End Discord
|
||||||
context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUsageTemplate(context));
|
context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUsageTemplate(context));
|
||||||
if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance);
|
if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ public class CmdDebug extends FCommand {
|
|||||||
this.aliases.add("debug");
|
this.aliases.add("debug");
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.DEBUG).build();
|
this.requirements = new CommandRequirements.Builder(Permission.DEBUG).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
FactionsPlugin.getInstance().divider();
|
FactionsPlugin.getInstance().divider();
|
||||||
@@ -51,7 +52,9 @@ public class CmdDebug extends FCommand {
|
|||||||
System.out.print("Emotes enabled: " + Discord.useEmotes);
|
System.out.print("Emotes enabled: " + Discord.useEmotes);
|
||||||
System.out.print("Leader role null: " + (Discord.leader == null ? "True" : "False"));
|
System.out.print("Leader role null: " + (Discord.leader == null ? "True" : "False"));
|
||||||
System.out.print("Attempt Log:");
|
System.out.print("Attempt Log:");
|
||||||
for (DiscordSetupAttempt d : Discord.setupLog) {System.out.print(d.getDifferentialFormatted() + " " + d.getSuccess() + " " + d.getReason());}
|
for (DiscordSetupAttempt d : Discord.setupLog) {
|
||||||
|
System.out.print(d.getDifferentialFormatted() + " " + d.getSuccess() + " " + d.getReason());
|
||||||
|
}
|
||||||
System.out.print("End Attempt Log");
|
System.out.print("End Attempt Log");
|
||||||
System.out.print("----End Discord----");
|
System.out.print("----End Discord----");
|
||||||
System.out.print("--------End Debug Info--------");
|
System.out.print("--------End Debug Info--------");
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ public class CmdDeinvite extends FCommand {
|
|||||||
|
|
||||||
public CmdDeinvite() {
|
public CmdDeinvite() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("deinvite");
|
this.aliases.addAll(Aliases.deinvite);
|
||||||
this.aliases.add("deinv");
|
|
||||||
|
|
||||||
this.optionalArgs.put("player name", "name");
|
this.optionalArgs.put("player name", "name");
|
||||||
|
|
||||||
@@ -32,47 +31,47 @@ public class CmdDeinvite extends FCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
if (context.args.size() == 0) {
|
if (context.args.size() == 0) {
|
||||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||||
for (String id : context.faction.getInvites()) {
|
for (String id : context.faction.getInvites()) {
|
||||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||||
String name = fp != null ? fp.getName() : id;
|
String name = fp != null ? fp.getName() : id;
|
||||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||||
}
|
}
|
||||||
context.sendFancyMessage(msg);
|
context.sendFancyMessage(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||||
|
if (!context.fPlayer.isAdminBypassing()) {
|
||||||
|
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE);
|
||||||
|
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
||||||
|
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
if (you == null) {
|
||||||
if (!context.fPlayer.isAdminBypassing()) {
|
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
||||||
Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE);
|
for (String id : context.faction.getInvites()) {
|
||||||
if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) {
|
if (context.faction.getInvites().isEmpty()) return;
|
||||||
context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites");
|
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||||
return;
|
String name = fp != null ? fp.getName() : id;
|
||||||
}
|
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||||
}
|
}
|
||||||
|
context.sendFancyMessage(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (you == null) {
|
if (you.getFaction() == context.faction) {
|
||||||
FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD);
|
context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag());
|
||||||
for (String id : context.faction.getInvites()) {
|
context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUsageTemplate(context));
|
||||||
if (context.faction.getInvites().isEmpty()) return;
|
return;
|
||||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
}
|
||||||
String name = fp != null ? fp.getName() : id;
|
|
||||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
|
||||||
}
|
|
||||||
context.sendFancyMessage(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (you.getFaction() == context.faction) {
|
context.faction.deinvite(you);
|
||||||
context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag());
|
you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you));
|
||||||
context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUsageTemplate(context));
|
context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction));
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
context.faction.deinvite(you);
|
|
||||||
you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you));
|
|
||||||
context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ public class CmdDelFWarp extends FCommand {
|
|||||||
|
|
||||||
public CmdDelFWarp() {
|
public CmdDelFWarp() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("delwarp");
|
this.aliases.addAll(Aliases.deletefwarp);
|
||||||
this.aliases.add("dw");
|
|
||||||
this.aliases.add("deletewarp");
|
|
||||||
this.requiredArgs.add("warp name");
|
this.requiredArgs.add("warp name");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
this.requirements = new CommandRequirements.Builder(Permission.SETWARP)
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import com.massivecraft.factions.Conf;
|
|||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.FPlayers;
|
import com.massivecraft.factions.FPlayers;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import com.massivecraft.factions.zcore.util.TextUtil;
|
import com.massivecraft.factions.zcore.util.TextUtil;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
public class CmdDescription extends FCommand {
|
public class CmdDescription extends FCommand {
|
||||||
|
|
||||||
@@ -16,8 +18,7 @@ public class CmdDescription extends FCommand {
|
|||||||
|
|
||||||
public CmdDescription() {
|
public CmdDescription() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("desc");
|
this.aliases.addAll(Aliases.description);
|
||||||
this.aliases.add("description");
|
|
||||||
|
|
||||||
this.requiredArgs.add("desc");
|
this.requiredArgs.add("desc");
|
||||||
|
|
||||||
@@ -38,8 +39,9 @@ public class CmdDescription extends FCommand {
|
|||||||
|
|
||||||
// since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up
|
// since "&" color tags seem to work even through plain old FPlayer.sendMessage() for some reason, we need to break those up
|
||||||
// And replace all the % because it messes with string formatting and this is easy way around that.
|
// And replace all the % because it messes with string formatting and this is easy way around that.
|
||||||
context.faction.setDescription(TextUtil.implode(context.args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2"));
|
String desc = TextUtil.implode(context.args, " ").replaceAll("%", "").replaceAll("(&([a-f0-9klmnor]))", "& $2");
|
||||||
|
context.faction.setDescription(desc);
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.instance, () -> FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.FDESC_EDIT, context.fPlayer.getName(), desc));
|
||||||
if (!Conf.broadcastDescriptionChanges) {
|
if (!Conf.broadcastDescriptionChanges) {
|
||||||
context.msg(TL.COMMAND_DESCRIPTION_CHANGED, context.faction.describeTo(context.fPlayer));
|
context.msg(TL.COMMAND_DESCRIPTION_CHANGED, context.faction.describeTo(context.fPlayer));
|
||||||
context.sendMessage(context.faction.getDescription());
|
context.sendMessage(context.faction.getDescription());
|
||||||
|
|||||||
@@ -4,14 +4,16 @@ import com.massivecraft.factions.*;
|
|||||||
import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason;
|
import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.util.UtilFly;
|
import com.massivecraft.factions.zcore.fdisband.FDisbandFrame;
|
||||||
import com.massivecraft.factions.zcore.fperms.Access;
|
import com.massivecraft.factions.zcore.fperms.Access;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
|
||||||
public class CmdDisband extends FCommand {
|
public class CmdDisband extends FCommand {
|
||||||
@@ -20,23 +22,22 @@ public class CmdDisband extends FCommand {
|
|||||||
* @author FactionsUUID Team
|
* @author FactionsUUID Team
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//TODO: Add Disband Confirmation GUI
|
||||||
|
|
||||||
private static HashMap<String, String> disbandMap = new HashMap<>();
|
private static HashMap<String, String> disbandMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
public CmdDisband() {
|
public CmdDisband() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("disband");
|
this.aliases.addAll(Aliases.disband);
|
||||||
|
|
||||||
this.optionalArgs.put("faction tag", "yours");
|
this.optionalArgs.put("faction tag", "yours");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.DISBAND)
|
this.requirements = new CommandRequirements.Builder(Permission.DISBAND)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
|
long time;
|
||||||
// The faction, default to your own.. but null if console sender.
|
// The faction, default to your own.. but null if console sender.
|
||||||
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : context.faction);
|
Faction faction = context.argAsFaction(0, context.fPlayer == null ? null : context.faction);
|
||||||
if (faction == null) return;
|
if (faction == null) return;
|
||||||
@@ -44,9 +45,7 @@ public class CmdDisband extends FCommand {
|
|||||||
boolean isMyFaction = context.fPlayer != null && faction == context.faction;
|
boolean isMyFaction = context.fPlayer != null && faction == context.faction;
|
||||||
|
|
||||||
if (!isMyFaction) {
|
if (!isMyFaction) {
|
||||||
if (!Permission.DISBAND_ANY.has(context.sender, true)) {
|
if (!Permission.DISBAND_ANY.has(context.sender, true)) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -73,6 +72,22 @@ public class CmdDisband extends FCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
boolean access = false;
|
||||||
|
if (context.fPlayer.getPlayer().hasMetadata("disband_confirm") && (time = context.fPlayer.getPlayer().getMetadata("disband_confirm").get(0).asLong()) != 0L && System.currentTimeMillis() - time <= TimeUnit.SECONDS.toMillis(3L)) {
|
||||||
|
access = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!access) {
|
||||||
|
if(Conf.useDisbandGUI && !context.fPlayer.isAdminBypassing() || !context.player.isOp()) {
|
||||||
|
if (!disbandMap.containsKey(context.player.getUniqueId().toString())) {
|
||||||
|
new FDisbandFrame(context.faction).buildGUI(context.fPlayer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// check for tnt before disbanding.
|
// check for tnt before disbanding.
|
||||||
if (!disbandMap.containsKey(context.player.getUniqueId().toString()) && faction.getTnt() > 0) {
|
if (!disbandMap.containsKey(context.player.getUniqueId().toString()) && faction.getTnt() > 0) {
|
||||||
context.msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + ""));
|
context.msg(TL.COMMAND_DISBAND_CONFIRM.toString().replace("{tnt}", faction.getTnt() + ""));
|
||||||
@@ -84,19 +99,20 @@ public class CmdDisband extends FCommand {
|
|||||||
String amountString = context.sender instanceof ConsoleCommandSender ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(follower);
|
String amountString = context.sender instanceof ConsoleCommandSender ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(follower);
|
||||||
if (follower.getFaction() == faction) {
|
if (follower.getFaction() == faction) {
|
||||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_YOURS, amountString);
|
follower.msg(TL.COMMAND_DISBAND_BROADCAST_YOURS, amountString);
|
||||||
if (!follower.canFlyAtLocation()) {
|
if (!follower.canFlyAtLocation() && FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) {
|
||||||
follower.setFFlying(false, false);
|
follower.setFFlying(false, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower));
|
follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.fPlayer.setFFlying(false, false);
|
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight"))
|
||||||
|
context.fPlayer.setFFlying(false, false);
|
||||||
} else {
|
} else {
|
||||||
context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER));
|
context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER));
|
||||||
}
|
}
|
||||||
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
faction.disband(context.player, PlayerDisbandReason.COMMAND);
|
||||||
if (!context.fPlayer.canFlyAtLocation()) {
|
if (!context.fPlayer.canFlyAtLocation() && FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) {
|
||||||
context.fPlayer.setFFlying(false, false);
|
context.fPlayer.setFFlying(false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,18 @@ import com.massivecraft.factions.zcore.util.TL;
|
|||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author droppinganvil
|
||||||
|
*/
|
||||||
public class CmdDiscord extends FCommand {
|
public class CmdDiscord extends FCommand {
|
||||||
public CmdDiscord() {
|
public CmdDiscord() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("discord");
|
this.aliases.addAll(Aliases.discord_discord);
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.DISCORD)
|
this.requirements = new CommandRequirements.Builder(Permission.DISCORD)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
if (context.fPlayer.discordSetup()) {
|
if (context.fPlayer.discordSetup()) {
|
||||||
|
|||||||
@@ -7,16 +7,15 @@ import com.massivecraft.factions.FactionsPlugin;
|
|||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Saser
|
* @author Saser
|
||||||
*/
|
*/
|
||||||
public class CmdDrain extends FCommand{
|
public class CmdDrain extends FCommand {
|
||||||
public CmdDrain(){
|
public CmdDrain() {
|
||||||
this.aliases.add("drain");
|
this.aliases.addAll(Aliases.drain);
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.DRAIN)
|
this.requirements = new CommandRequirements.Builder(Permission.DRAIN)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
.memberOnly()
|
.memberOnly()
|
||||||
@@ -34,12 +33,12 @@ public class CmdDrain extends FCommand{
|
|||||||
|
|
||||||
double totalBalance = 0;
|
double totalBalance = 0;
|
||||||
|
|
||||||
for(FPlayer fPlayer : context.faction.getFPlayers()) {
|
for (FPlayer fPlayer : context.faction.getFPlayers()) {
|
||||||
if(context.faction.getFPlayers().size() == 1){
|
if (context.faction.getFPlayers().size() == 1) {
|
||||||
context.fPlayer.msg(TL.COMMAND_DRAIN_NO_PLAYERS);
|
context.fPlayer.msg(TL.COMMAND_DRAIN_NO_PLAYERS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (FPlayers.getInstance().getByPlayer(context.player).equals(fPlayer)){
|
if (FPlayers.getInstance().getByPlayer(context.player).equals(fPlayer)) {
|
||||||
continue; // skip the command executor
|
continue; // skip the command executor
|
||||||
}
|
}
|
||||||
double balance = FactionsPlugin.getInstance().getEcon().getBalance(fPlayer.getPlayer());
|
double balance = FactionsPlugin.getInstance().getEcon().getBalance(fPlayer.getPlayer());
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ public class CmdFGlobal extends FCommand {
|
|||||||
|
|
||||||
public CmdFGlobal() {
|
public CmdFGlobal() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("gchat");
|
this.aliases.addAll(Aliases.global);
|
||||||
this.aliases.add("global");
|
|
||||||
this.aliases.add("globalchat");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.GLOBALCHAT)
|
this.requirements = new CommandRequirements.Builder(Permission.GLOBALCHAT)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ public class CmdFWarp extends FCommand {
|
|||||||
|
|
||||||
public CmdFWarp() {
|
public CmdFWarp() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("warp");
|
this.aliases.addAll(Aliases.warp);
|
||||||
this.aliases.add("warps");
|
|
||||||
this.optionalArgs.put("warpname", "warpname");
|
this.optionalArgs.put("warpname", "warpname");
|
||||||
this.optionalArgs.put("password", "password");
|
this.optionalArgs.put("password", "password");
|
||||||
|
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ public class CmdFly extends FCommand {
|
|||||||
|
|
||||||
public CmdFly() {
|
public CmdFly() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("fly");
|
this.aliases.addAll(Aliases.fly);
|
||||||
this.optionalArgs.put("on/off", "flip");
|
this.optionalArgs.put("on/off", "flip");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.FLY)
|
this.requirements = new CommandRequirements.Builder(Permission.FLY_FLY)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
.memberOnly()
|
.memberOnly()
|
||||||
.build();
|
.build();
|
||||||
@@ -78,19 +78,15 @@ public class CmdFly extends FCommand {
|
|||||||
}
|
}
|
||||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player);
|
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player);
|
||||||
Faction myFaction = fPlayer.getFaction();
|
Faction myFaction = fPlayer.getFaction();
|
||||||
if (myFaction.isWilderness()) {
|
if (!player.hasPermission("factions.fly.bypassnearbyenemycheck") && !fPlayer.isAdminBypassing()) {
|
||||||
fPlayer.setFlying(false);
|
if (fPlayer.hasEnemiesNearby()) disableFlightSync(fPlayer);
|
||||||
flyMap.remove(name);
|
checkEnemiesSync(fPlayer);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (player.hasPermission("factions.fly.bypassnearbyenemycheck") || fPlayer.checkIfNearbyEnemies()) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
FLocation myFloc = new FLocation(player.getLocation());
|
FLocation myFloc = new FLocation(player.getLocation());
|
||||||
if (Board.getInstance().getFactionAt(myFloc) != myFaction) {
|
if (Board.getInstance().getFactionAt(myFloc) != myFaction) {
|
||||||
if (!checkBypassPerms(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) {
|
if (!checkFly(fPlayer, player, Board.getInstance().getFactionAt(myFloc))) {
|
||||||
Bukkit.getScheduler().runTask(FactionsPlugin.instance, () -> fPlayer.setFFlying(false, false));
|
disableFlightSync(fPlayer);
|
||||||
flyMap.remove(name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,36 +96,17 @@ public class CmdFly extends FCommand {
|
|||||||
}, 20L, 20L);
|
}, 20L, 20L);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkBypassPerms(FPlayer fme, Player me, Faction toFac) {
|
public static boolean checkFly(FPlayer fme, Player me, Faction toFac) {
|
||||||
if (Conf.denyFlightIfInNoClaimingWorld && !Conf.worldsNoClaiming.isEmpty() && Conf.worldsNoClaiming.stream().anyMatch(me.getWorld().getName()::equalsIgnoreCase))
|
if (Conf.denyFlightIfInNoClaimingWorld && !Conf.worldsNoClaiming.isEmpty() && Conf.worldsNoClaiming.stream().anyMatch(me.getWorld().getName()::equalsIgnoreCase))
|
||||||
return false;
|
return false;
|
||||||
|
if (toFac.getAccess(fme, PermissableAction.FLY) == Access.ALLOW) return true;
|
||||||
if (toFac != fme.getFaction()) {
|
if (fme.getFaction().isWilderness()) return false;
|
||||||
if (!me.hasPermission(Permission.FLY_WILD.node) && toFac.isWilderness() || !me.hasPermission(Permission.FLY_SAFEZONE.node) && toFac.isSafeZone() || !me.hasPermission(Permission.FLY_WARZONE.node) && toFac.isWarZone()) {
|
if (toFac.isSystemFaction())
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
return me.hasPermission(toFac.isWilderness() ? Permission.FLY_WILDERNESS.node : toFac.isSafeZone() ? Permission.FLY_SAFEZONE.node : Permission.FLY_WARZONE.node);
|
||||||
return false;
|
Relation relationTo = toFac.getRelationTo(fme.getFaction());
|
||||||
}
|
if (!relationTo.isEnemy() && !relationTo.isMember())
|
||||||
Access access = toFac.getAccess(fme, PermissableAction.FLY);
|
return me.hasPermission(Permission.valueOf("FLY_" + relationTo.name()).node);
|
||||||
if ((!(me.hasPermission(Permission.FLY_ENEMY.node) || access == Access.ALLOW)) && toFac.getRelationTo(fme.getFaction()) == Relation.ENEMY) {
|
return false;
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!(me.hasPermission(Permission.FLY_ALLY.node) || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.ALLY) {
|
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!(me.hasPermission(Permission.FLY_TRUCE.node) || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.TRUCE) {
|
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(me.hasPermission(Permission.FLY_NEUTRAL.node) || access == Access.ALLOW) && toFac.getRelationTo(fme.getFaction()) == Relation.NEUTRAL && !toFac.isSystemFaction()) {
|
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, toFac.getTag(fme));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return me.hasPermission(Permission.FLY.node) && (access != Access.DENY || toFac.isSystemFaction());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -145,34 +122,43 @@ public class CmdFly extends FCommand {
|
|||||||
flyMap.remove(fme.getPlayer().getName());
|
flyMap.remove(fme.getPlayer().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void disableFlightSync(FPlayer fme) {
|
||||||
|
Bukkit.getScheduler().runTask(FactionsPlugin.instance, () -> fme.setFFlying(false, false));
|
||||||
|
flyMap.remove(fme.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkEnemiesSync(FPlayer fp) {
|
||||||
|
Bukkit.getScheduler().runTask(FactionsPlugin.instance, fp::checkIfNearbyEnemies);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isInFlightChecker(Player player) {
|
public boolean isInFlightChecker(Player player) {
|
||||||
return flyMap.containsKey(player.getName());
|
return flyMap.containsKey(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
// Disabled by default.
|
if (!context.fPlayer.isAdminBypassing()) {
|
||||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight", false)) {
|
List<Entity> entities = context.player.getNearbyEntities(16.0D, 256.0D, 16.0D);
|
||||||
context.fPlayer.msg(TL.COMMAND_FLY_DISABLED);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FLocation myfloc = new FLocation(context.player.getLocation());
|
for (int i = 0; i <= entities.size() - 1; ++i) {
|
||||||
Faction toFac = Board.getInstance().getFactionAt(myfloc);
|
if (entities.get(i) instanceof Player) {
|
||||||
if (!checkBypassPerms(context.fPlayer, context.player, toFac)) return;
|
Player eplayer = (Player) entities.get(i);
|
||||||
List<Entity> entities = context.player.getNearbyEntities(16.0D, 256.0D, 16.0D);
|
FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer);
|
||||||
|
if (efplayer.getRelationTo(context.fPlayer) == Relation.ENEMY && !efplayer.isStealthEnabled()) {
|
||||||
for (int i = 0; i <= entities.size() - 1; ++i) {
|
context.msg(TL.COMMAND_FLY_CHECK_ENEMY);
|
||||||
if (entities.get(i) instanceof Player) {
|
return;
|
||||||
Player eplayer = (Player) entities.get(i);
|
}
|
||||||
FPlayer efplayer = FPlayers.getInstance().getByPlayer(eplayer);
|
context.fPlayer.setEnemiesNearby(false);
|
||||||
if (efplayer.getRelationTo(context.fPlayer) == Relation.ENEMY && !efplayer.isStealthEnabled()) {
|
|
||||||
context.msg(TL.COMMAND_FLY_CHECK_ENEMY);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
FLocation myfloc = new FLocation(context.player.getLocation());
|
||||||
|
Faction toFac = Board.getInstance().getFactionAt(myfloc);
|
||||||
|
if (!checkFly(context.fPlayer, context.player, toFac)) {
|
||||||
|
context.fPlayer.sendMessage(TL.COMMAND_FLY_NO_ACCESS.format(toFac.getTag()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (context.args.size() == 0) {
|
if (context.args.size() == 0) {
|
||||||
toggleFlight(context.fPlayer.isFlying(), context.fPlayer, context);
|
toggleFlight(context.fPlayer.isFlying(), context.fPlayer, context);
|
||||||
@@ -188,22 +174,17 @@ public class CmdFly extends FCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> {
|
||||||
|
fme.setFlying(true);
|
||||||
|
flyMap.put(fme.getPlayer().getName(), true);
|
||||||
|
if (particleTask == null) {
|
||||||
|
startParticles();
|
||||||
|
}
|
||||||
|
|
||||||
if (fme.canFlyAtLocation()) {
|
if (flyTask == null) {
|
||||||
context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> {
|
startFlyCheck();
|
||||||
fme.setFlying(true);
|
}
|
||||||
flyMap.put(fme.getPlayer().getName(), true);
|
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0));
|
||||||
if (particleTask == null) {
|
|
||||||
startParticles();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flyTask == null) {
|
|
||||||
startFlyCheck();
|
|
||||||
}
|
|
||||||
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0));
|
|
||||||
} else {
|
|
||||||
fme.msg(TL.COMMAND_FLY_NO_ACCESS, Board.getInstance().getFactionAt(fme.getLastStoodAt()).getTag());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class CmdFocus extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdFocus() {
|
public CmdFocus() {
|
||||||
aliases.add("focus");
|
aliases.addAll(Aliases.focus);
|
||||||
|
|
||||||
requiredArgs.add("player");
|
requiredArgs.add("player");
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class CmdGetVault extends FCommand {
|
|||||||
|
|
||||||
public CmdGetVault() {
|
public CmdGetVault() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("getvault");
|
this.aliases.addAll(Aliases.getvault);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.GETVAULT)
|
this.requirements = new CommandRequirements.Builder(Permission.GETVAULT)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
@@ -47,7 +47,9 @@ public class CmdGetVault extends FCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!context.fPlayer.takeMoney(amount)) {return;}
|
if (!context.fPlayer.takeMoney(amount)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//success :)
|
//success :)
|
||||||
context.player.getInventory().addItem(vault);
|
context.player.getInventory().addItem(vault);
|
||||||
|
|||||||
@@ -19,11 +19,10 @@ public class CmdHelp extends FCommand {
|
|||||||
|
|
||||||
public ArrayList<ArrayList<String>> helpPages;
|
public ArrayList<ArrayList<String>> helpPages;
|
||||||
|
|
||||||
|
//TODO: Add Help GUI
|
||||||
public CmdHelp() {
|
public CmdHelp() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("help");
|
this.aliases.addAll(Aliases.help);
|
||||||
this.aliases.add("h");
|
|
||||||
this.aliases.add("?");
|
|
||||||
|
|
||||||
//this.requiredArgs.add("");
|
//this.requiredArgs.add("");
|
||||||
this.optionalArgs.put("page", "1");
|
this.optionalArgs.put("page", "1");
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class CmdHome extends FCommand {
|
|||||||
|
|
||||||
public CmdHome() {
|
public CmdHome() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("home");
|
this.aliases.addAll(Aliases.home);
|
||||||
this.optionalArgs.put("faction", "yours");
|
this.optionalArgs.put("faction", "yours");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.HOME)
|
this.requirements = new CommandRequirements.Builder(Permission.HOME)
|
||||||
|
|||||||
@@ -11,9 +11,7 @@ public class CmdInspect extends FCommand {
|
|||||||
|
|
||||||
public CmdInspect() {
|
public CmdInspect() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("inspect");
|
this.aliases.addAll(Aliases.inspect);
|
||||||
this.aliases.add("ins");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.INSPECT)
|
this.requirements = new CommandRequirements.Builder(Permission.INSPECT)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
.memberOnly()
|
.memberOnly()
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ public class CmdInventorySee extends FCommand {
|
|||||||
public CmdInventorySee() {
|
public CmdInventorySee() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.aliases.add("invsee");
|
this.aliases.addAll(Aliases.invsee);
|
||||||
this.aliases.add("inventorysee");
|
|
||||||
|
|
||||||
this.requiredArgs.add("member name");
|
this.requiredArgs.add("member name");
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ package com.massivecraft.factions.cmd;
|
|||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
|
import com.massivecraft.factions.util.CC;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import mkremins.fanciful.FancyMessage;
|
import mkremins.fanciful.FancyMessage;
|
||||||
@@ -17,8 +19,7 @@ public class CmdInvite extends FCommand {
|
|||||||
|
|
||||||
public CmdInvite() {
|
public CmdInvite() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("invite");
|
this.aliases.addAll(Aliases.invite);
|
||||||
this.aliases.add("inv");
|
|
||||||
|
|
||||||
this.requiredArgs.add("player name");
|
this.requiredArgs.add("player name");
|
||||||
|
|
||||||
@@ -68,11 +69,10 @@ public class CmdInvite extends FCommand {
|
|||||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag())
|
||||||
.then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
.then(context.faction.describeTo(target)).tooltip(TL.COMMAND_INVITE_CLICKTOJOIN.toString())
|
||||||
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag());
|
.command("/" + Conf.baseCommandAliases.get(0) + " join " + context.faction.getTag());
|
||||||
|
|
||||||
message.send(target.getPlayer());
|
message.send(target.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
context.faction.msg(TL.COMMAND_INVITE_INVITED, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction));
|
context.faction.msg(TL.COMMAND_INVITE_INVITED, context.fPlayer.describeTo(context.faction, true), target.describeTo(context.faction));
|
||||||
|
FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.INVITES, context.fPlayer.getName(), CC.Green + "invited", target.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import com.massivecraft.factions.*;
|
import com.massivecraft.factions.*;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.discord.Discord;
|
import com.massivecraft.factions.discord.Discord;
|
||||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
|
import com.massivecraft.factions.util.CC;
|
||||||
import com.massivecraft.factions.zcore.fupgrades.UpgradeType;
|
import com.massivecraft.factions.zcore.fupgrades.UpgradeType;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
import net.dv8tion.jda.core.exceptions.HierarchyException;
|
import net.dv8tion.jda.core.exceptions.HierarchyException;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class CmdJoin extends FCommand {
|
public class CmdJoin extends FCommand {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,7 +22,7 @@ public class CmdJoin extends FCommand {
|
|||||||
|
|
||||||
public CmdJoin() {
|
public CmdJoin() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("join");
|
this.aliases.addAll(Aliases.join);
|
||||||
this.requiredArgs.add("faction name");
|
this.requiredArgs.add("faction name");
|
||||||
this.optionalArgs.put("player", "you");
|
this.optionalArgs.put("player", "you");
|
||||||
|
|
||||||
@@ -125,16 +129,19 @@ public class CmdJoin extends FCommand {
|
|||||||
faction.deinvite(fplayer);
|
faction.deinvite(fplayer);
|
||||||
try {
|
try {
|
||||||
context.fPlayer.setRole(faction.getDefaultRole());
|
context.fPlayer.setRole(faction.getDefaultRole());
|
||||||
|
FactionsPlugin.instance.logFactionEvent(faction, FLogType.INVITES, context.fPlayer.getName(), CC.Green + "joined", "the faction");
|
||||||
if (Discord.useDiscord && context.fPlayer.discordSetup() && Discord.isInMainGuild(context.fPlayer.discordUser()) && Discord.mainGuild != null) {
|
if (Discord.useDiscord && context.fPlayer.discordSetup() && Discord.isInMainGuild(context.fPlayer.discordUser()) && Discord.mainGuild != null) {
|
||||||
Member m = Discord.mainGuild.getMember(context.fPlayer.discordUser());
|
Member m = Discord.mainGuild.getMember(context.fPlayer.discordUser());
|
||||||
if (Conf.factionRoles) {
|
if (Conf.factionRoles) {
|
||||||
Discord.mainGuild.getController().addSingleRoleToMember(m, Discord.createFactionRole(faction.getTag())).queue();
|
Discord.mainGuild.getController().addSingleRoleToMember(m, Objects.requireNonNull(Discord.createFactionRole(faction.getTag()))).queue();
|
||||||
}
|
}
|
||||||
if (Conf.factionDiscordTags) {
|
if (Conf.factionDiscordTags) {
|
||||||
Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue();
|
Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (HierarchyException e) {System.out.print(e.getMessage());}
|
} catch (HierarchyException e) {
|
||||||
|
System.out.print(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
if (Conf.logFactionJoin) {
|
if (Conf.logFactionJoin) {
|
||||||
if (samePlayer) {
|
if (samePlayer) {
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import com.massivecraft.factions.Conf;
|
|||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
|
import com.massivecraft.factions.util.CC;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import mkremins.fanciful.FancyMessage;
|
import mkremins.fanciful.FancyMessage;
|
||||||
@@ -22,7 +24,7 @@ public class CmdKick extends FCommand {
|
|||||||
|
|
||||||
public CmdKick() {
|
public CmdKick() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("kick");
|
this.aliases.addAll(Aliases.kick);
|
||||||
this.optionalArgs.put("player name", "player name");
|
this.optionalArgs.put("player name", "player name");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.KICK)
|
this.requirements = new CommandRequirements.Builder(Permission.KICK)
|
||||||
@@ -122,6 +124,7 @@ public class CmdKick extends FCommand {
|
|||||||
if (toKick.getRole() == Role.LEADER) {
|
if (toKick.getRole() == Role.LEADER) {
|
||||||
toKickFaction.promoteNewLeader();
|
toKickFaction.promoteNewLeader();
|
||||||
}
|
}
|
||||||
|
FactionsPlugin.instance.logFactionEvent(toKickFaction, FLogType.INVITES, context.fPlayer.getName(), CC.Red + "kicked", toKick.getName());
|
||||||
toKickFaction.deinvite(toKick);
|
toKickFaction.deinvite(toKick);
|
||||||
toKick.resetFactionData();
|
toKick.resetFactionData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ public class CmdKillHolograms extends FCommand {
|
|||||||
|
|
||||||
public CmdKillHolograms() {
|
public CmdKillHolograms() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("killholos");
|
this.aliases.addAll(Aliases.killholograms);
|
||||||
this.requiredArgs.add("radius");
|
this.requiredArgs.add("radius");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.KILLHOLOS)
|
this.requirements = new CommandRequirements.Builder(Permission.KILLHOLOS)
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import com.massivecraft.factions.Conf;
|
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
public class CmdLeave extends FCommand {
|
public class CmdLeave extends FCommand {
|
||||||
|
|
||||||
@@ -13,7 +11,7 @@ public class CmdLeave extends FCommand {
|
|||||||
|
|
||||||
public CmdLeave() {
|
public CmdLeave() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("leave");
|
this.aliases.addAll(Aliases.leave);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.LEAVE)
|
this.requirements = new CommandRequirements.Builder(Permission.LEAVE)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ public class CmdList extends FCommand {
|
|||||||
|
|
||||||
public CmdList() {
|
public CmdList() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("list");
|
this.aliases.addAll(Aliases.list);
|
||||||
this.aliases.add("ls");
|
|
||||||
|
|
||||||
// default values in case user has old config
|
// default values in case user has old config
|
||||||
defaults[0] = "&e&m----------&r&e[ &2Faction List &9{pagenumber}&e/&9{pagecount} &e]&m----------";
|
defaults[0] = "&e&m----------&r&e[ &2Faction List &9{pagenumber}&e/&9{pagecount} &e]&m----------";
|
||||||
|
|||||||
@@ -16,10 +16,9 @@ public class CmdLock extends FCommand {
|
|||||||
description: use the /f lock [on/off] command to temporarily lock the data files from being overwritten
|
description: use the /f lock [on/off] command to temporarily lock the data files from being overwritten
|
||||||
default: op
|
default: op
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdLock() {
|
public CmdLock() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("lock");
|
this.aliases.addAll(Aliases.lock);
|
||||||
this.optionalArgs.put("on/off", "flip");
|
this.optionalArgs.put("on/off", "flip");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.LOCK)
|
this.requirements = new CommandRequirements.Builder(Permission.LOCK)
|
||||||
|
|||||||
@@ -11,10 +11,7 @@ public class CmdLogins extends FCommand {
|
|||||||
|
|
||||||
public CmdLogins() {
|
public CmdLogins() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("login");
|
this.aliases.addAll(Aliases.logins);
|
||||||
this.aliases.add("logins");
|
|
||||||
this.aliases.add("logout");
|
|
||||||
this.aliases.add("logouts");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.MONITOR_LOGINS)
|
this.requirements = new CommandRequirements.Builder(Permission.MONITOR_LOGINS)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class CmdLookup extends FCommand {
|
|||||||
|
|
||||||
public CmdLookup() {
|
public CmdLookup() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("lookup");
|
this.aliases.addAll(Aliases.lookup);
|
||||||
this.requiredArgs.add("faction name");
|
this.requiredArgs.add("faction name");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.LOOKUP)
|
this.requirements = new CommandRequirements.Builder(Permission.LOOKUP)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class CmdLowPower extends FCommand {
|
|||||||
|
|
||||||
public CmdLowPower() {
|
public CmdLowPower() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("lowpower");
|
this.aliases.addAll(Aliases.lowPower);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.POWER_ANY)
|
this.requirements = new CommandRequirements.Builder(Permission.POWER_ANY)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class CmdMap extends FCommand {
|
|||||||
|
|
||||||
public CmdMap() {
|
public CmdMap() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("map");
|
this.aliases.addAll(Aliases.map_map);
|
||||||
this.optionalArgs.put("on/off", "once");
|
this.optionalArgs.put("on/off", "once");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.MAP)
|
this.requirements = new CommandRequirements.Builder(Permission.MAP)
|
||||||
|
|||||||
@@ -12,8 +12,7 @@ public class CmdMapHeight extends FCommand {
|
|||||||
public CmdMapHeight() {
|
public CmdMapHeight() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.aliases.add("mapheight");
|
this.aliases.addAll(Aliases.map_height);
|
||||||
this.aliases.add("mh");
|
|
||||||
this.optionalArgs.put("height", "height");
|
this.optionalArgs.put("height", "height");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.MAPHEIGHT)
|
this.requirements = new CommandRequirements.Builder(Permission.MAPHEIGHT)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.massivecraft.factions.Conf;
|
|||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
@@ -18,10 +19,7 @@ public class CmdMod extends FCommand {
|
|||||||
|
|
||||||
public CmdMod() {
|
public CmdMod() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("mod");
|
this.aliases.addAll(Aliases.mod);
|
||||||
this.aliases.add("setmod");
|
|
||||||
this.aliases.add("officer");
|
|
||||||
this.aliases.add("setofficer");
|
|
||||||
|
|
||||||
this.optionalArgs.put("player name", "name");
|
this.optionalArgs.put("player name", "name");
|
||||||
|
|
||||||
@@ -33,51 +31,53 @@ public class CmdMod extends FCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
FPlayer you = context.argAsBestFPlayerMatch(0);
|
FPlayer you = context.argAsBestFPlayerMatch(0);
|
||||||
if (you == null) {
|
if (you == null) {
|
||||||
FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD);
|
FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD);
|
||||||
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) {
|
||||||
String s = player.getName();
|
String s = player.getName();
|
||||||
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s);
|
msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s);
|
||||||
}
|
|
||||||
|
|
||||||
context.sendFancyMessage(msg);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean permAny = Permission.MOD_ANY.has(context.sender, false);
|
context.sendFancyMessage(msg);
|
||||||
Faction targetFaction = you.getFaction();
|
return;
|
||||||
if (targetFaction != context.faction && !permAny) {
|
}
|
||||||
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
boolean permAny = Permission.MOD_ANY.has(context.sender, false);
|
||||||
context.msg(TL.COMMAND_MOD_NOTADMIN);
|
Faction targetFaction = you.getFaction();
|
||||||
return;
|
if (targetFaction != context.faction && !permAny) {
|
||||||
}
|
context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (you == context.fPlayer && !permAny) {
|
if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) {
|
||||||
context.msg(TL.COMMAND_MOD_SELF);
|
context.msg(TL.COMMAND_MOD_NOTADMIN);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (you.getRole() == Role.LEADER) {
|
if (you == context.fPlayer && !permAny) {
|
||||||
context.msg(TL.COMMAND_MOD_TARGETISADMIN);
|
context.msg(TL.COMMAND_MOD_SELF);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (you.getRole() == Role.MODERATOR) {
|
if (you.getRole() == Role.LEADER) {
|
||||||
// Revoke
|
context.msg(TL.COMMAND_MOD_TARGETISADMIN);
|
||||||
you.setRole(Role.NORMAL);
|
return;
|
||||||
targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true));
|
}
|
||||||
context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true));
|
|
||||||
} else {
|
if (you.getRole() == Role.MODERATOR) {
|
||||||
// Give
|
// Revoke
|
||||||
you.setRole(Role.MODERATOR);
|
you.setRole(Role.NORMAL);
|
||||||
targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true));
|
targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true));
|
||||||
context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true));
|
context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true));
|
||||||
}
|
} else {
|
||||||
|
// Give
|
||||||
|
you.setRole(Role.MODERATOR);
|
||||||
|
targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true));
|
||||||
|
context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true));
|
||||||
|
FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), you.getName(), ChatColor.LIGHT_PURPLE + "Mod");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -13,10 +13,7 @@ public class CmdModifyPower extends FCommand {
|
|||||||
public CmdModifyPower() {
|
public CmdModifyPower() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.aliases.add("pm");
|
this.aliases.addAll(Aliases.modifyPower);
|
||||||
this.aliases.add("mp");
|
|
||||||
this.aliases.add("modifypower");
|
|
||||||
this.aliases.add("modpower");
|
|
||||||
|
|
||||||
this.requiredArgs.add("name");
|
this.requiredArgs.add("name");
|
||||||
this.requiredArgs.add("power");
|
this.requiredArgs.add("power");
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ public class CmdNear extends FCommand {
|
|||||||
|
|
||||||
public CmdNear() {
|
public CmdNear() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("near");
|
this.aliases.addAll(Aliases.near);
|
||||||
this.aliases.add("nearby");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.NEAR)
|
this.requirements = new CommandRequirements.Builder(Permission.NEAR)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class CmdOpen extends FCommand {
|
|||||||
|
|
||||||
public CmdOpen() {
|
public CmdOpen() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("open");
|
this.aliases.addAll(Aliases.open);
|
||||||
this.optionalArgs.put("yes/no", "flip");
|
this.optionalArgs.put("yes/no", "flip");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.OPEN)
|
this.requirements = new CommandRequirements.Builder(Permission.OPEN)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class CmdOwner extends FCommand {
|
|||||||
|
|
||||||
public CmdOwner() {
|
public CmdOwner() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("owner");
|
this.aliases.addAll(Aliases.owner_owner);
|
||||||
this.optionalArgs.put("player name", "you");
|
this.optionalArgs.put("player name", "you");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.OWNER)
|
this.requirements = new CommandRequirements.Builder(Permission.OWNER)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class CmdOwnerList extends FCommand {
|
|||||||
|
|
||||||
public CmdOwnerList() {
|
public CmdOwnerList() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("ownerlist");
|
this.aliases.addAll(Aliases.owner_list);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.OWNERLIST)
|
this.requirements = new CommandRequirements.Builder(Permission.OWNERLIST)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -12,8 +12,7 @@ public class CmdPaypalSee extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdPaypalSee() {
|
public CmdPaypalSee() {
|
||||||
this.aliases.add("seepaypal");
|
this.aliases.addAll(Aliases.paypal_see);
|
||||||
this.aliases.add("paypal");
|
|
||||||
|
|
||||||
this.optionalArgs.put("faction", "yours");
|
this.optionalArgs.put("faction", "yours");
|
||||||
|
|
||||||
@@ -30,7 +29,6 @@ public class CmdPaypalSee extends FCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (context.args.size() == 0) {
|
if (context.args.size() == 0) {
|
||||||
if (context.fPlayer.getFaction().getPaypal() == null) {
|
if (context.fPlayer.getFaction().getPaypal() == null) {
|
||||||
context.msg(TL.COMMAND_PAYPAL_NOTSET);
|
context.msg(TL.COMMAND_PAYPAL_NOTSET);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class CmdPaypalSet extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdPaypalSet() {
|
public CmdPaypalSet() {
|
||||||
this.aliases.add("setpaypal");
|
this.aliases.addAll(Aliases.paypal_set);
|
||||||
|
|
||||||
this.optionalArgs.put("faction", "yours");
|
this.optionalArgs.put("faction", "yours");
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class CmdPeaceful extends FCommand {
|
|||||||
|
|
||||||
public CmdPeaceful() {
|
public CmdPeaceful() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("peaceful");
|
this.aliases.addAll(Aliases.peaceful);
|
||||||
this.requiredArgs.add("faction tag");
|
this.requiredArgs.add("faction tag");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PEACEFUL)
|
this.requirements = new CommandRequirements.Builder(Permission.SET_PEACEFUL)
|
||||||
|
|||||||
@@ -23,10 +23,7 @@ public class CmdPerm extends FCommand {
|
|||||||
|
|
||||||
public CmdPerm() {
|
public CmdPerm() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("perm");
|
this.aliases.addAll(Aliases.perm);
|
||||||
this.aliases.add("perms");
|
|
||||||
this.aliases.add("permission");
|
|
||||||
this.aliases.add("permissions");
|
|
||||||
|
|
||||||
this.optionalArgs.put("relation", "relation");
|
this.optionalArgs.put("relation", "relation");
|
||||||
this.optionalArgs.put("action", "action");
|
this.optionalArgs.put("action", "action");
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class CmdPermanent extends FCommand {
|
|||||||
|
|
||||||
public CmdPermanent() {
|
public CmdPermanent() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("permanent");
|
this.aliases.addAll(Aliases.permanent_faction);
|
||||||
this.requiredArgs.add("faction tag");
|
this.requiredArgs.add("faction tag");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENT)
|
this.requirements = new CommandRequirements.Builder(Permission.SET_PERMANENT)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class CmdPermanentPower extends FCommand {
|
|||||||
|
|
||||||
public CmdPermanentPower() {
|
public CmdPermanentPower() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("permanentpower");
|
this.aliases.addAll(Aliases.permanent_power);
|
||||||
this.requiredArgs.add("faction");
|
this.requiredArgs.add("faction");
|
||||||
this.requiredArgs.add("power");
|
this.requiredArgs.add("power");
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,19 @@ import com.massivecraft.factions.zcore.util.TL;
|
|||||||
public class CmdPlayerTitleToggle extends FCommand {
|
public class CmdPlayerTitleToggle extends FCommand {
|
||||||
public CmdPlayerTitleToggle() {
|
public CmdPlayerTitleToggle() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("titles");
|
this.aliases.addAll(Aliases.titles);
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_TITLES)
|
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_TITLES)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
context.fPlayer.setTitlesEnabled(!context.fPlayer.hasTitlesEnabled());
|
context.fPlayer.setTitlesEnabled(!context.fPlayer.hasTitlesEnabled());
|
||||||
context.msg(TL.COMMAND_TITLETOGGLE_TOGGLED, context.fPlayer.hasTitlesEnabled() ? FactionsPlugin.getInstance().color("&dEnabled") : FactionsPlugin.getInstance().color("&dDisabled"));
|
context.msg(TL.COMMAND_TITLETOGGLE_TOGGLED, context.fPlayer.hasTitlesEnabled() ? FactionsPlugin.getInstance().color("&dEnabled") : FactionsPlugin.getInstance().color("&dDisabled"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TL getUsageTranslation() {return TL.COMMAND_TITLETOGGLE_DESCRIPTION;}
|
public TL getUsageTranslation() {
|
||||||
|
return TL.COMMAND_TITLETOGGLE_DESCRIPTION;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ public class CmdPower extends FCommand {
|
|||||||
|
|
||||||
public CmdPower() {
|
public CmdPower() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("power");
|
this.aliases.addAll(Aliases.power_power);
|
||||||
this.aliases.add("pow");
|
|
||||||
this.optionalArgs.put("player name", "you");
|
this.optionalArgs.put("player name", "you");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.POWER)
|
this.requirements = new CommandRequirements.Builder(Permission.POWER)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class CmdPowerBoost extends FCommand {
|
|||||||
|
|
||||||
public CmdPowerBoost() {
|
public CmdPowerBoost() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("powerboost");
|
this.aliases.addAll(Aliases.power_boost);
|
||||||
this.requiredArgs.add("plugin|f|player|faction");
|
this.requiredArgs.add("plugin|f|player|faction");
|
||||||
this.requiredArgs.add("name");
|
this.requiredArgs.add("name");
|
||||||
this.requiredArgs.add("# or reset");
|
this.requiredArgs.add("# or reset");
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd;
|
|||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
import com.massivecraft.factions.discord.Discord;
|
import com.massivecraft.factions.discord.Discord;
|
||||||
|
import com.massivecraft.factions.duels.RequestGUI;
|
||||||
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
||||||
import com.massivecraft.factions.shop.ShopConfig;
|
import com.massivecraft.factions.shop.ShopConfig;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
@@ -16,7 +17,7 @@ public class CmdReload extends FCommand {
|
|||||||
|
|
||||||
public CmdReload() {
|
public CmdReload() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("reload");
|
this.aliases.addAll(Aliases.reload);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.RELOAD).build();
|
this.requirements = new CommandRequirements.Builder(Permission.RELOAD).build();
|
||||||
}
|
}
|
||||||
@@ -44,6 +45,9 @@ public class CmdReload extends FCommand {
|
|||||||
FCmdRoot.instance.addVariableCommands();
|
FCmdRoot.instance.addVariableCommands();
|
||||||
FCmdRoot.instance.rebuild();
|
FCmdRoot.instance.rebuild();
|
||||||
long timeReload = (System.currentTimeMillis() - timeInitStart);
|
long timeReload = (System.currentTimeMillis() - timeInitStart);
|
||||||
|
//Duels
|
||||||
|
RequestGUI.inv = null;
|
||||||
|
RequestGUI.responseMap.clear();
|
||||||
|
|
||||||
context.msg(TL.COMMAND_RELOAD_TIME, timeReload);
|
context.msg(TL.COMMAND_RELOAD_TIME, timeReload);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ public class CmdRules extends FCommand {
|
|||||||
|
|
||||||
public CmdRules() {
|
public CmdRules() {
|
||||||
super();
|
super();
|
||||||
aliases.add("r");
|
aliases.addAll(Aliases.rules);
|
||||||
aliases.add("rule");
|
|
||||||
aliases.add("rules");
|
|
||||||
|
|
||||||
this.optionalArgs.put("add/remove/set/clear", "");
|
this.optionalArgs.put("add/remove/set/clear", "");
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ public class CmdSB extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSB() {
|
public CmdSB() {
|
||||||
this.aliases.add("sb");
|
this.aliases.addAll(Aliases.scoreboard);
|
||||||
this.aliases.add("scoreboard");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SCOREBOARD)
|
this.requirements = new CommandRequirements.Builder(Permission.SCOREBOARD)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import com.massivecraft.factions.Board;
|
import com.massivecraft.factions.*;
|
||||||
import com.massivecraft.factions.Conf;
|
|
||||||
import com.massivecraft.factions.FPlayers;
|
|
||||||
import com.massivecraft.factions.Factions;
|
|
||||||
import com.massivecraft.factions.shop.ShopConfig;
|
import com.massivecraft.factions.shop.ShopConfig;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
@@ -16,8 +13,7 @@ public class CmdSaveAll extends FCommand {
|
|||||||
|
|
||||||
public CmdSaveAll() {
|
public CmdSaveAll() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("saveall");
|
this.aliases.addAll(Aliases.saveAll);
|
||||||
this.aliases.add("save");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SAVE)
|
this.requirements = new CommandRequirements.Builder(Permission.SAVE)
|
||||||
.build();
|
.build();
|
||||||
@@ -29,6 +25,11 @@ public class CmdSaveAll extends FCommand {
|
|||||||
Factions.getInstance().forceSave(false);
|
Factions.getInstance().forceSave(false);
|
||||||
Board.getInstance().forceSave(false);
|
Board.getInstance().forceSave(false);
|
||||||
Conf.save();
|
Conf.save();
|
||||||
|
try {
|
||||||
|
FactionsPlugin.instance.getFlogManager().saveLogs();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
ShopConfig.saveShop();
|
ShopConfig.saveShop();
|
||||||
context.msg(TL.COMMAND_SAVEALL_SUCCESS);
|
context.msg(TL.COMMAND_SAVEALL_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,7 @@ public class CmdSeeChunk extends FCommand {
|
|||||||
|
|
||||||
public CmdSeeChunk() {
|
public CmdSeeChunk() {
|
||||||
super();
|
super();
|
||||||
aliases.add("seechunk");
|
aliases.addAll(Aliases.seeChunk);
|
||||||
aliases.add("sc");
|
|
||||||
|
|
||||||
this.useParticles = FactionsPlugin.getInstance().getConfig().getBoolean("see-chunk.particles", true);
|
this.useParticles = FactionsPlugin.getInstance().getConfig().getBoolean("see-chunk.particles", true);
|
||||||
interval = FactionsPlugin.getInstance().getConfig().getLong("see-chunk.interval", 10L);
|
interval = FactionsPlugin.getInstance().getConfig().getLong("see-chunk.interval", 10L);
|
||||||
@@ -75,7 +74,9 @@ public class CmdSeeChunk extends FCommand {
|
|||||||
for (Object nameObject : seeChunkMap.keySet()) {
|
for (Object nameObject : seeChunkMap.keySet()) {
|
||||||
String name = nameObject + "";
|
String name = nameObject + "";
|
||||||
Player player = Bukkit.getPlayer(name);
|
Player player = Bukkit.getPlayer(name);
|
||||||
showBorders(player);
|
if (player != null) {
|
||||||
|
showBorders(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
manageTask();
|
manageTask();
|
||||||
}, 0, interval);
|
}, 0, interval);
|
||||||
@@ -111,24 +112,19 @@ public class CmdSeeChunk extends FCommand {
|
|||||||
private 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++) {
|
for (int blockY = 0; blockY < player.getLocation().getBlockY() + 30; blockY++) {
|
||||||
Location loc = new Location(world, blockX, blockY, blockZ).add(0.5, 0, 0.5);
|
Location loc = new Location(world, blockX, blockY, blockZ).add(0.5, 0, 0.5);
|
||||||
if (loc.getBlock().getType() != Material.AIR) {
|
if (loc.getBlock().getType() != Material.AIR) continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (useParticles) {
|
if (useParticles) {
|
||||||
if (FactionsPlugin.getInstance().useNonPacketParticles) {
|
if (FactionsPlugin.getInstance().useNonPacketParticles) {
|
||||||
// Dust options only exists in the 1.13 API, so we use an
|
// Dust options only exists in the 1.13 API, so we use an
|
||||||
// alternative method to achieve this in lower versions.
|
// alternative method to achieve this in lower versions.
|
||||||
if (FactionsPlugin.getInstance().mc113 || FactionsPlugin.getInstance().mc114) {
|
if (FactionsPlugin.getInstance().mc113 || FactionsPlugin.getInstance().mc114 || FactionsPlugin.getInstance().mc115) {
|
||||||
player.spawnParticle(Particle.REDSTONE, loc, 0, new Particle.DustOptions(Color.RED, 1));
|
player.spawnParticle(Particle.REDSTONE, loc, 0, new Particle.DustOptions(Color.RED, 1));
|
||||||
} else {
|
} else {
|
||||||
player.getWorld().spawnParticle(Particle.REDSTONE, loc, 0, 255, 0, 0, 1);
|
player.getWorld().spawnParticle(Particle.REDSTONE, loc, 0, 255, 0, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.effect.display(0, 0, 0, 0, 1, loc, player);
|
this.effect.display(0, 0, 0, 0, 1, loc, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Material type = blockY % 5 == 0 ? XMaterial.REDSTONE_LAMP.parseMaterial() : XMaterial.BLACK_STAINED_GLASS.parseMaterial();
|
Material type = blockY % 5 == 0 ? XMaterial.REDSTONE_LAMP.parseMaterial() : XMaterial.BLACK_STAINED_GLASS.parseMaterial();
|
||||||
VisualizeUtil.addLocation(player, loc, type);
|
VisualizeUtil.addLocation(player, loc, type);
|
||||||
|
|||||||
@@ -5,15 +5,14 @@ import com.massivecraft.factions.FactionsPlugin;
|
|||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
|
|
||||||
public class CmdSeeDiscord extends FCommand{
|
public class CmdSeeDiscord extends FCommand {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Driftay
|
* @author Driftay
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSeeDiscord() {
|
public CmdSeeDiscord() {
|
||||||
this.aliases.add("seediscord");
|
this.aliases.addAll(Aliases.discord_see);
|
||||||
this.aliases.add("discord");
|
|
||||||
|
|
||||||
this.optionalArgs.put("faction", "yours");
|
this.optionalArgs.put("faction", "yours");
|
||||||
|
|
||||||
@@ -30,7 +29,6 @@ public class CmdSeeDiscord extends FCommand{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (context.args.size() == 0) {
|
if (context.args.size() == 0) {
|
||||||
if (context.fPlayer.getFaction().getDiscord() == null) {
|
if (context.fPlayer.getFaction().getDiscord() == null) {
|
||||||
context.msg(TL.COMMAND_DISCORD_NOTSET);
|
context.msg(TL.COMMAND_DISCORD_NOTSET);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ public class CmdSetBanner extends FCommand {
|
|||||||
|
|
||||||
public CmdSetBanner() {
|
public CmdSetBanner() {
|
||||||
super();
|
super();
|
||||||
aliases.add("setbanner");
|
aliases.addAll(Aliases.setBanner);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.BANNER)
|
this.requirements = new CommandRequirements.Builder(Permission.BANNER)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -13,10 +13,7 @@ public class CmdSetDefaultRole extends FCommand {
|
|||||||
public CmdSetDefaultRole() {
|
public CmdSetDefaultRole() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.aliases.add("defaultrole");
|
this.aliases.addAll(Aliases.setDefaultRole);
|
||||||
this.aliases.add("defaultrank");
|
|
||||||
this.aliases.add("default");
|
|
||||||
this.aliases.add("def");
|
|
||||||
this.requiredArgs.add("role");
|
this.requiredArgs.add("role");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.DEFAULTRANK)
|
this.requirements = new CommandRequirements.Builder(Permission.DEFAULTRANK)
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ public class CmdSetDiscord extends FCommand {
|
|||||||
* @author Driftay
|
* @author Driftay
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSetDiscord(){
|
public CmdSetDiscord() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("setdiscord");
|
this.aliases.addAll(Aliases.discord_set);
|
||||||
|
|
||||||
this.optionalArgs.put("faction", "yours");
|
this.optionalArgs.put("faction", "yours");
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ public class CmdSetDiscord extends FCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isDiscordInvite(String invite){
|
private boolean isDiscordInvite(String invite) {
|
||||||
return invite.contains("discord.gg") || invite.contains("discord.me");
|
return invite.contains("discord.gg") || invite.contains("discord.me");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ public class CmdSetFWarp extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSetFWarp() {
|
public CmdSetFWarp() {
|
||||||
this.aliases.add("setwarp");
|
this.aliases.addAll(Aliases.setWarp);
|
||||||
this.aliases.add("sw");
|
|
||||||
this.requiredArgs.add("warp name");
|
this.requiredArgs.add("warp name");
|
||||||
this.optionalArgs.put("password", "password");
|
this.optionalArgs.put("password", "password");
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SETWARP).playerOnly().memberOnly().withAction(PermissableAction.SETWARP).build();
|
this.requirements = new CommandRequirements.Builder(Permission.SETWARP).playerOnly().memberOnly().withAction(PermissableAction.SETWARP).build();
|
||||||
|
|||||||
@@ -12,8 +12,7 @@ public class CmdSetMaxVaults extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSetMaxVaults() {
|
public CmdSetMaxVaults() {
|
||||||
this.aliases.add("setmaxvaults");
|
this.aliases.addAll(Aliases.setMaxVaults);
|
||||||
this.aliases.add("smv");
|
|
||||||
this.requiredArgs.add("faction");
|
this.requiredArgs.add("faction");
|
||||||
this.requiredArgs.add("number");
|
this.requiredArgs.add("number");
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import com.massivecraft.factions.*;
|
import com.massivecraft.factions.*;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
|
import com.massivecraft.factions.zcore.fperms.Access;
|
||||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
|
|
||||||
@@ -12,7 +13,7 @@ public class CmdSethome extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSethome() {
|
public CmdSethome() {
|
||||||
this.aliases.add("sethome");
|
this.aliases.addAll(Aliases.setHome);
|
||||||
this.optionalArgs.put("faction tag", "mine");
|
this.optionalArgs.put("faction tag", "mine");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SETHOME)
|
this.requirements = new CommandRequirements.Builder(Permission.SETHOME)
|
||||||
@@ -43,6 +44,16 @@ public class CmdSethome extends FCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!context.args.isEmpty()) {
|
||||||
|
Faction target = context.argAsFaction(0);
|
||||||
|
if (target == null) return;
|
||||||
|
context.faction = target;
|
||||||
|
if (target.getAccess(context.fPlayer, PermissableAction.SETHOME) != Access.ALLOW) {
|
||||||
|
context.fPlayer.msg(TL.GENERIC_FPERM_NOPERMISSION, "set faction home");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||||
if (!context.payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) {
|
if (!context.payForCommand(Conf.econCostSethome, TL.COMMAND_SETHOME_TOSET, TL.COMMAND_SETHOME_FORSET)) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -21,8 +21,7 @@ public class CmdShow extends FCommand {
|
|||||||
List<String> defaults = new ArrayList<>();
|
List<String> defaults = new ArrayList<>();
|
||||||
|
|
||||||
public CmdShow() {
|
public CmdShow() {
|
||||||
this.aliases.add("show");
|
this.aliases.addAll(Aliases.show_show);
|
||||||
this.aliases.add("who");
|
|
||||||
|
|
||||||
// add defaults to /f show in case config doesnt have it
|
// add defaults to /f show in case config doesnt have it
|
||||||
defaults.add("{header}");
|
defaults.add("{header}");
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ public class CmdShowClaims extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdShowClaims() {
|
public CmdShowClaims() {
|
||||||
this.aliases.add("showclaims");
|
this.aliases.addAll(Aliases.show_claims);
|
||||||
this.aliases.add("showclaim");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SHOWCLAIMS)
|
this.requirements = new CommandRequirements.Builder(Permission.SHOWCLAIMS)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.massivecraft.factions.cmd;
|
|||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.FPlayer;
|
import com.massivecraft.factions.FPlayer;
|
||||||
import com.massivecraft.factions.FPlayers;
|
import com.massivecraft.factions.FPlayers;
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import mkremins.fanciful.FancyMessage;
|
import mkremins.fanciful.FancyMessage;
|
||||||
@@ -17,7 +16,7 @@ public class CmdShowInvites extends FCommand {
|
|||||||
|
|
||||||
public CmdShowInvites() {
|
public CmdShowInvites() {
|
||||||
super();
|
super();
|
||||||
aliases.add("showinvites");
|
aliases.addAll(Aliases.show_invites);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SHOW_INVITES)
|
this.requirements = new CommandRequirements.Builder(Permission.SHOW_INVITES)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
@@ -28,12 +27,12 @@ public class CmdShowInvites extends FCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD);
|
FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD);
|
||||||
for (String id : context.faction.getInvites()) {
|
for (String id : context.faction.getInvites()) {
|
||||||
FPlayer fp = FPlayers.getInstance().getById(id);
|
FPlayer fp = FPlayers.getInstance().getById(id);
|
||||||
String name = fp != null ? fp.getName() : id;
|
String name = fp != null ? fp.getName() : id;
|
||||||
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -11,17 +11,16 @@ public class CmdSpawnerLock extends FCommand {
|
|||||||
* @author Illyria Team
|
* @author Illyria Team
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdSpawnerLock(){
|
public CmdSpawnerLock() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("lockspawners");
|
this.aliases.addAll(Aliases.spawnerlock);
|
||||||
this.aliases.add("spawnerlock");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.LOCKSPAWNERS)
|
this.requirements = new CommandRequirements.Builder(Permission.LOCKSPAWNERS)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context){
|
public void perform(CommandContext context) {
|
||||||
Conf.spawnerLock = !Conf.spawnerLock;
|
Conf.spawnerLock = !Conf.spawnerLock;
|
||||||
context.msg(TL.COMMAND_SPAWNER_LOCK_TOGGLED, Conf.spawnerLock ? FactionsPlugin.getInstance().color("&aEnabled") : FactionsPlugin.getInstance().color("&4Disabled"));
|
context.msg(TL.COMMAND_SPAWNER_LOCK_TOGGLED, Conf.spawnerLock ? FactionsPlugin.getInstance().color("&aEnabled") : FactionsPlugin.getInstance().color("&4Disabled"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ public class CmdStatus extends FCommand {
|
|||||||
|
|
||||||
public CmdStatus() {
|
public CmdStatus() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("status");
|
this.aliases.addAll(Aliases.status);
|
||||||
this.aliases.add("s");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.STATUS)
|
this.requirements = new CommandRequirements.Builder(Permission.STATUS)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ public class CmdStealth extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdStealth() {
|
public CmdStealth() {
|
||||||
this.aliases.add("ninja");
|
this.aliases.addAll(Aliases.stealth);
|
||||||
this.aliases.add("stealth");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.STEALTH)
|
this.requirements = new CommandRequirements.Builder(Permission.STEALTH)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class CmdStrikes extends FCommand {
|
|||||||
public CmdStrikes() {
|
public CmdStrikes() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.aliases.add("strikes");
|
this.aliases.addAll(Aliases.strikes_strikes);
|
||||||
|
|
||||||
this.addSubCommand(cmdStrikesGive);
|
this.addSubCommand(cmdStrikesGive);
|
||||||
this.addSubCommand(cmdStrikesInfo);
|
this.addSubCommand(cmdStrikesInfo);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdStrikesGive extends FCommand {
|
|||||||
|
|
||||||
public CmdStrikesGive() {
|
public CmdStrikesGive() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("give");
|
this.aliases.addAll(Aliases.strikes_give);
|
||||||
this.requiredArgs.add(0, "faction");
|
this.requiredArgs.add(0, "faction");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdStrikesInfo extends FCommand {
|
|||||||
|
|
||||||
public CmdStrikesInfo() {
|
public CmdStrikesInfo() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("info");
|
this.aliases.addAll(Aliases.strikes_info);
|
||||||
this.optionalArgs.put("target", "faction");
|
this.optionalArgs.put("target", "faction");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
this.requirements = new CommandRequirements.Builder(Permission.SETSTRIKES)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdStrikesSet extends FCommand {
|
|||||||
|
|
||||||
public CmdStrikesSet() {
|
public CmdStrikesSet() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("set");
|
this.aliases.addAll(Aliases.strikes_set);
|
||||||
this.requiredArgs.add(0, "faction");
|
this.requiredArgs.add(0, "faction");
|
||||||
this.requiredArgs.add(1, "amount");
|
this.requiredArgs.add(1, "amount");
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class CmdStrikesTake extends FCommand {
|
|||||||
|
|
||||||
public CmdStrikesTake() {
|
public CmdStrikesTake() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("take");
|
this.aliases.addAll(Aliases.strikes_take);
|
||||||
this.requiredArgs.add(0, "faction");
|
this.requiredArgs.add(0, "faction");
|
||||||
this.requiredArgs.add(1, "number of strikes");
|
this.requiredArgs.add(1, "number of strikes");
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ public class CmdStuck extends FCommand {
|
|||||||
|
|
||||||
public CmdStuck() {
|
public CmdStuck() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("stuck");
|
this.aliases.addAll(Aliases.stuck);
|
||||||
this.aliases.add("halp!"); // halp!c:
|
|
||||||
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.STUCK)
|
this.requirements = new CommandRequirements.Builder(Permission.STUCK)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import com.massivecraft.factions.*;
|
import com.massivecraft.factions.*;
|
||||||
|
import com.massivecraft.factions.cmd.audit.FLogType;
|
||||||
import com.massivecraft.factions.discord.Discord;
|
import com.massivecraft.factions.discord.Discord;
|
||||||
import com.massivecraft.factions.event.FactionRenameEvent;
|
import com.massivecraft.factions.event.FactionRenameEvent;
|
||||||
import com.massivecraft.factions.scoreboards.FTeamWrapper;
|
import com.massivecraft.factions.scoreboards.FTeamWrapper;
|
||||||
@@ -19,8 +20,7 @@ public class CmdTag extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdTag() {
|
public CmdTag() {
|
||||||
this.aliases.add("tag");
|
this.aliases.addAll(Aliases.tag);
|
||||||
this.aliases.add("rename");
|
|
||||||
|
|
||||||
this.requiredArgs.add("faction tag");
|
this.requiredArgs.add("faction tag");
|
||||||
|
|
||||||
@@ -33,59 +33,57 @@ public class CmdTag extends FCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void perform(CommandContext context) {
|
public void perform(CommandContext context) {
|
||||||
FactionsPlugin.getInstance().getServer().getScheduler().runTaskAsynchronously(FactionsPlugin.instance, () -> {
|
|
||||||
|
|
||||||
String tag = context.argAsString(0);
|
String tag = context.argAsString(0);
|
||||||
|
|
||||||
// TODO does not first test cover selfcase?
|
// TODO does not first test cover selfcase?
|
||||||
if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) {
|
if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) {
|
||||||
context.msg(TL.COMMAND_TAG_TAKEN);
|
context.msg(TL.COMMAND_TAG_TAKEN);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayList<String> errors = MiscUtil.validateTag(tag);
|
||||||
|
if (errors.size() > 0) {
|
||||||
|
context.sendMessage(errors);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
||||||
|
if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// trigger the faction rename event (cancellable)
|
||||||
|
FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag);
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(renameEvent);
|
||||||
|
if (renameEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// then make 'em pay (if applicable)
|
||||||
|
if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String oldtag = context.faction.getTag();
|
||||||
|
context.faction.setTag(tag);
|
||||||
|
Discord.changeFactionTag(context.faction, oldtag);
|
||||||
|
FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.FTAG_EDIT, context.fPlayer.getName(), tag);
|
||||||
|
|
||||||
|
|
||||||
|
// Inform
|
||||||
|
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
||||||
|
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
||||||
|
fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction));
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
// Broadcast the tag change (if applicable)
|
||||||
ArrayList<String> errors = MiscUtil.validateTag(tag);
|
if (Conf.broadcastTagChanges) {
|
||||||
if (errors.size() > 0) {
|
Faction faction = fplayer.getFaction();
|
||||||
context.sendMessage(errors);
|
fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay
|
FTeamWrapper.updatePrefixes(context.faction);
|
||||||
if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// trigger the faction rename event (cancellable)
|
|
||||||
FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag);
|
|
||||||
Bukkit.getServer().getPluginManager().callEvent(renameEvent);
|
|
||||||
if (renameEvent.isCancelled()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// then make 'em pay (if applicable)
|
|
||||||
if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String oldtag = context.faction.getTag();
|
|
||||||
context.faction.setTag(tag);
|
|
||||||
Discord.changeFactionTag(context.faction, oldtag);
|
|
||||||
|
|
||||||
// Inform
|
|
||||||
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
|
|
||||||
if (fplayer.getFactionId().equals(context.faction.getId())) {
|
|
||||||
fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Broadcast the tag change (if applicable)
|
|
||||||
if (Conf.broadcastTagChanges) {
|
|
||||||
Faction faction = fplayer.getFaction();
|
|
||||||
fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FTeamWrapper.updatePrefixes(context.faction);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class CmdTitle extends FCommand {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public CmdTitle() {
|
public CmdTitle() {
|
||||||
this.aliases.add("title");
|
this.aliases.addAll(Aliases.title);
|
||||||
this.requiredArgs.add("player name");
|
this.requiredArgs.add("player name");
|
||||||
this.optionalArgs.put("title", "");
|
this.optionalArgs.put("title", "");
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,7 @@ public class CmdToggleAllianceChat extends FCommand {
|
|||||||
|
|
||||||
public CmdToggleAllianceChat() {
|
public CmdToggleAllianceChat() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("tac");
|
this.aliases.addAll(Aliases.toggleAllianceChat);
|
||||||
this.aliases.add("togglealliancechat");
|
|
||||||
this.aliases.add("ac");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_ALLIANCE_CHAT)
|
this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_ALLIANCE_CHAT)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ public class CmdTop extends FCommand {
|
|||||||
|
|
||||||
public CmdTop() {
|
public CmdTop() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("top");
|
this.aliases.addAll(Aliases.top);
|
||||||
this.aliases.add("t");
|
|
||||||
this.requiredArgs.add("criteria");
|
this.requiredArgs.add("criteria");
|
||||||
this.optionalArgs.put("page", "1");
|
this.optionalArgs.put("page", "1");
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
import com.massivecraft.factions.listeners.FactionsBlockListener;
|
import com.massivecraft.factions.listeners.FactionsBlockListener;
|
||||||
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.util.WarmUpUtil;
|
import com.massivecraft.factions.util.WarmUpUtil;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
@@ -15,7 +14,7 @@ public class CmdTpBanner extends FCommand {
|
|||||||
|
|
||||||
public CmdTpBanner() {
|
public CmdTpBanner() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("tpbanner");
|
this.aliases.addAll(Aliases.tpBanner);
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.TPBANNER)
|
this.requirements = new CommandRequirements.Builder(Permission.TPBANNER)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class CmdUnban extends FCommand {
|
|||||||
|
|
||||||
public CmdUnban() {
|
public CmdUnban() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("unban");
|
this.aliases.addAll(Aliases.unban);
|
||||||
this.requiredArgs.add("target");
|
this.requiredArgs.add("target");
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
this.requirements = new CommandRequirements.Builder(Permission.BAN)
|
||||||
@@ -48,7 +48,7 @@ public class CmdUnban extends FCommand {
|
|||||||
context.faction.unban(target);
|
context.faction.unban(target);
|
||||||
|
|
||||||
context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName());
|
context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName());
|
||||||
target.msg(TL.COMMAND_UNBAN_TARGET.toString(), context.faction.getTag(target));
|
target.msg(TL.COMMAND_UNBAN_TARGET, context.faction.getTag(target));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import com.massivecraft.factions.FactionsPlugin;
|
import com.massivecraft.factions.FactionsPlugin;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.zcore.fupgrades.FUpgradesGUI;
|
import com.massivecraft.factions.zcore.fupgrades.FUpgradeFrame;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
|
|
||||||
public class CmdUpgrades extends FCommand {
|
public class CmdUpgrades extends FCommand {
|
||||||
@@ -13,14 +13,12 @@ public class CmdUpgrades extends FCommand {
|
|||||||
|
|
||||||
public CmdUpgrades() {
|
public CmdUpgrades() {
|
||||||
super();
|
super();
|
||||||
this.aliases.add("upgrades");
|
this.aliases.addAll(Aliases.upgrades);
|
||||||
this.aliases.add("upgrade");
|
|
||||||
|
|
||||||
this.requirements = new CommandRequirements.Builder(Permission.UPGRADES)
|
this.requirements = new CommandRequirements.Builder(Permission.UPGRADES)
|
||||||
.playerOnly()
|
.playerOnly()
|
||||||
.memberOnly()
|
.memberOnly()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -29,7 +27,7 @@ public class CmdUpgrades extends FCommand {
|
|||||||
context.fPlayer.msg(TL.COMMAND_UPGRADES_DISABLED);
|
context.fPlayer.msg(TL.COMMAND_UPGRADES_DISABLED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new FUpgradesGUI().openMainMenu(context.fPlayer);
|
new FUpgradeFrame(context.faction).buildGUI(context.fPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user