mirror of
https://github.com/RoinujNosde/SimpleClans.git
synced 2026-11-12 20:12:00 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9fe589794 | ||
|
|
2d0b524557 | ||
|
|
ba66f16f54 | ||
|
|
4d6a489b43 | ||
|
|
92da40ca76 | ||
|
|
f1d0741ac8 | ||
|
|
03b2f73e74 | ||
|
|
2a65295e8b | ||
|
|
a7cb9ed171 | ||
|
|
ac0a387198 | ||
|
|
e3cd7d37a8 | ||
|
|
63595258f4 | ||
|
|
0c866044df | ||
|
|
2217efa8a7 | ||
|
|
df97e43c4d | ||
|
|
169b44e793 | ||
|
|
f2303c5336 |
No files matched your search
@@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>net.sacredlabyrinth.phaed.simpleclans</groupId>
|
||||
<artifactId>SimpleClans</artifactId>
|
||||
<version>2.8.2</version>
|
||||
<version>2.9.2</version>
|
||||
<name>SimpleClans</name>
|
||||
<url>http://dev.bukkit.org/server-mods/simpleclans/</url>
|
||||
|
||||
@@ -54,6 +54,29 @@
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</plugin>
|
||||
|
||||
<!-- Shade plugin -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.bstats.bukkit</pattern>
|
||||
<shadedPattern>net.sacredlabyrinth.phaed.simpleclans.metrics</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<!-- Dependencies -->
|
||||
@@ -75,13 +98,23 @@
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
<artifactId>bstats-bukkit</artifactId>
|
||||
<version>1.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- Repositories -->
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>CodeMC</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>vault-repo</id>
|
||||
<url>https://nexus.hc.to/content/repositories/pub_releases</url>
|
||||
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>paper-repo</id>
|
||||
|
||||
@@ -19,11 +19,23 @@ public class ChatBlock {
|
||||
private final ArrayList<String> columnAlignments = new ArrayList<>();
|
||||
private final LinkedList<String[]> rows = new LinkedList<>();
|
||||
private String color = "";
|
||||
private boolean cropRight = true;
|
||||
private boolean padRight = true;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static final Logger LOG = Logger.getLogger("Minecraft");
|
||||
|
||||
|
||||
public void setCropRight(boolean cropRight) {
|
||||
this.cropRight = cropRight;
|
||||
}
|
||||
|
||||
public void setPadRight(boolean padRight) {
|
||||
this.padRight = padRight;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param columnAlignment
|
||||
*/
|
||||
@@ -182,15 +194,27 @@ public class ChatBlock {
|
||||
}
|
||||
} else if (align.equalsIgnoreCase("l")) {
|
||||
if (msgLength(section) > colsize) {
|
||||
col = cropRightToFit(section, colsize);
|
||||
if (cropRight) {
|
||||
col = cropRightToFit(section, colsize);
|
||||
} else {
|
||||
col = section;
|
||||
}
|
||||
} else if (msgLength(section) < colsize) {
|
||||
col = paddRightToFit(section, colsize);
|
||||
if (padRight) {
|
||||
col = paddRightToFit(section, colsize);
|
||||
} else {
|
||||
col = section;
|
||||
}
|
||||
}
|
||||
} else if (align.equalsIgnoreCase("c")) {
|
||||
if (msgLength(section) > colsize) {
|
||||
col = cropRightToFit(section, colsize);
|
||||
if (cropRight) {
|
||||
col = cropRightToFit(section, colsize);
|
||||
} else {
|
||||
col = section;
|
||||
}
|
||||
} else if (msgLength(section) < colsize) {
|
||||
col = centerInLineOf(section, colsize);
|
||||
col = centerInLineOf(section, colsize);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,9 +277,10 @@ public class ChatBlock {
|
||||
}
|
||||
|
||||
// crop and print out
|
||||
|
||||
String msg = cropRightToFit((prefix_used ? empty_prefix : prefix + " ") + finalString, LINE_LENGTH);
|
||||
|
||||
String msg = (prefix_used ? empty_prefix : prefix + " ") + finalString;
|
||||
if (cropRight) {
|
||||
msg = cropRightToFit(msg, LINE_LENGTH);
|
||||
}
|
||||
if (color.length() > 0) {
|
||||
msg = color + msg;
|
||||
}
|
||||
|
||||
@@ -7,10 +7,12 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public class ChatFormatMigration {
|
||||
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
|
||||
public void migrateClanChat() {
|
||||
SettingsManager sm = plugin.getSettingsManager();
|
||||
FileConfiguration c = sm.getConfig();
|
||||
|
||||
@@ -2,7 +2,6 @@ package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.*;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -51,6 +50,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
private boolean allowWithdraw = false;
|
||||
private boolean allowDeposit = true;
|
||||
private boolean feeEnabled;
|
||||
private List<Rank> ranks = new ArrayList<>();
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -300,26 +300,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
return this.members.contains(player.getUniqueId().toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the player is a member of this clan
|
||||
*
|
||||
* @param playerName
|
||||
* @return confirmation
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isMember(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(playerName);
|
||||
if (PlayerUniqueId != null) {
|
||||
return this.members.contains(PlayerUniqueId.toString());
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return this.members.contains(playerName.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the player is a member of this clan
|
||||
*
|
||||
@@ -469,23 +449,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*
|
||||
* @param playerName
|
||||
*/
|
||||
@Deprecated
|
||||
public void removeMember(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(playerName);
|
||||
if (PlayerUniqueId != null) {
|
||||
this.members.remove(PlayerUniqueId.toString());
|
||||
}
|
||||
} else {
|
||||
this.members.remove(playerName.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*
|
||||
@@ -731,24 +694,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
return isLeader(player.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a player is a leader of a clan
|
||||
*
|
||||
* @param playerName
|
||||
* @return the leaders
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isLeader(String playerName) {
|
||||
if (isMember(playerName)) {
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(playerName.toLowerCase());
|
||||
|
||||
if (cp != null && cp.isLeader()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a player is a leader of a clan
|
||||
@@ -1106,39 +1051,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerJoinedClanEvent(this, cp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a player from a clan
|
||||
*
|
||||
* @param playerName
|
||||
*/
|
||||
@Deprecated
|
||||
public void removePlayerFromClan(String playerName) {
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(playerName);
|
||||
|
||||
// remove clan group-permission
|
||||
SimpleClans.getInstance().getPermissionsManager().removeClanPermissions(cp);
|
||||
|
||||
// remove permissions
|
||||
SimpleClans.getInstance().getPermissionsManager().removeClanPlayerPermissions(cp);
|
||||
|
||||
cp.setClan(null);
|
||||
cp.addPastClan(getColorTag() + (cp.isLeader() ? ChatColor.DARK_RED + "*" : ""));
|
||||
cp.setLeader(false);
|
||||
cp.setTrusted(false);
|
||||
cp.setJoinDate(0);
|
||||
removeMember(playerName);
|
||||
|
||||
SimpleClans.getInstance().getStorageManager().updateClanPlayer(cp);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
|
||||
Player matched = cp.toPlayer();
|
||||
|
||||
if (matched != null) {
|
||||
SimpleClans.getInstance().getClanManager().updateDisplayName(matched);
|
||||
}
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerKickedClanEvent(this, cp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a player from a clan
|
||||
*
|
||||
@@ -1158,6 +1070,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
cp.setLeader(false);
|
||||
cp.setTrusted(false);
|
||||
cp.setJoinDate(0);
|
||||
cp.setRank(null);
|
||||
removeMember(playerUniqueId);
|
||||
|
||||
SimpleClans.getInstance().getStorageManager().updateClanPlayer(cp);
|
||||
@@ -1171,27 +1084,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerKickedClanEvent(this, cp));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Promote a member to a leader of a clan
|
||||
*
|
||||
* @param playerName
|
||||
*/
|
||||
@Deprecated
|
||||
public void promote(String playerName) {
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(playerName);
|
||||
|
||||
cp.setLeader(true);
|
||||
cp.setTrusted(true);
|
||||
|
||||
SimpleClans.getInstance().getStorageManager().updateClanPlayer(cp);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
|
||||
// add clan permission
|
||||
SimpleClans.getInstance().getPermissionsManager().addClanPermissions(cp);
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerPromoteEvent(this, cp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Promote a member to a leader of a clan
|
||||
*
|
||||
@@ -1211,25 +1103,6 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerPromoteEvent(this, cp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Demote a leader back to a member of a clan
|
||||
*
|
||||
* @param playerName
|
||||
*/
|
||||
@Deprecated
|
||||
public void demote(String playerName) {
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(playerName);
|
||||
|
||||
cp.setLeader(false);
|
||||
|
||||
SimpleClans.getInstance().getStorageManager().updateClanPlayer(cp);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
|
||||
// add clan permission
|
||||
SimpleClans.getInstance().getPermissionsManager().addClanPermissions(cp);
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new PlayerDemoteEvent(this, cp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Demote a leader back to a member of a clan
|
||||
*
|
||||
@@ -1894,4 +1767,79 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public void setAllowDeposit(boolean allowDeposit) {
|
||||
this.allowDeposit = allowDeposit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the clan has the specified rank
|
||||
*
|
||||
* @param name the rank
|
||||
* @return
|
||||
*/
|
||||
public boolean hasRank(String name) {
|
||||
return getRank(name) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a rank
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public void createRank(String name) {
|
||||
ranks.add(new Rank(name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the clan's ranks
|
||||
*
|
||||
* @return the ranks
|
||||
*/
|
||||
public List<Rank> getRanks() {
|
||||
return ranks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the clan's ranks
|
||||
*
|
||||
* @param ranks
|
||||
*/
|
||||
public void setRanks(List<Rank> ranks) {
|
||||
if (ranks == null) {
|
||||
ranks = new ArrayList<>();
|
||||
}
|
||||
this.ranks = ranks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a rank with the specified name
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public void deleteRank(String name) {
|
||||
Rank r = getRank(name);
|
||||
if (r != null) {
|
||||
ranks.remove(r);
|
||||
getMembers().forEach(cp -> {
|
||||
if (cp.getRankId().equals(r.getName())) {
|
||||
cp.setRank("");
|
||||
SimpleClans.getInstance().getStorageManager().updateClanPlayer(cp);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a rank with the specified name or null if not found
|
||||
*
|
||||
* @param name the rank name
|
||||
* @return a rank or null
|
||||
*/
|
||||
public Rank getRank(String name) {
|
||||
if (name != null) {
|
||||
for (Rank r : ranks) {
|
||||
if (r.getName().equals(name)) {
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -543,6 +543,9 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
*/
|
||||
public String getLastSeenString()
|
||||
{
|
||||
if (toPlayer() != null) {
|
||||
return SimpleClans.getInstance().getLang("online");
|
||||
}
|
||||
return new java.text.SimpleDateFormat("MMM dd, ''yy h:mm a").format(new Date(this.lastSeen));
|
||||
}
|
||||
|
||||
@@ -977,13 +980,46 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
return useChatShortcut;
|
||||
}
|
||||
|
||||
public String getRankDisplayName() {
|
||||
if (clan != null) {
|
||||
Rank r = clan.getRank(rank);
|
||||
if (r != null) {
|
||||
return r.getDisplayName();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the rank id
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getRankId() {
|
||||
return rank;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the rank displayname
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public String getRank()
|
||||
{
|
||||
return rank;
|
||||
return getRankDisplayName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the rank id
|
||||
*
|
||||
* @param rank the rank id
|
||||
*/
|
||||
public void setRank(String rank)
|
||||
{
|
||||
if (rank == null) {
|
||||
rank = "";
|
||||
}
|
||||
this.rank = rank;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,10 +67,6 @@ public class Dates {
|
||||
return differenceInSeconds(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
private static double differenceInMilliseconds(Timestamp date1, Timestamp date2) {
|
||||
return differenceInMilliseconds(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
|
||||
@@ -5,6 +5,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
@@ -18,6 +19,7 @@ import java.time.LocalTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
|
||||
/**
|
||||
@@ -37,6 +39,71 @@ public class Helper {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a JSON String to a list of Ranks
|
||||
*
|
||||
* @param json
|
||||
* @return a list of ranks or null if the JSON String is null/empty
|
||||
*/
|
||||
public static List<Rank> ranksFromJson(String json) {
|
||||
if (json != null && !json.isEmpty()) {
|
||||
try {
|
||||
JSONObject jo = (JSONObject) new JSONParser().parse(json);
|
||||
Object ranks = jo.get("ranks");
|
||||
if (ranks != null) {
|
||||
JSONArray array = (JSONArray) ranks;
|
||||
List<Rank> rankList = new ArrayList<>();
|
||||
for (Object o : array) {
|
||||
JSONObject r = (JSONObject) o;
|
||||
String name = (String) r.get("name");
|
||||
String displayName = (String) r.get("displayName");
|
||||
Set<String> permissions = new HashSet<>();
|
||||
for (Object p : (JSONArray) r.get("permissions")) {
|
||||
permissions.add((String) p);
|
||||
}
|
||||
Rank rank = new Rank(name, displayName, permissions);
|
||||
rankList.add(rank);
|
||||
}
|
||||
|
||||
return rankList;
|
||||
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a list of Ranks to a JSON String
|
||||
*
|
||||
* @param ranks
|
||||
* @return a JSON String
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static String ranksToJson(List<Rank> ranks) {
|
||||
if (ranks == null)
|
||||
ranks = new ArrayList<Rank>();
|
||||
|
||||
JSONArray array = new JSONArray();
|
||||
for (Rank rank : ranks) {
|
||||
JSONObject o = new JSONObject();
|
||||
o.put("name", rank.getName());
|
||||
o.put("displayName", rank.getDisplayName());
|
||||
JSONArray permArray = new JSONArray();
|
||||
for (String p : rank.getPermissions()) {
|
||||
permArray.add(p);
|
||||
}
|
||||
o.put("permissions", permArray);
|
||||
array.add(o);
|
||||
}
|
||||
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("ranks", array);
|
||||
return object.toJSONString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a resign times map to a JSON String
|
||||
*
|
||||
@@ -73,8 +140,10 @@ public class Helper {
|
||||
* @return the delay in seconds
|
||||
*/
|
||||
public static long getDelayTo(int hour, int minute) {
|
||||
if (hour < 0 || hour > 23) hour = 1;
|
||||
if (minute < 0 || minute > 59) minute = 0;
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime d = LocalDateTime.of(now.toLocalDate(), LocalTime.of(1, 0));
|
||||
LocalDateTime d = LocalDateTime.of(now.toLocalDate(), LocalTime.of(hour, minute));
|
||||
long delay;
|
||||
if (now.isAfter(d)) {
|
||||
delay = now.until(d.plusDays(1), ChronoUnit.SECONDS);
|
||||
@@ -317,6 +386,20 @@ public class Helper {
|
||||
public static String[] toArray(List<String> list) {
|
||||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the Permission values array to a String array
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String[] fromPermissionArray() {
|
||||
RankPermission[] permissions = RankPermission.values();
|
||||
String[] sa = new String[permissions.length];
|
||||
for (int i = 0; i < permissions.length; i++) {
|
||||
sa[i] = permissions[i].toString();
|
||||
}
|
||||
return sa;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes first item from a string array
|
||||
@@ -631,7 +714,7 @@ public class Helper {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isVanished(Player player) {
|
||||
if (player != null && player.hasMetadata("vanished") && !player.getMetadata("vanished").isEmpty()) {
|
||||
return player.getMetadata("vanished").get(0).asBoolean();
|
||||
@@ -639,7 +722,8 @@ public class Helper {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Collection<Player> getOnlinePlayers() {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Collection<Player> getOnlinePlayers() {
|
||||
try {
|
||||
Method method = Bukkit.class.getDeclaredMethod("getOnlinePlayers");
|
||||
Object players = method.invoke(null);
|
||||
@@ -673,7 +757,7 @@ public class Helper {
|
||||
|
||||
String leaderColor = sm.getAllyChatLeaderColor();
|
||||
String memberColor = sm.getAllyChatMemberColor();
|
||||
String rank = cp.getRank().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRank());
|
||||
String rank = cp.getRankId().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRankDisplayName());
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getAllyChatRank()).replace("%rank%", rank) : "";
|
||||
|
||||
String message = replacePlaceholders(sm.getAllyChatFormat(), cp, leaderColor, memberColor, rankFormat, msg);
|
||||
@@ -708,7 +792,7 @@ public class Helper {
|
||||
|
||||
String leaderColor = sm.getClanChatLeaderColor();
|
||||
String memberColor = sm.getClanChatMemberColor();
|
||||
String rank = cp.getRank().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRank());
|
||||
String rank = cp.getRankId().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRankDisplayName());
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getClanChatRank()).replace("%rank%", rank) : "";
|
||||
|
||||
String message = replacePlaceholders(sm.getClanChatFormat(), cp, leaderColor, memberColor, rankFormat, msg);
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
public enum PermissionLevel {
|
||||
LEADER, TRUSTED
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*/
|
||||
public class Rank implements Comparable<Rank> {
|
||||
|
||||
private String name;
|
||||
private String displayName;
|
||||
private Set<String> permissions;
|
||||
|
||||
public Rank(String name) {
|
||||
setName(name);
|
||||
permissions = new HashSet<String>();
|
||||
setDisplayName(displayName);
|
||||
}
|
||||
|
||||
public Rank(String name, String displayName, Set<String> permissions) {
|
||||
setName(name);
|
||||
setDisplayName(displayName);
|
||||
setPermissions(permissions);
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
if (name == null || name.isEmpty()) {
|
||||
throw new IllegalArgumentException("name cannot be null or empty");
|
||||
}
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void setDisplayName(String displayName) {
|
||||
if (displayName == null || displayName.isEmpty()) {
|
||||
displayName = name;
|
||||
}
|
||||
this.displayName = displayName;
|
||||
}
|
||||
|
||||
public void setPermissions(Set<String> permissions) {
|
||||
if (permissions == null) {
|
||||
permissions = new HashSet<String>();
|
||||
}
|
||||
this.permissions = permissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Rank other = (Rank) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rank's permissions
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Set<String> getPermissions() {
|
||||
return permissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rank's display name
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rank's name
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Rank other) {
|
||||
return Integer.compare(permissions.size(), other.permissions.size());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*
|
||||
*/
|
||||
public enum RankPermission {
|
||||
|
||||
ALLY_ADD("simpleclans.leader.ally"), ALLY_CHAT("simpleclans.member.ally"), ALLY_REMOVE("simpleclans.leader.ally"),
|
||||
BANK_BALANCE("simpleclans.member.bank"), BANK_DEPOSIT("simpleclans.member.bank"),
|
||||
BANK_WITHDRAW("simpleclans.member.bank"), BB_ADD("simpleclans.member.bb-add"),
|
||||
BB_CLEAR("simpleclans.leader.bb-clear"), COORDS("simpleclans.member.coords"),
|
||||
FEE_ENABLE("simpleclans.leader.fee"), FEE_SET("simpleclans.leader.fee"),
|
||||
HOME_REGROUP("simpleclans.leader.home-regroup"), HOME_SET("simpleclans.leader.home-set"),
|
||||
HOME_TP("simpleclans.member.home"), INVITE("simpleclans.leader.invite"), KICK("simpleclans.leader.kick"),
|
||||
MODTAG("simpleclans.leader.modtag"), RANK_DISPLAYNAME("simpleclans.leader.rank.setdisplayname"),
|
||||
RANK_LIST("simpleclans.leader.rank.list"), RIVAL_ADD("simpleclans.leader.rival"),
|
||||
RIVAL_REMOVE("simpleclans.leader.rival"), WAR_END("simpleclans.leader.war"), WAR_START("simpleclans.leader.war"),
|
||||
STATS("simpleclans.member.stats"), VITALS("simpleclans.member.vitals"), KILLS("simpleclans.member.kills"),
|
||||
DESCRIPTION("simpleclans.leader.description"), MOSTKILLED("simpleclans.mod.mostkilled");
|
||||
|
||||
private String bukkitPermission;
|
||||
|
||||
private RankPermission(String bukkitPermission) {
|
||||
this.bukkitPermission = bukkitPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Bukkit equivalent to this rank permission
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getBukkitPermission() {
|
||||
return bukkitPermission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().replace("_", ".").toLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if this is a valid rank permission.
|
||||
*
|
||||
* @param permission
|
||||
* @return
|
||||
*/
|
||||
public static boolean isValid(String permission) {
|
||||
for (RankPermission p : values()) {
|
||||
if (p.toString().equalsIgnoreCase(permission)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.AcceptCommandExecutor;
|
||||
@@ -117,11 +118,27 @@ public class SimpleClans extends JavaPlugin {
|
||||
getCommand(getSettingsManager().getCommandGlobal()).setExecutor(new GlobalCommandExecutor());
|
||||
|
||||
getCommand(getSettingsManager().getCommandClan()).setTabCompleter(new PlayerNameTabCompleter());
|
||||
logger.info("[SimpleClans] Online Mode: " + hasUUID); //TODO: Is this necessary?
|
||||
logger.info("[SimpleClans] Modo Multithreading: " + SimpleClans.getInstance().getSettingsManager().getUseThreads());
|
||||
logger.info("[SimpleClans] Modo BungeeCord: " + SimpleClans.getInstance().getSettingsManager().getUseBungeeCord());
|
||||
|
||||
startTasks();
|
||||
startMetrics();
|
||||
}
|
||||
|
||||
private void startMetrics() {
|
||||
Metrics metrics = new Metrics(this, 7131);
|
||||
SettingsManager sm = getSettingsManager();
|
||||
ClanManager cm = getClanManager();
|
||||
metrics.addCustomChart(new Metrics.SingleLineChart("clans", () -> cm.getClans().size()));
|
||||
metrics.addCustomChart(new Metrics.SingleLineChart("clan_players", () -> cm.getAllClanPlayers().size()));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("database", () -> sm.isUseMysql() ? "MySQL" : "SQLite"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("upkeep", () -> sm.isClanUpkeep() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("member_fee", () -> sm.isMemberFee() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("rejoin_cooldown", () -> sm.isRejoinCooldown() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("clan_verification", () -> sm.isRequireVerification() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("money_per_kill", () -> sm.isMoneyPerKill() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("threads", () -> sm.getUseThreads() ? "enabled" : "disabled"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("bungeecord", () -> sm.getUseBungeeCord() ? "enabled" : "disabled"));
|
||||
}
|
||||
|
||||
private void startTasks() {
|
||||
|
||||
@@ -40,12 +40,7 @@ public class AllyCommand {
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.ally"), plugin.getSettingsManager().getCommandClan()));
|
||||
@@ -67,9 +62,14 @@ public class AllyCommand {
|
||||
|
||||
if (!ally.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("cannot.ally.with.an.unverified.clan"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("add"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.ALLY_ADD, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (clan.isAlly(ally.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clans.are.already.allies"));
|
||||
return;
|
||||
@@ -85,6 +85,10 @@ public class AllyCommand {
|
||||
plugin.getRequestManager().addAllyRequest(cp, ally, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("leaders.have.been.asked.for.an.alliance"), Helper.capitalize(ally.getName())));
|
||||
} else if (action.equals(plugin.getLang("remove"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.ALLY_REMOVE, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clan.isAlly(ally.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clans.are.not.allies"));
|
||||
return;
|
||||
|
||||
@@ -38,22 +38,21 @@ public class BanCommand {
|
||||
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (uuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(uuid)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.already.banned"));
|
||||
return;
|
||||
}
|
||||
|
||||
Player pl = SimpleClans.getInstance().getServer().getPlayer(uuid);
|
||||
plugin.getClanManager().ban(uuid);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.added.to.banned.list"));
|
||||
|
||||
Player pl = SimpleClans.getInstance().getServer().getPlayer(uuid);
|
||||
if (pl != null) {
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + plugin.getLang("you.banned"));
|
||||
}
|
||||
|
||||
plugin.getClanManager().ban(uuid);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.added.to.banned.list"));
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -47,34 +49,39 @@ public class BankCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length == 1) {
|
||||
if (arg[0].equalsIgnoreCase("status")) {
|
||||
player.sendMessage(ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.balance"), clanbalance));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BANK_BALANCE, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
player.sendMessage(ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.balance"), clanbalance));
|
||||
}
|
||||
} else if (arg.length == 2) {
|
||||
if (arg[1].matches("[0-9]+")) {
|
||||
money = Double.parseDouble(arg[1]);
|
||||
}
|
||||
if (arg[0].equalsIgnoreCase("deposit")) {
|
||||
if (!cp.getClan().isLeader(player) && !clan.isAllowDeposit()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!clan.isAllowDeposit()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("deposit.not.allowed"));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BANK_DEPOSIT, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (arg[1].equalsIgnoreCase("all")) {
|
||||
clan.deposit(plmoney, player);
|
||||
} else {
|
||||
clan.deposit(money, player);
|
||||
}
|
||||
} else if (arg[0].equalsIgnoreCase("withdraw")) {
|
||||
if (!cp.getClan().isLeader(player) && !clan.isAllowWithdraw()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!clan.isAllowWithdraw()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("withdraw.not.allowed"));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BANK_WITHDRAW, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (arg[1].equalsIgnoreCase("all")) {
|
||||
clan.withdraw(clanbalance, player);
|
||||
} else {
|
||||
|
||||
@@ -45,12 +45,7 @@ public class BbCommand {
|
||||
}
|
||||
|
||||
if (arg.length == 1 && arg[0].equalsIgnoreCase("clear")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.bb-clear")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted() || !cp.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BB_CLEAR, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
cp.getClan().clearBb();
|
||||
@@ -58,13 +53,7 @@ public class BbCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.bb-add")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BB_ADD, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,10 +47,10 @@ public class CoordsCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.coords"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.COORDS, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.coords"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
|
||||
+4
-3
@@ -9,6 +9,8 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
|
||||
@@ -41,9 +43,8 @@ public class DescriptionCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.DESCRIPTION, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length < 1) {
|
||||
|
||||
@@ -4,6 +4,8 @@ import java.text.MessageFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -23,9 +25,10 @@ public class FeeCommand {
|
||||
public void execute(Player player, String[] args) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
if (!plugin.getSettingsManager().isMemberFee()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("disabled.command"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (args.length >= 1) {
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
Clan clan = cp.getClan();
|
||||
@@ -48,8 +51,7 @@ public class FeeCommand {
|
||||
return;
|
||||
}
|
||||
if (args.length == 2 && args[0].equalsIgnoreCase("set")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.fee")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.FEE_SET, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!cp.isLeader()) {
|
||||
|
||||
@@ -4,7 +4,6 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
|
||||
@@ -82,14 +82,9 @@ public class HomeCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.vitals"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.home")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.HOME_TP, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -107,12 +102,7 @@ public class HomeCommand {
|
||||
}
|
||||
|
||||
if (arg[0].equalsIgnoreCase("set")) {
|
||||
if (!cp.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().isHomebaseSetOnce() && clan.getHomeLocation() != null && !plugin.getPermissionsManager().has(player, "simpleclans.mod.home")) {
|
||||
@@ -133,12 +123,7 @@ public class HomeCommand {
|
||||
}
|
||||
|
||||
if (arg[0].equalsIgnoreCase("clear")) {
|
||||
if (!cp.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().isHomebaseSetOnce() && clan.getHomeLocation() != null && !plugin.getPermissionsManager().has(player, "simpleclans.mod.home")) {
|
||||
@@ -156,20 +141,18 @@ public class HomeCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.HOME_REGROUP, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Location loc;
|
||||
if (arg.length >= 2 && arg[1].equalsIgnoreCase("me")) {
|
||||
loc = player.getLocation();
|
||||
} else {
|
||||
loc = cp.getClan().getHomeLocation();
|
||||
}
|
||||
|
||||
if (!cp.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.home-regroup")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
}
|
||||
|
||||
|
||||
HomeRegroupEvent homeRegroupEvent = new HomeRegroupEvent(clan, cp, clan.getOnlineMembers(), loc);
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(homeRegroupEvent);
|
||||
|
||||
@@ -200,10 +183,7 @@ public class HomeCommand {
|
||||
|
||||
plugin.getTeleportManager().addPlayer(player, new Location(loc.getWorld(), x + .5, loc.getBlockY(), z + .5), clan.getName());
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("hombase.set") + ChatColor.YELLOW + Helper.toLocationString(loc));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
/**
|
||||
@@ -43,15 +45,15 @@ public class InviteCommand {
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.INVITE, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.invite.player"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Player invited = Helper.getPlayer(arg[0]);
|
||||
|
||||
if (invited == null) {
|
||||
|
||||
@@ -4,6 +4,8 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -43,10 +45,10 @@ public class KickCommand {
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.KICK, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.kick.player"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
|
||||
@@ -45,9 +45,8 @@ public class KillsCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String polledPlayerName = player.getName();
|
||||
|
||||
@@ -72,7 +72,7 @@ public class LookupCommand {
|
||||
}
|
||||
|
||||
String status = targetClan == null ? ChatColor.WHITE + plugin.getLang("free.agent") : (targetCp.isLeader() ? plugin.getSettingsManager().getPageLeaderColor() + plugin.getLang("leader") : (targetCp.isTrusted() ? plugin.getSettingsManager().getPageTrustedColor() + plugin.getLang("trusted") : plugin.getSettingsManager().getPageUnTrustedColor() + plugin.getLang("untrusted")));
|
||||
String rank = ChatColor.WHITE + "" + Helper.parseColors(targetCp.getRank());
|
||||
String rank = ChatColor.WHITE + "" + Helper.parseColors(targetCp.getRankDisplayName());
|
||||
String joinDate = ChatColor.WHITE + "" + targetCp.getJoinDateString();
|
||||
String lastSeen = ChatColor.WHITE + "" + targetCp.getLastSeenString();
|
||||
String inactive = ChatColor.WHITE + "" + targetCp.getInactiveDays() + subColor + "/" + ChatColor.WHITE + plugin.getSettingsManager().getPurgePlayers() + " days";
|
||||
|
||||
@@ -33,13 +33,14 @@ public class MenuCommand {
|
||||
Clan clan = cp == null ? null : cp.getClan();
|
||||
|
||||
boolean isLeader = cp != null && cp.isLeader();
|
||||
boolean isTrusted = cp != null && cp.isTrusted();
|
||||
boolean isVerified = clan != null && clan.isVerified();
|
||||
boolean isNonVerified = clan != null && !clan.isVerified();
|
||||
|
||||
String clanCommand = plugin.getSettingsManager().getCommandClan();
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
chatBlock.setCropRight(false);
|
||||
chatBlock.setPadRight(false);
|
||||
|
||||
if (clan == null && plugin.getPermissionsManager().has(player, "simpleclans.leader.create")) {
|
||||
if (plugin.getSettingsManager().isePurchaseCreation()) {
|
||||
@@ -81,46 +82,49 @@ public class MenuCommand {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.roster")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.roster.tag.1.view.a.clan.s.member.list"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.vitals")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.VITALS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.vitals.1.view.your.clan.member.s.vitals"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.coords")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.COORDS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.coords.1.view.your.clan.member.s.coordinates"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.stats")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.STATS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.stats.1.view.your.clan.member.s.stats"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.kills"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.killsplayer"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.fee-check")) {
|
||||
if (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.fee-check")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.fee.check"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.fee")) {
|
||||
if (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, RankPermission.FEE_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.fee.set"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.ally")) {
|
||||
if (isVerified && (plugin.getPermissionsManager().has(player, RankPermission.ALLY_ADD, PermissionLevel.LEADER, false)
|
||||
|| plugin.getPermissionsManager().has(player, RankPermission.ALLY_REMOVE, PermissionLevel.LEADER, false))) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.ally.add.remove.tag.1.add.remove.an.ally.clan"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rival")) {
|
||||
if (isVerified && (plugin.getPermissionsManager().has(player, RankPermission.RIVAL_ADD, PermissionLevel.LEADER, false)
|
||||
|| plugin.getPermissionsManager().has(player, RankPermission.RIVAL_REMOVE, PermissionLevel.LEADER, false))) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rival.add.remove.tag.1.add.remove.a.rival.clan"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.home")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_TP, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-menu"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-set-menu"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-clear-menu"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-regroup")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_REGROUP, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-regroup-menu"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.war")) {
|
||||
if (isVerified && (plugin.getPermissionsManager().has(player, RankPermission.WAR_END, PermissionLevel.LEADER, false)
|
||||
|| plugin.getPermissionsManager().has(player, RankPermission.WAR_START, PermissionLevel.LEADER, false))) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.war"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.resetkdr")) {
|
||||
@@ -129,27 +133,27 @@ public class MenuCommand {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.bb")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.bb.1.display.bulletin.board"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.bb-add")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.BB_ADD, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.bb.msg.1.add.a.message.to.the.bulletin.board"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.modtag")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.MODTAG, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.modtag.tag.1.modify.the.clan.s.tag"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.description")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.DESCRIPTION, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.description.description.1.modify.the.clan.s.description"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
|
||||
String toggles = "";
|
||||
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.bb-toggle")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.bb-toggle")) {
|
||||
toggles += "bb/";
|
||||
}
|
||||
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.tag-toggle")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.tag-toggle")) {
|
||||
toggles += "tag/";
|
||||
}
|
||||
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.fee")) {
|
||||
if (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, RankPermission.FEE_ENABLE, PermissionLevel.LEADER, false)) {
|
||||
toggles += "fee/";
|
||||
}
|
||||
|
||||
@@ -157,21 +161,48 @@ public class MenuCommand {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.toggle.command"), clanCommand, ChatColor.WHITE, Helper.stripTrailing(toggles, "/")));
|
||||
}
|
||||
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.invite")) {
|
||||
if (plugin.getPermissionsManager().has(player, RankPermission.INVITE, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.invite.player.1.invite.a.player"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.kick")) {
|
||||
if (plugin.getPermissionsManager().has(player, RankPermission.KICK, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.kick.player.1.kick.a.player.from.the.clan"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.setrank")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.trust.setrank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.settrust")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.trust.untrust.player.1.set.trust.level1"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.settrust")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.trust.untrust.player.1.set.trust.level2"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.create")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.create.rank.1.create.rank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.assign")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.assign.rank.player.1.assign.rank.to.player"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.unassign")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.unassign.player.1.unassign.player.from.rank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.delete")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.delete.rank.1.delete.rank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.RANK_LIST, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.list.1.list.ranks"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.RANK_DISPLAYNAME, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.setdisplayname.rank.displayname.1.set.rank.displayname"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.available")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.permissions.1.list.available.permissions"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.list")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.permissions.rank.1.list.rank.permissions"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.add")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.permissions.rank.add.permission.1.add.a.permission.to.rank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.remove")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rank.permissions.rank.remove.permission.1.remove.a.permission.from.rank"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.promote")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.promote.member.1.promote.a.member.to.leader"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
@@ -201,7 +232,7 @@ public class MenuCommand {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.place")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.place"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.mod.mostkilled")) {
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.MOSTKILLED, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.mostkilled"), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.disband")) {
|
||||
|
||||
@@ -4,6 +4,8 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -44,10 +46,10 @@ public class ModtagCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.MODTAG, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.modtag.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("example.clan.modtag.4kfo.4l"));
|
||||
|
||||
@@ -46,9 +46,8 @@ public class MostKilledCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.MOSTKILLED, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
plugin.getStorageManager().getMostKilled(new DataCallback<Map<String, Integer>>() {
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Rank;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*/
|
||||
public class RankCommand {
|
||||
private SimpleClans plugin;
|
||||
private Player player;
|
||||
private ClanPlayer clanPlayer;
|
||||
private Clan clan;
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] args) {
|
||||
this.player = player;
|
||||
plugin = SimpleClans.getInstance();
|
||||
ClanManager clanManager = plugin.getClanManager();
|
||||
|
||||
clanPlayer = clanManager.getClanPlayer(player);
|
||||
if (clanPlayer == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
return;
|
||||
}
|
||||
|
||||
clan = clanPlayer.getClan();
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clanPlayer.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length > 0) {
|
||||
String subCommand = args[0].toLowerCase();
|
||||
args = Helper.removeFirst(args);
|
||||
|
||||
switch (subCommand) {
|
||||
case "assign":
|
||||
assignRank(args);
|
||||
return;
|
||||
case "unassign":
|
||||
unassign(args);
|
||||
return;
|
||||
case "create":
|
||||
createRank(args);
|
||||
return;
|
||||
case "list":
|
||||
listRanks();
|
||||
return;
|
||||
case "delete":
|
||||
deleteRank(args);
|
||||
return;
|
||||
case "permissions":
|
||||
permissions(args);
|
||||
return;
|
||||
case "setdisplayname":
|
||||
setDisplayName(args);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
private void assignRank(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.assign")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (args.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.assign"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(args[0]);
|
||||
if (uuid == null || (!clan.isMember(uuid) && !clan.isLeader(uuid))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
String rank = args[1].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("rank.0.does.not.exist"));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpTarget = plugin.getClanManager().getClanPlayer(uuid);
|
||||
cpTarget.setRank(rank);
|
||||
plugin.getStorageManager().updateClanPlayer(cpTarget);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.rank.changed"));
|
||||
}
|
||||
|
||||
private void unassign(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.unassign")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (args.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.unassign"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(args[0]);
|
||||
if (uuid == null || (!clan.isMember(uuid) && !clan.isLeader(uuid))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpTarget = plugin.getClanManager().getClanPlayer(uuid);
|
||||
cpTarget.setRank(null);
|
||||
plugin.getStorageManager().updateClanPlayer(cpTarget);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.unassigned.from.rank"));
|
||||
}
|
||||
|
||||
private void createRank(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.create")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (args.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.create"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String rank = args[0].toLowerCase();
|
||||
if (clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("rank.already.exists"));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.createRank(rank);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("rank.created"));
|
||||
}
|
||||
|
||||
private void listRanks() {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.list")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
List<Rank> ranks = clan.getRanks();
|
||||
|
||||
if (ranks.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.ranks"));
|
||||
return;
|
||||
}
|
||||
|
||||
ranks.sort(Comparator.reverseOrder());
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("clans.ranks"));
|
||||
int count = 1;
|
||||
for (Rank rank : ranks) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("ranks.list.item"), count, Helper.parseColors(rank.getDisplayName()) + ChatColor.AQUA, rank.getName()));
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteRank(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.delete")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (args.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.delete"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
String rank = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("rank.0.does.not.exist"));
|
||||
return;
|
||||
}
|
||||
clan.deleteRank(rank);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("rank.0.deleted"), rank));
|
||||
}
|
||||
|
||||
private void setDisplayName(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.setdisplayname")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (args.length < 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.setdisplayname"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String rankName = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rankName)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("rank.0.does.not.exist"), rankName));
|
||||
return;
|
||||
}
|
||||
Rank rank = clan.getRank(rankName);
|
||||
String dn = Helper.toMessage(Helper.removeFirst(args));
|
||||
if (dn.contains("&") && !plugin.getPermissionsManager().has(player, "simpleclans.leader.coloredrank")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.set.colored.ranks"));
|
||||
return;
|
||||
}
|
||||
rank.setDisplayName(dn);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("rank.displayname.updated"));
|
||||
}
|
||||
|
||||
private void permissions(String[] args) {
|
||||
String validPermissionsToMessage = Helper.toMessage(Helper.fromPermissionArray(), ",");
|
||||
if (args.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.available")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("available.rank.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + validPermissionsToMessage);
|
||||
return;
|
||||
}
|
||||
if (args.length > 0) {
|
||||
String rank = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("rank.0.does.not.exist"), rank));
|
||||
return;
|
||||
}
|
||||
Set<String> permissions = clan.getRank(rank).getPermissions();
|
||||
|
||||
if (args.length == 1) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.list")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (permissions.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("rank.no.permissions"));
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("rank.0.permissions"), rank));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + Helper.toMessage(permissions.toArray(new String[0]), ","));
|
||||
return;
|
||||
}
|
||||
if (args.length == 3) {
|
||||
String subCommand = args[1].toLowerCase();
|
||||
String permission = args[2].toLowerCase();
|
||||
|
||||
boolean changed = false;
|
||||
|
||||
switch (subCommand) {
|
||||
case "add":
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.add")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (!RankPermission.isValid(permission)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("invalid.permission"), permission, validPermissionsToMessage));
|
||||
return;
|
||||
}
|
||||
permissions.add(permission);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("permission.0.added.to.rank.1"), permission, rank));
|
||||
changed = true;
|
||||
break;
|
||||
case "remove":
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.remove")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
permissions.remove(permission);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("permission.0.removed.from.rank.1"), permission, rank));
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.permissions"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -44,10 +44,6 @@ public class RivalCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clan.cannot.create.rivals"));
|
||||
return;
|
||||
}
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.rival"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
@@ -81,6 +77,9 @@ public class RivalCommand {
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("add"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.RIVAL_ADD, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!clan.reachedRivalLimit()) {
|
||||
if (!clan.isRival(rival.getTag())) {
|
||||
clan.addRival(rival);
|
||||
@@ -96,6 +95,9 @@ public class RivalCommand {
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("remove"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.RIVAL_REMOVE, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (clan.isRival(rival.getTag())) {
|
||||
plugin.getRequestManager().addRivalryBreakRequest(cp, rival, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("leaders.asked.to.end.rivalry"), Helper.capitalize(rival.getName())));
|
||||
|
||||
@@ -80,7 +80,7 @@ public class RosterCommand {
|
||||
String name = plugin.getSettingsManager().getPageLeaderColor() + cp.getName();
|
||||
String lastSeen = p != null && p.isOnline() && !Helper.isVanished(p) ? ChatColor.GREEN + plugin.getLang("online") : ChatColor.WHITE + cp.getLastSeenDaysString();
|
||||
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRank()) + ChatColor.RESET, lastSeen);
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRankDisplayName()) + ChatColor.RESET, lastSeen);
|
||||
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public class RosterCommand {
|
||||
String name = (cp.isTrusted() ? plugin.getSettingsManager().getPageTrustedColor() : plugin.getSettingsManager().getPageUnTrustedColor()) + cp.getName();
|
||||
String lastSeen = p != null && p.isOnline() && !Helper.isVanished(p) ? ChatColor.GREEN + plugin.getLang("online") : ChatColor.WHITE + cp.getLastSeenDaysString();
|
||||
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRank()) + ChatColor.RESET, lastSeen);
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRankDisplayName()) + ChatColor.RESET, lastSeen);
|
||||
}
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
public class SetRankCommand {
|
||||
public SetRankCommand() {
|
||||
@@ -22,46 +20,12 @@ public class SetRankCommand {
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.setrank")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
if (arg.length < 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.setrank"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
String rank = Helper.toMessage(Helper.removeFirst(arg));
|
||||
|
||||
if (uuid == null || (!clan.isMember(uuid) && !clan.isLeader(uuid))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpm = plugin.getClanManager().getClanPlayer(uuid);
|
||||
cpm.setRank(rank);
|
||||
plugin.getStorageManager().updateClanPlayer(cpm);
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.rank.changed"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.create"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.assign"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rank.setdisplayname"),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,9 +46,8 @@ public class StatsCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.STATS, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 0) {
|
||||
|
||||
@@ -3,6 +3,8 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -115,23 +117,19 @@ public class ToggleCommand {
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("fee") && plugin.getPermissionsManager().has(player, "simpleclans.leader.fee")) {
|
||||
if (cmd.equalsIgnoreCase("fee") && plugin.getPermissionsManager().has(player, RankPermission.FEE_ENABLE, PermissionLevel.LEADER, true)) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isLeader(player)) {
|
||||
if (clan.isMemberFeeEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("feeoff"));
|
||||
clan.setMemberFeeEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("feeon"));
|
||||
clan.setMemberFeeEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanAsync(clan);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
}
|
||||
if (clan.isMemberFeeEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("feeoff"));
|
||||
clan.setMemberFeeEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("feeon"));
|
||||
clan.setMemberFeeEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanAsync(clan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.bukkit.entity.Player;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -43,10 +42,11 @@ public class VitalsCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.vitals"));
|
||||
return;
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.VITALS, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.vitals"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
|
||||
@@ -41,10 +41,6 @@ public class WarCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
return;
|
||||
}
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.war"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
@@ -63,6 +59,9 @@ public class WarCommand {
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("start"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.WAR_START, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!clan.isWarring(war.getTag())) {
|
||||
List<ClanPlayer> onlineLeaders = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
|
||||
@@ -79,6 +78,9 @@ public class WarCommand {
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("end"))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.WAR_END, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (clan.isWarring(war.getTag())) {
|
||||
plugin.getRequestManager().addWarEndRequest(cp, war, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("leaders.asked.to.end.rivalry"), Helper.capitalize(war.getName())));
|
||||
|
||||
@@ -10,7 +10,6 @@ import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import static org.bukkit.conversations.Prompt.END_OF_CONVERSATION;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
+3
-4
@@ -1,9 +1,9 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -25,8 +25,7 @@ public class AllyCommandExecutor implements CommandExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.ally")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.ALLY_CHAT, PermissionLevel.TRUSTED, true)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
private final ResetKDRCommand resetKDRCommand;
|
||||
private final PurgeCommand purgeCommand;
|
||||
private final DescriptionCommand descriptionCommand;
|
||||
private final RankCommand rankCommand;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -105,6 +106,7 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
feeCommand = new FeeCommand();
|
||||
purgeCommand = new PurgeCommand();
|
||||
descriptionCommand = new DescriptionCommand();
|
||||
rankCommand = new RankCommand();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -126,6 +128,7 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
menuCommand.execute(player);
|
||||
} else {
|
||||
String subcommand = args[0];
|
||||
// TODO if
|
||||
String[] subargs = Helper.removeFirst(args);
|
||||
|
||||
if (subcommand.equalsIgnoreCase(plugin.getLang("create.command"))) {
|
||||
@@ -212,6 +215,8 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
purgeCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("description.command")) || subcommand.equalsIgnoreCase("description")) {
|
||||
descriptionCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("rank.command")) || subcommand.equalsIgnoreCase("rank")) {
|
||||
rankCommand.execute(player, subargs);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("does.not.match"));
|
||||
}
|
||||
|
||||
@@ -156,10 +156,9 @@ public class SCPlayerListener implements Listener {
|
||||
String message = event.getMessage();
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(event.getPlayer());
|
||||
|
||||
if (cp != null) {
|
||||
if (cp != null && !event.isCancelled()) {
|
||||
if (cp.getChannel().equals(ClanPlayer.Channel.CLAN)) {
|
||||
event.setCancelled(true);
|
||||
//TODO: Document this permission
|
||||
if (!plugin.getPermissionsManager().has(cp.toPlayer(), "simpleclans.member.chat")) {
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
@@ -181,8 +180,8 @@ public class SCPlayerListener implements Listener {
|
||||
boolean isClanChat = event.getMessage().contains("" + ChatColor.RED + ChatColor.WHITE + ChatColor.RED + ChatColor.BLACK);
|
||||
boolean isAllyChat = event.getMessage().contains("" + ChatColor.AQUA + ChatColor.WHITE + ChatColor.AQUA + ChatColor.BLACK);
|
||||
|
||||
for (Iterator iter = event.getRecipients().iterator(); iter.hasNext();) {
|
||||
Player player = (Player) iter.next();
|
||||
for (Iterator<Player> iter = event.getRecipients().iterator(); iter.hasNext();) {
|
||||
Player player = iter.next();
|
||||
|
||||
ClanPlayer rcp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
|
||||
@@ -221,23 +221,6 @@ public final class ClanManager {
|
||||
return clans.get(Helper.cleanTag(tag));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a player's clan
|
||||
*
|
||||
* @param playerName
|
||||
* @return null if not in a clan
|
||||
*/
|
||||
@Deprecated
|
||||
public Clan getClanByPlayerName(String playerName) {
|
||||
ClanPlayer cp = getClanPlayer(playerName);
|
||||
|
||||
if (cp != null) {
|
||||
return cp.getClan();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a player's clan
|
||||
*
|
||||
@@ -304,33 +287,6 @@ public final class ClanManager {
|
||||
return getClanPlayer((OfflinePlayer) player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer data object if a player is currently in a clan, null
|
||||
* if he's not in a clan
|
||||
*
|
||||
* @param playerName
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public ClanPlayer getClanPlayer(String playerName) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = getClanPlayerName(playerName);
|
||||
} else {
|
||||
cp = clanPlayers.get(playerName.toLowerCase());
|
||||
}
|
||||
|
||||
if (cp == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (cp.getClan() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return cp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer data object if a player is currently in a clan, null
|
||||
* if he's not in a clan
|
||||
@@ -379,24 +335,6 @@ public final class ClanManager {
|
||||
return cp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer data object for the player, will retrieve disabled
|
||||
* clan players as well, these are players who used to be in a clan but are
|
||||
* not currently in one, their data file persists and can be accessed. their
|
||||
* clan will be null though.
|
||||
*
|
||||
* @param playerName
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public ClanPlayer getAnyClanPlayer(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return getClanPlayerName(playerName);
|
||||
} else {
|
||||
return clanPlayers.get(playerName.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer data object for the player, will retrieve disabled
|
||||
* clan players as well, these are players who used to be in a clan but are
|
||||
@@ -410,26 +348,6 @@ public final class ClanManager {
|
||||
return clanPlayers.get(playerUniqueId.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer object for the player, creates one if not found
|
||||
*
|
||||
* @param playerName
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public ClanPlayer getCreateClanPlayer(String playerName) {
|
||||
if (clanPlayers.containsKey(playerName.toLowerCase())) {
|
||||
return clanPlayers.get(playerName.toLowerCase());
|
||||
}
|
||||
|
||||
ClanPlayer cp = new ClanPlayer(playerName);
|
||||
|
||||
plugin.getStorageManager().insertClanPlayer(cp);
|
||||
importClanPlayer(cp);
|
||||
|
||||
return cp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer object for the player, creates one if not found
|
||||
*
|
||||
@@ -497,11 +415,11 @@ public final class ClanManager {
|
||||
|
||||
if (plugin.getSettingsManager().isChatTags()) {
|
||||
String prefix = plugin.getPermissionsManager().getPrefix(player);
|
||||
String suffix = plugin.getPermissionsManager().getSuffix(player);
|
||||
//String suffix = plugin.getPermissionsManager().getSuffix(player);
|
||||
String lastColor = plugin.getSettingsManager().isUseColorCodeFromPrefix() ? Helper.getLastColorCode(prefix) : ChatColor.WHITE + "";
|
||||
String fullName = player.getName();
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(player.getName());
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
|
||||
if (cp == null) {
|
||||
return;
|
||||
@@ -527,7 +445,7 @@ public final class ClanManager {
|
||||
* @param player
|
||||
*/
|
||||
public void updateLastSeen(Player player) {
|
||||
ClanPlayer cp = getAnyClanPlayer(player.getName());
|
||||
ClanPlayer cp = getAnyClanPlayer(player.getUniqueId());
|
||||
|
||||
if (cp != null) {
|
||||
cp.updateLastSeen();
|
||||
@@ -541,8 +459,7 @@ public final class ClanManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Bans a player from clan commands
|
||||
*
|
||||
@@ -550,7 +467,10 @@ public final class ClanManager {
|
||||
*/
|
||||
public void ban(UUID uuid) {
|
||||
ClanPlayer cp = getClanPlayer(uuid);
|
||||
Clan clan = cp.getClan();
|
||||
Clan clan = null;
|
||||
if (cp != null) {
|
||||
clan = cp.getClan();
|
||||
}
|
||||
|
||||
if (clan != null) {
|
||||
if (clan.getSize() == 1) {
|
||||
@@ -569,32 +489,6 @@ public final class ClanManager {
|
||||
|
||||
plugin.getSettingsManager().addBanned(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param playerName
|
||||
*/
|
||||
@Deprecated
|
||||
public void ban(String playerName) {
|
||||
ClanPlayer cp = getClanPlayer(playerName);
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan != null) {
|
||||
if (clan.getSize() == 1) {
|
||||
clan.disband();
|
||||
} else {
|
||||
cp.setClan(null);
|
||||
cp.addPastClan(clan.getColorTag() + (cp.isLeader() ? ChatColor.DARK_RED + "*" : ""));
|
||||
cp.setLeader(false);
|
||||
cp.setJoinDate(0);
|
||||
clan.removeMember(playerName);
|
||||
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
}
|
||||
}
|
||||
|
||||
plugin.getSettingsManager().addBanned(playerName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a count of rivable clans
|
||||
|
||||
+64
-3
@@ -3,17 +3,23 @@ package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
import net.milkbowl.vault.chat.Chat;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.permissions.PermissionAttachment;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
/**
|
||||
@@ -51,7 +57,7 @@ public final class PermissionsManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether exonomy plugin exists and is enabled
|
||||
* Whether economy plugin exists and is enabled
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@@ -71,7 +77,7 @@ public final class PermissionsManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the permissions for earch clan from the config
|
||||
* Saves the permissions for each clan from the config
|
||||
*/
|
||||
public void savePermissions() {
|
||||
for (Clan clan : plugin.getClanManager().getClans()) {
|
||||
@@ -79,11 +85,12 @@ public final class PermissionsManager {
|
||||
SimpleClans.getInstance().getSettingsManager().getConfig().set("permissions." + clan.getTag(), getPermissions(clan));
|
||||
}
|
||||
}
|
||||
SimpleClans.getInstance().getSettingsManager().load();
|
||||
SimpleClans.getInstance().getSettingsManager().save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds all pemrissions for a clan
|
||||
* Adds all permissions for a clan
|
||||
*
|
||||
* @param clan
|
||||
*/
|
||||
@@ -281,6 +288,60 @@ public final class PermissionsManager {
|
||||
return player.hasPermission(perm);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the player has the rank permission or the permission level, and the equivalent Bukkit permission
|
||||
*
|
||||
* @param player the player
|
||||
* @param permission the rank permission
|
||||
* @param notify notify the player if they don't have permission
|
||||
* @return
|
||||
*/
|
||||
public boolean has(Player player, RankPermission permission, PermissionLevel level, boolean notify) {
|
||||
if (player == null || permission == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ClanPlayer clanPlayer = plugin.getClanManager().getClanPlayer(player);
|
||||
if (clanPlayer == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean hasBukkitPermission = has(player, permission.getBukkitPermission());
|
||||
if (!hasBukkitPermission) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean hasLevel = false;
|
||||
if (level != null) {
|
||||
switch (level) {
|
||||
case LEADER:
|
||||
hasLevel = clanPlayer.isLeader();
|
||||
break;
|
||||
case TRUSTED:
|
||||
hasLevel = clanPlayer.isTrusted();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
boolean hasRankPermission = false;
|
||||
String rankName = clanPlayer.getRankId();
|
||||
Clan clan = clanPlayer.getClan();
|
||||
if (clan.hasRank(rankName)) {
|
||||
hasRankPermission = clan.getRank(rankName).getPermissions().contains(permission.toString());
|
||||
} else {
|
||||
if (rankName != null && !rankName.isEmpty()) {
|
||||
clanPlayer.setRank(null);
|
||||
}
|
||||
}
|
||||
|
||||
if (notify && !hasLevel && !hasRankPermission) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("you.must.be.0.or.have.the.permission.1.to.use.this"),
|
||||
level == PermissionLevel.LEADER ? plugin.getLang("leader") : plugin.getLang("trusted"), permission.toString()));
|
||||
}
|
||||
|
||||
return hasLevel || hasRankPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the player permissions linked to a clan
|
||||
|
||||
@@ -46,7 +46,7 @@ public final class RequestManager {
|
||||
public void addDemoteRequest(ClanPlayer requester, String demotedName, Clan clan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("asking.for.the.demotion"), Helper.capitalize(requester.getName()), demotedName);
|
||||
|
||||
ClanPlayer demotedTp = plugin.getClanManager().getClanPlayer(demotedName.toLowerCase());
|
||||
ClanPlayer demotedTp = plugin.getClanManager().getClanPlayer(UUIDMigration.getForcedPlayerUUID(demotedName));
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
acceptors.remove(demotedTp);
|
||||
@@ -334,7 +334,7 @@ public final class RequestManager {
|
||||
String demoted = req.getTarget();
|
||||
UUID demotedUniqueId = UUIDMigration.getForcedPlayerUUID(demoted);
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID() && demotedUniqueId != null) {
|
||||
if (demotedUniqueId == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ public final class RequestManager {
|
||||
String promoted = req.getTarget();
|
||||
UUID promotedUniqueId = UUIDMigration.getForcedPlayerUUID(promoted);
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID() && promotedUniqueId == null) {
|
||||
if (promotedUniqueId == null) {
|
||||
return;
|
||||
}
|
||||
if (denies.isEmpty()) {
|
||||
@@ -403,9 +403,10 @@ public final class RequestManager {
|
||||
* Starts the task that asks for the votes of all requests
|
||||
*/
|
||||
public void askerTask() {
|
||||
plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new BukkitRunnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
for (Iterator<Map.Entry<String, Request>> iter = requests.entrySet().iterator(); iter.hasNext(); ) {
|
||||
Request req = iter.next().getValue();
|
||||
|
||||
@@ -418,10 +419,9 @@ public final class RequestManager {
|
||||
}
|
||||
|
||||
ask(req);
|
||||
req.incrementAskCount();
|
||||
}
|
||||
}
|
||||
}, 0, plugin.getSettingsManager().getRequestFreqencySecs() * 20L);
|
||||
req.incrementAskCount();
|
||||
}
|
||||
}}.runTaskTimerAsynchronously(plugin, 0, plugin.getSettingsManager().getRequestFreqencySecs() * 20L);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public final class SettingsManager {
|
||||
private boolean onlineMode;
|
||||
private boolean disableMessages;
|
||||
private String clanChatRankColor;
|
||||
private boolean tagBasedClanChat;
|
||||
@@ -146,6 +144,12 @@ public final class SettingsManager {
|
||||
private String clanChatBracketColor;
|
||||
private String clanChatPlayerBracketLeft;
|
||||
private String clanChatPlayerBracketRight;
|
||||
private int tasksCollectUpkeepHour;
|
||||
private int tasksCollectUpkeepMinute;
|
||||
private int tasksCollectUpkeepWarningHour;
|
||||
private int tasksCollectUpkeepWarningMinute;
|
||||
private int tasksCollectFeeHour;
|
||||
private int tasksCollectFeeMinute;
|
||||
private boolean clanFFOnByDefault;
|
||||
private double kwRival;
|
||||
private double kwNeutral;
|
||||
@@ -209,7 +213,6 @@ public final class SettingsManager {
|
||||
getConfig().options().copyDefaults(true);
|
||||
}
|
||||
|
||||
onlineMode = getConfig().getBoolean("settings.online-mode");
|
||||
disableMessages = getConfig().getBoolean("settings.disable-messages");
|
||||
teleportOnSpawn = getConfig().getBoolean("settings.teleport-home-on-spawn");
|
||||
dropOnHome = getConfig().getBoolean("settings.drop-items-on-clan-home");
|
||||
@@ -344,6 +347,12 @@ public final class SettingsManager {
|
||||
clanChatTagBracketRight = getConfig().getString("clanchat.tag-bracket.right");
|
||||
clanChatPlayerBracketLeft = getConfig().getString("clanchat.player-bracket.left");
|
||||
clanChatPlayerBracketRight = getConfig().getString("clanchat.player-bracket.right");
|
||||
tasksCollectFeeHour = getConfig().getInt("tasks.collect-fee.hour");
|
||||
tasksCollectFeeMinute = getConfig().getInt("tasks.collect-fee.minute");
|
||||
tasksCollectUpkeepHour = getConfig().getInt("tasks.collect-upkeep.hour");
|
||||
tasksCollectUpkeepMinute = getConfig().getInt("tasks.collect-upkeep.minute");
|
||||
tasksCollectUpkeepWarningHour = getConfig().getInt("tasks.collect-upkeep-warning.hour");
|
||||
tasksCollectUpkeepWarningMinute = getConfig().getInt("tasks.collect-upkeep-warning.minute");
|
||||
kwRival = getConfig().getDouble("kill-weights.rival");
|
||||
kwNeutral = getConfig().getDouble("kill-weights.neutral");
|
||||
kwCivilian = getConfig().getDouble("kill-weights.civilian");
|
||||
@@ -389,7 +398,55 @@ public final class SettingsManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
public int getTasksCollectUpkeepHour() {
|
||||
return tasksCollectUpkeepHour;
|
||||
}
|
||||
|
||||
public void setTasksCollectUpkeepHour(int tasksCollectUpkeepHour) {
|
||||
this.tasksCollectUpkeepHour = tasksCollectUpkeepHour;
|
||||
}
|
||||
|
||||
public int getTasksCollectUpkeepMinute() {
|
||||
return tasksCollectUpkeepMinute;
|
||||
}
|
||||
|
||||
public void setTasksCollectUpkeepMinute(int tasksCollectUpkeepMinute) {
|
||||
this.tasksCollectUpkeepMinute = tasksCollectUpkeepMinute;
|
||||
}
|
||||
|
||||
public int getTasksCollectUpkeepWarningHour() {
|
||||
return tasksCollectUpkeepWarningHour;
|
||||
}
|
||||
|
||||
public void setTasksCollectUpkeepWarningHour(int tasksCollectUpkeepWarningHour) {
|
||||
this.tasksCollectUpkeepWarningHour = tasksCollectUpkeepWarningHour;
|
||||
}
|
||||
|
||||
public int getTasksCollectUpkeepWarningMinute() {
|
||||
return tasksCollectUpkeepWarningMinute;
|
||||
}
|
||||
|
||||
public void setTasksCollectUpkeepWarningMinute(int tasksCollectUpkeepWarningMinute) {
|
||||
this.tasksCollectUpkeepWarningMinute = tasksCollectUpkeepWarningMinute;
|
||||
}
|
||||
|
||||
public int getTasksCollectFeeHour() {
|
||||
return tasksCollectFeeHour;
|
||||
}
|
||||
|
||||
public void setTasksCollectFeeHour(int tasksCollectFeeHour) {
|
||||
this.tasksCollectFeeHour = tasksCollectFeeHour;
|
||||
}
|
||||
|
||||
public int getTasksCollectFeeMinute() {
|
||||
return tasksCollectFeeMinute;
|
||||
}
|
||||
|
||||
public void setTasksCollectFeeMinute(int tasksCollectFeeMinute) {
|
||||
this.tasksCollectFeeMinute = tasksCollectFeeMinute;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the delay between kills
|
||||
*
|
||||
* @return
|
||||
@@ -610,60 +667,6 @@ public final class SettingsManager {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a player is banned
|
||||
*
|
||||
* @param playerName the player's name
|
||||
* @return whether player is banned
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean isBanned(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
playerName = UUIDMigration.getForcedPlayerUUID(playerName).toString();
|
||||
}
|
||||
for (String pl : getBannedPlayers()) {
|
||||
if (pl.equalsIgnoreCase(playerName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a player to the banned list
|
||||
*
|
||||
* @param playerName the player's name
|
||||
*/
|
||||
@Deprecated
|
||||
public void addBanned(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
playerName = UUIDMigration.getForcedPlayerUUID(playerName).toString();
|
||||
}
|
||||
if (!bannedPlayers.contains(playerName)) {
|
||||
bannedPlayers.add(playerName);
|
||||
}
|
||||
|
||||
save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a player from the banned list
|
||||
*
|
||||
* @param playerName the player's name
|
||||
*/
|
||||
@Deprecated
|
||||
public void removeBanned(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
playerName = UUIDMigration.getForcedPlayerUUID(playerName).toString();
|
||||
}
|
||||
if (bannedPlayers.contains(playerName)) {
|
||||
bannedPlayers.remove(playerName);
|
||||
}
|
||||
|
||||
save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a player is banned
|
||||
@@ -1554,8 +1557,9 @@ public final class SettingsManager {
|
||||
return tamableMobsSharing;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isOnlineMode() {
|
||||
return onlineMode;
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isDisableMessages() {
|
||||
|
||||
@@ -96,6 +96,7 @@ public final class StorageManager {
|
||||
+ " `balance` double(64,2),"
|
||||
+ " `fee_enabled` tinyint(1) default '0',"
|
||||
+ " `fee_value` double(64,2),"
|
||||
+ " `ranks` text NOT NULL,"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE KEY `uq_simpleclans_1` (`tag`));";
|
||||
core.execute(query);
|
||||
@@ -168,6 +169,7 @@ public final class StorageManager {
|
||||
+ " `balance` double(64,2) default 0.0,"
|
||||
+ " `fee_enabled` tinyint(1) default '0',"
|
||||
+ " `fee_value` double(64,2),"
|
||||
+ " `ranks` text NOT NULL,"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE (`tag`));";
|
||||
core.execute(query);
|
||||
@@ -348,6 +350,7 @@ public final class StorageManager {
|
||||
String packed_bb = res.getString("packed_bb");
|
||||
String cape_url = res.getString("cape_url");
|
||||
String flags = res.getString("flags");
|
||||
String ranks = res.getString("ranks");
|
||||
long founded = res.getLong("founded");
|
||||
long last_used = res.getLong("last_used");
|
||||
double balance = res.getDouble("balance");
|
||||
@@ -379,6 +382,7 @@ public final class StorageManager {
|
||||
clan.setBalance(balance);
|
||||
clan.setMemberFee(feeValue);
|
||||
clan.setMemberFeeEnabled(feeEnabled);
|
||||
clan.setRanks(Helper.ranksFromJson(ranks));
|
||||
|
||||
out.add(clan);
|
||||
} catch (Exception ex) {
|
||||
@@ -424,6 +428,7 @@ public final class StorageManager {
|
||||
String packed_bb = res.getString("packed_bb");
|
||||
String cape_url = res.getString("cape_url");
|
||||
String flags = res.getString("flags");
|
||||
String ranks = res.getString("ranks");
|
||||
long founded = res.getLong("founded");
|
||||
long last_used = res.getLong("last_used");
|
||||
double balance = res.getDouble("balance");
|
||||
@@ -455,6 +460,7 @@ public final class StorageManager {
|
||||
clan.setBalance(balance);
|
||||
clan.setMemberFee(feeValue);
|
||||
clan.setMemberFeeEnabled(feeEnabled);
|
||||
clan.setRanks(Helper.ranksFromJson(ranks));
|
||||
|
||||
out = clan;
|
||||
} catch (Exception ex) {
|
||||
@@ -662,8 +668,25 @@ public final class StorageManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void insertClan(Clan clan) {
|
||||
String query = "INSERT INTO `sc_clans` (`description`, `fee_enabled`, `fee_value`, `verified`, `tag`, `color_tag`, `name`, `friendly_fire`, `founded`, `last_used`, `packed_allies`, `packed_rivals`, `packed_bb`, `cape_url`, `flags`, `balance`) ";
|
||||
String values = "VALUES ( '" + Helper.escapeQuotes(clan.getDescription()) + "'," + (clan.isMemberFeeEnabled() ? 1 : 0) +","+ Helper.escapeQuotes(String.valueOf(clan.getMemberFee())) + "," + (clan.isVerified() ? 1 : 0) + ",'" + Helper.escapeQuotes(clan.getTag()) + "','" + Helper.escapeQuotes(clan.getColorTag()) + "','" + Helper.escapeQuotes(clan.getName()) + "'," + (clan.isFriendlyFire() ? 1 : 0) + ",'" + clan.getFounded() + "','" + clan.getLastUsed() + "','" + Helper.escapeQuotes(clan.getPackedAllies()) + "','" + Helper.escapeQuotes(clan.getPackedRivals()) + "','" + Helper.escapeQuotes(clan.getPackedBb()) + "','" + Helper.escapeQuotes(clan.getCapeUrl()) + "','" + Helper.escapeQuotes(clan.getFlags()) + "','" + Helper.escapeQuotes(String.valueOf(clan.getBalance())) + "');";
|
||||
String query = "INSERT INTO `sc_clans` (`ranks`, `description`, `fee_enabled`, `fee_value`, `verified`, `tag`, `color_tag`, `name`, `friendly_fire`, `founded`, `last_used`, `packed_allies`, `packed_rivals`, `packed_bb`, `cape_url`, `flags`, `balance`) ";
|
||||
String values = "VALUES ( '"
|
||||
+ Helper.escapeQuotes(Helper.ranksToJson(clan.getRanks())) + "','"
|
||||
+ Helper.escapeQuotes(clan.getDescription())+ "',"
|
||||
+ (clan.isMemberFeeEnabled() ? 1 : 0) +","
|
||||
+ Helper.escapeQuotes(String.valueOf(clan.getMemberFee())) + ","
|
||||
+ (clan.isVerified() ? 1 : 0) + ",'"
|
||||
+ Helper.escapeQuotes(clan.getTag()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getColorTag()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getName()) + "',"
|
||||
+ (clan.isFriendlyFire() ? 1 : 0) + ",'"
|
||||
+ clan.getFounded() + "','"
|
||||
+ clan.getLastUsed() + "','"
|
||||
+ Helper.escapeQuotes(clan.getPackedAllies()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getPackedRivals()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getPackedBb()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getCapeUrl()) + "','"
|
||||
+ Helper.escapeQuotes(clan.getFlags()) + "','"
|
||||
+ Helper.escapeQuotes(String.valueOf(clan.getBalance())) + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
|
||||
@@ -725,7 +748,7 @@ public final class StorageManager {
|
||||
if (updateLastUsed) {
|
||||
clan.updateLastUsed();
|
||||
}
|
||||
String query = "UPDATE `sc_clans` SET description = '" + Helper.escapeQuotes(clan.getDescription())+ "', fee_enabled = "+ (clan.isMemberFeeEnabled() ? 1 : 0) +", fee_value = '" + clan.getMemberFee() + "', verified = " + (clan.isVerified() ? 1 : 0) + ", tag = '" + Helper.escapeQuotes(clan.getTag()) + "', color_tag = '" + Helper.escapeQuotes(clan.getColorTag()) + "', name = '" + Helper.escapeQuotes(clan.getName()) + "', friendly_fire = " + (clan.isFriendlyFire() ? 1 : 0) + ", founded = '" + clan.getFounded() + "', last_used = '" + clan.getLastUsed() + "', packed_allies = '" + Helper.escapeQuotes(clan.getPackedAllies()) + "', packed_rivals = '" + Helper.escapeQuotes(clan.getPackedRivals()) + "', packed_bb = '" + Helper.escapeQuotes(clan.getPackedBb()) + "', cape_url = '" + Helper.escapeQuotes(clan.getCapeUrl()) + "', cape_url = '" + Helper.escapeQuotes(String.valueOf(clan.getCapeUrl())) + "', balance = '" + clan.getBalance() + "', flags = '" + Helper.escapeQuotes(clan.getFlags()) + "' WHERE tag = '" + Helper.escapeQuotes(clan.getTag()) + "';";
|
||||
String query = "UPDATE `sc_clans` SET ranks = '"+ Helper.escapeQuotes(Helper.ranksToJson(clan.getRanks())) +"', description = '" + Helper.escapeQuotes(clan.getDescription())+ "', fee_enabled = "+ (clan.isMemberFeeEnabled() ? 1 : 0) +", fee_value = '" + clan.getMemberFee() + "', verified = " + (clan.isVerified() ? 1 : 0) + ", tag = '" + Helper.escapeQuotes(clan.getTag()) + "', color_tag = '" + Helper.escapeQuotes(clan.getColorTag()) + "', name = '" + Helper.escapeQuotes(clan.getName()) + "', friendly_fire = " + (clan.isFriendlyFire() ? 1 : 0) + ", founded = '" + clan.getFounded() + "', last_used = '" + clan.getLastUsed() + "', packed_allies = '" + Helper.escapeQuotes(clan.getPackedAllies()) + "', packed_rivals = '" + Helper.escapeQuotes(clan.getPackedRivals()) + "', packed_bb = '" + Helper.escapeQuotes(clan.getPackedBb()) + "', cape_url = '" + Helper.escapeQuotes(clan.getCapeUrl()) + "', cape_url = '" + Helper.escapeQuotes(String.valueOf(clan.getCapeUrl())) + "', balance = '" + clan.getBalance() + "', flags = '" + Helper.escapeQuotes(clan.getFlags()) + "' WHERE tag = '" + Helper.escapeQuotes(clan.getTag()) + "';";
|
||||
core.update(query);
|
||||
}
|
||||
|
||||
@@ -983,6 +1006,14 @@ public final class StorageManager {
|
||||
query = "ALTER TABLE sc_players ADD COLUMN `resign_times` text;";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* From 2.8.2 to 2.9
|
||||
*/
|
||||
if (!core.existsColumn("sc_clans", "ranks")) {
|
||||
query = "ALTER TABLE sc_clans ADD COLUMN `ranks` text;";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bukkit 1.7.5+ UUID Migration
|
||||
@@ -1021,7 +1052,7 @@ public final class StorageManager {
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
private void updatePlayersToUUID() {
|
||||
private void updatePlayersToUUID() {
|
||||
SimpleClans.log("[SimpleClans] Starting Migration to UUID Players !");
|
||||
SimpleClans.log("[SimpleClans] ==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
SimpleClans.log("[SimpleClans] ==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.threads.ThreadUpdateSQL;
|
||||
|
||||
/**
|
||||
* @author cc_madelg
|
||||
@@ -114,14 +115,19 @@ public class SQLiteCore implements DBCore {
|
||||
*/
|
||||
@Override
|
||||
public void insert(String query) {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL INSERT Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
}
|
||||
if (SimpleClans.getInstance().getSettingsManager().getUseThreads()) {
|
||||
Thread thread = new Thread(new ThreadUpdateSQL(getConnection(), query, "INSERT"));
|
||||
thread.start();
|
||||
} else {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL INSERT Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,13 +137,18 @@ public class SQLiteCore implements DBCore {
|
||||
*/
|
||||
@Override
|
||||
public void update(String query) {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL UPDATE Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
if (SimpleClans.getInstance().getSettingsManager().getUseThreads()) {
|
||||
Thread thread = new Thread(new ThreadUpdateSQL(getConnection(), query, "UPDATE"));
|
||||
thread.start();
|
||||
} else {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL UPDATE Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,13 +159,18 @@ public class SQLiteCore implements DBCore {
|
||||
*/
|
||||
@Override
|
||||
public void delete(String query) {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL DELETE Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
if (SimpleClans.getInstance().getSettingsManager().getUseThreads()) {
|
||||
Thread thread = new Thread(new ThreadUpdateSQL(getConnection(), query, "DELETE"));
|
||||
thread.start();
|
||||
} else {
|
||||
try {
|
||||
getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet")) {
|
||||
log.severe("Error at SQL DELETE Query: " + ex);
|
||||
log.severe("Query: " + query);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,18 +11,28 @@ import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class CollectFeeTask extends BukkitRunnable {
|
||||
private final SimpleClans plugin;
|
||||
|
||||
public CollectFeeTask() {
|
||||
plugin = SimpleClans.getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the repetitive task
|
||||
*/
|
||||
public void start() {
|
||||
long delay = Helper.getDelayTo(1, 0);
|
||||
SettingsManager sm = plugin.getSettingsManager();
|
||||
|
||||
int hour = sm.getTasksCollectFeeHour();
|
||||
int minute = sm.getTasksCollectFeeMinute();
|
||||
long delay = Helper.getDelayTo(hour, minute);
|
||||
|
||||
this.runTaskTimerAsynchronously(SimpleClans.getInstance(), delay * 20, 86400 * 20);
|
||||
}
|
||||
@@ -32,8 +42,6 @@ public class CollectFeeTask extends BukkitRunnable {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
final SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
for (Clan clan : plugin.getClanManager().getClans()) {
|
||||
final double memberFee = clan.getMemberFee();
|
||||
|
||||
|
||||
@@ -12,12 +12,21 @@ import org.bukkit.scheduler.BukkitRunnable;
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class CollectUpkeepTask extends BukkitRunnable {
|
||||
private final SimpleClans plugin;
|
||||
private final SettingsManager settingsManager;
|
||||
|
||||
public CollectUpkeepTask() {
|
||||
plugin = SimpleClans.getInstance();
|
||||
settingsManager = plugin.getSettingsManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the repetitive task
|
||||
*/
|
||||
public void start() {
|
||||
long delay = Helper.getDelayTo(1, 30);
|
||||
int hour = settingsManager.getTasksCollectUpkeepHour();
|
||||
int minute = settingsManager.getTasksCollectUpkeepMinute();
|
||||
long delay = Helper.getDelayTo(hour, minute);
|
||||
|
||||
this.runTaskTimerAsynchronously(SimpleClans.getInstance(), delay * 20, 86400 * 20);
|
||||
}
|
||||
@@ -27,9 +36,10 @@ public class CollectUpkeepTask extends BukkitRunnable {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
final SimpleClans plugin = SimpleClans.getInstance();
|
||||
final SettingsManager settingsManager = plugin.getSettingsManager();
|
||||
plugin.getClanManager().getClans().forEach((clan) -> {
|
||||
if (plugin == null) {
|
||||
throw new IllegalStateException("Use the start() method!");
|
||||
}
|
||||
plugin.getClanManager().getClans().forEach((clan) -> {
|
||||
if (settingsManager.isChargeUpkeepOnlyIfMemberFeeEnabled() && !clan.isMemberFeeEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -11,15 +11,24 @@ import org.bukkit.scheduler.BukkitRunnable;
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class UpkeepWarningTask extends BukkitRunnable {
|
||||
private final SimpleClans plugin;
|
||||
private final SettingsManager sm;
|
||||
|
||||
public UpkeepWarningTask() {
|
||||
plugin = SimpleClans.getInstance();
|
||||
sm = plugin.getSettingsManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the repetitive task
|
||||
*
|
||||
*/
|
||||
public void start() {
|
||||
long delay = Helper.getDelayTo(12, 0);
|
||||
|
||||
this.runTaskTimerAsynchronously(SimpleClans.getInstance(), delay * 20, 86400 * 20);
|
||||
int hour = sm.getTasksCollectUpkeepWarningHour();
|
||||
int minute = sm.getTasksCollectUpkeepWarningMinute();
|
||||
long delay = Helper.getDelayTo(hour, minute);
|
||||
|
||||
this.runTaskTimerAsynchronously(plugin, delay * 20, 86400 * 20);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -27,8 +36,9 @@ public class UpkeepWarningTask extends BukkitRunnable {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
final SimpleClans plugin = SimpleClans.getInstance();
|
||||
final SettingsManager sm = plugin.getSettingsManager();
|
||||
if (plugin == null) {
|
||||
throw new IllegalStateException("Use the start() method!");
|
||||
}
|
||||
plugin.getClanManager().getClans().forEach((clan) -> {
|
||||
if (sm.isChargeUpkeepOnlyIfMemberFeeEnabled() && !clan.isMemberFeeEnabled()) {
|
||||
return;
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.concurrent.Callable;
|
||||
public class UUIDFetcher implements Callable<Map<String, UUID>> {
|
||||
|
||||
private static final double PROFILES_PER_REQUEST = 100;
|
||||
private static final String PROFILE_URL = "https://api.mojang.com/profiles/minecraft";
|
||||
private static final String PROFILE_URL = "https://api.mojang.com/users/profiles/minecraft";
|
||||
private final JSONParser jsonParser = new JSONParser();
|
||||
private final List<String> names;
|
||||
private final boolean rateLimiting;
|
||||
|
||||
@@ -16,8 +16,6 @@ public class UUIDMigration {
|
||||
private UUIDMigration() {}
|
||||
|
||||
public static boolean canReturnUUID() {
|
||||
if(!SimpleClans.getInstance().getSettingsManager().isOnlineMode())
|
||||
return false;
|
||||
try {
|
||||
Bukkit.class.getDeclaredMethod("getPlayer", UUID.class);
|
||||
return true;
|
||||
@@ -28,25 +26,22 @@ public class UUIDMigration {
|
||||
|
||||
public static UUID getForcedPlayerUUID(String playerDisplayName) {
|
||||
Player onlinePlayer = SimpleClans.getInstance().getServer().getPlayerExact(playerDisplayName);
|
||||
OfflinePlayer offlinePlayer = SimpleClans.getInstance().getServer().getOfflinePlayer(playerDisplayName);
|
||||
@SuppressWarnings("deprecation")
|
||||
OfflinePlayer offlinePlayer = SimpleClans.getInstance().getServer().getOfflinePlayer(playerDisplayName);
|
||||
|
||||
if (onlinePlayer != null) {
|
||||
return onlinePlayer.getUniqueId();
|
||||
return onlinePlayer.getUniqueId();
|
||||
} else {
|
||||
for (ClanPlayer cp : SimpleClans.getInstance().getClanManager().getAllClanPlayers()) {
|
||||
if (cp.getName().equalsIgnoreCase(playerDisplayName)) {
|
||||
return cp.getUniqueId();
|
||||
}
|
||||
}
|
||||
try {
|
||||
return UUIDFetcher.getUUIDOf(playerDisplayName);
|
||||
} catch (Exception ex) {
|
||||
if (offlinePlayer != null) {
|
||||
return offlinePlayer.getUniqueId();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
for (ClanPlayer cp : SimpleClans.getInstance().getClanManager().getAllClanPlayers()) {
|
||||
if (cp.getName().equalsIgnoreCase(playerDisplayName)) {
|
||||
return cp.getUniqueId();
|
||||
}
|
||||
}
|
||||
if (offlinePlayer != null) {
|
||||
return offlinePlayer.getUniqueId();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ tag:
|
||||
leader-color: '4'
|
||||
char: ' .'
|
||||
settings:
|
||||
online-mode: true
|
||||
disable-messages: false
|
||||
tameable-mobs-sharing: false
|
||||
teleport-blocks: false
|
||||
@@ -117,6 +116,16 @@ clan:
|
||||
ff-on-by-default: false
|
||||
min-length: 2
|
||||
min-size-to-set-ally: 3
|
||||
tasks:
|
||||
collect-upkeep:
|
||||
hour: 1
|
||||
minute: 30
|
||||
collect-upkeep-warning:
|
||||
hour: 12
|
||||
minute: 0
|
||||
collect-fee:
|
||||
hour: 1
|
||||
minute: 0
|
||||
page:
|
||||
untrusted-color: '8'
|
||||
clan-name-color: b
|
||||
@@ -166,5 +175,5 @@ permissions:
|
||||
YourClanNameHere:
|
||||
- test.permission
|
||||
performance:
|
||||
use-threads: false
|
||||
use-threads: true
|
||||
use-bungeecord: false
|
||||
@@ -262,6 +262,7 @@ your.clan.tag.must.be.longer.than.characters: "A klán tagjának hosszabbnak kel
|
||||
your.tag.cannot.contain.the.following.colors: "A címke nem tartalmazhatja a következő színeket: {0}"
|
||||
your.clan.name.cannot.be.longer.than.characters: "A klán neve legfeljebb {0} karakter lehet"
|
||||
your.tag.cannot.contain.color.codes: "A címke nem tartalmazhat színkódokat"
|
||||
you.cannot.set.colored.ranks: "You cannot set colored ranks"
|
||||
your.clan.name.must.be.longer.than.characters: "A klán neveinek {0} karakter hosszúnak kell lenniük"
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes: "A klán tagja csak betűket, számokat és színkódokat tartalmazhat"
|
||||
your.clan.name.cannot.contain.color.codes: "A klán neve nem tartalmazhat színkódokat"
|
||||
|
||||
@@ -261,6 +261,7 @@ your.clan.tag.cannot.be.longer.than.characters: "A tag do seu clã não pode ser
|
||||
your.clan.tag.must.be.longer.than.characters: "A tag do seu clã deve ser maior que {0} caracteres"
|
||||
your.tag.cannot.contain.the.following.colors: "Sua tag não pode conter as seguintes cores: {0}"
|
||||
your.tag.cannot.contain.color.codes: "Sua tag não pode conter códigos de cor"
|
||||
you.cannot.set.colored.ranks: "Você não pode definir ranks coloridos"
|
||||
your.clan.name.cannot.be.longer.than.characters: "O nome do seu clã não pode ser maior que {0} caracteres"
|
||||
your.clan.name.must.be.longer.than.characters: "O nome do seu clã deve ser maior que {0} caracteres"
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes: "A tag do seu clã pode conter apenas letras, números e códigos de cor"
|
||||
|
||||
@@ -261,6 +261,7 @@ your.clan.tag.cannot.be.longer.than.characters: "你的帮派的标签不能超
|
||||
your.clan.tag.must.be.longer.than.characters: "你的帮派的标签必须超过 {0} 字符"
|
||||
your.tag.cannot.contain.the.following.colors: "帮派的标签不能含有以下颜色: {0}"
|
||||
your.tag.cannot.contain.color.codes: "Your tag cannot contain color codes"
|
||||
you.cannot.set.colored.ranks: "You cannot set colored ranks"
|
||||
your.clan.name.cannot.be.longer.than.characters: "你的帮派的名称不能超过 {0} 字符"
|
||||
your.clan.name.must.be.longer.than.characters: "你的帮派的名称必须超过 {0} 字符"
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes: "帮派的标签只能含有字母、数字和颜色代码"
|
||||
|
||||
@@ -49,7 +49,7 @@ usage.ban.unban: "Usage: /{0} ban/unban [player]"
|
||||
usage.rival: "Usage: /{0} rival add/remove [tag]"
|
||||
usage.war: "Usage: /{0} war start/end [tag]"
|
||||
usage.cape.url: "Usage: /{0} cape [url]"
|
||||
usage.setrank: "Usage: /{0} setrank [player] [rank], rank can be multiple worlds and contain &f color codes"
|
||||
usage.setrank: "Usage: /{0} setrank [player] [rank], rank can be multiple words and contain &f color codes"
|
||||
usage.clanff: "Usage: /{0} clanff allow/block"
|
||||
usage.0.coords: "Usage: /{0} coords"
|
||||
usage.create.tag: "Usage: /{0} create [tag] [name]"
|
||||
@@ -88,7 +88,7 @@ usage.0.leaderboard: "Usage: /{0} leaderboard"
|
||||
0.purge.player.1.purge.a.player: "/{0} purge [player]{1} - Purge a player"
|
||||
0.verify.tag.1.verify.an.unverified.clan: "/{0} verify [tag]{1} - Verify an unverified clan"
|
||||
0.verify.1.purchase.verification.of.your.clan: "/{0} verify{1} - Purchase verification of your clan"
|
||||
0.list.1.lists.all.clans: "/{0} list [name/size/kdr/founded/active] [asc/desc]{1} - Lists all clans"
|
||||
0.list.1.lists.all.clans: "/{0} list [order by] [asc/desc]{1} - Lists all clans - (order by: name/size/kdr/founded/active)"
|
||||
0.profile.1.view.your.clan.s.profile: "/{0} profile{1} - View your clan''s profile"
|
||||
0.profile.tag.1.view.a.clan.s.profile: "/{0} profile [tag]{1} - View a clan''s profile"
|
||||
0.lookup.1.lookup.your.info: "/{0} lookup{1} - Lookup your info"
|
||||
@@ -261,6 +261,7 @@ your.clan.tag.cannot.be.longer.than.characters: "Your clan''s tag cannot be long
|
||||
your.clan.tag.must.be.longer.than.characters: "Your clan''s tag must be longer than {0} characters"
|
||||
your.tag.cannot.contain.the.following.colors: "Your tag cannot contain the following colors: {0}"
|
||||
your.tag.cannot.contain.color.codes: "Your tag cannot contain color codes"
|
||||
you.cannot.set.colored.ranks: "You cannot set colored ranks"
|
||||
your.clan.name.cannot.be.longer.than.characters: "Your clan''s name cannot be longer than {0} characters"
|
||||
your.clan.name.must.be.longer.than.characters: "Your clan''s name must be longer than {0} characters"
|
||||
your.clan.tag.can.only.contain.letters.numbers.and.color.codes: "Your clan''s tag can only contain letters, numbers, and color codes"
|
||||
@@ -462,4 +463,41 @@ your.clan.description.must.be.longer.than: "Your clan description must be longer
|
||||
your.clan.description.cannot.be.longer.than: "Your clan description cannot be longer than {0} characters"
|
||||
description.changed: "You have successfully changed your clan's description"
|
||||
no.description: "No description"
|
||||
the.player.must.wait.0.before.joining.your.clan.again: "This player must wait {0} minute(s) before joining your clan again"
|
||||
the.player.must.wait.0.before.joining.your.clan.again: "This player must wait {0} minute(s) before joining your clan again"
|
||||
disabled.command: "Disabled command"
|
||||
rank.displayname.updated: "The rank's display name was updated!"
|
||||
rank.0.permissions: "Rank {0}''s permissions:"
|
||||
available.rank.permissions: "Available permissions for ranks:"
|
||||
rank.already.exists: "Rank already exists"
|
||||
rank.0.does.not.exist: "Rank {0} doesn''t exist"
|
||||
rank.created: "Rank created"
|
||||
invalid.permission: "{0} is not a valid permission! Use one of these: {1}"
|
||||
permission.0.added.to.rank.1: "Permission {0} added to rank {1}"
|
||||
permission.0.removed.from.rank.1: "Permission {0} removed from rank {1}"
|
||||
rank.0.deleted: "Rank {0} deleted"
|
||||
usage.0.rank.create: "Usage: /{0} rank create [name]"
|
||||
usage.0.rank.setdisplayname: "Usage: /{0} rank setdisplayname [rank] [displayname], displayname can be multiple worls and contain color codes"
|
||||
usage.0.rank.delete: "Usage: /{0} rank delete [rank]"
|
||||
usage.0.rank.permissions: "Usage: /{0} rank permissions [rank] [add/remove] [permission]"
|
||||
usage.0.rank.assign: "Usage: /{0} rank assign [player] [rank]"
|
||||
usage.0.rank.unassign: "Usage: /{0} rank unassign [player]"
|
||||
usage.0.rank: "Usage: /{0} rank [create/assign/unassign/delete/list/setdisplayname/permissions]"
|
||||
clans.ranks: "Clan's ranks:"
|
||||
ranks.list.item: "{0}# {1} ({2})"
|
||||
no.ranks: "No ranks were created"
|
||||
rank.no.permissions: "This rank doesn't have any permission"
|
||||
player.unassigned.from.rank: "Player unassigned from rank"
|
||||
rank.command: "rank"
|
||||
0.rank.create.rank.1.create.rank: "/{0} rank create [rank]{1} - Create a rank"
|
||||
0.rank.assign.rank.player.1.assign.rank.to.player: "/{0} rank assign [rank] [player]{1} - Assign rank to a member"
|
||||
0.rank.unassign.player.1.unassign.player.from.rank: "/{0} rank unassign [player]{1} - Unassign a member from a rank"
|
||||
0.rank.delete.rank.1.delete.rank: "/{0} rank delete [rank]{1} - Delete a rank"
|
||||
0.rank.list.1.list.ranks: "/{0} rank list{1} - List the ranks"
|
||||
0.rank.setdisplayname.rank.displayname.1.set.rank.displayname: "/{0} rank setdisplayname [rank] [displayname]{1} - Set a rank displayname"
|
||||
0.rank.permissions.1.list.available.permissions: "/{0} rank permissions{1} - List the available permissions"
|
||||
0.rank.permissions.rank.1.list.rank.permissions: "/{0} rank permissions [rank]{1} - List the permissions of the rank"
|
||||
0.rank.permissions.rank.add.permission.1.add.a.permission.to.rank: "/{0} rank permissions [rank] add [permission]{1} - Add a permission to the rank"
|
||||
0.rank.permissions.rank.remove.permission.1.remove.a.permission.from.rank: "/{0} rank permissions [rank] remove [permission]{1} - Remove a permission from the rank"
|
||||
you.must.be.0.or.have.the.permission.1.to.use.this: "You must be {0} or your leader must give your rank the permission {1} to use this"
|
||||
deposit.not.allowed: "Deposit is not allowed"
|
||||
withdraw.not.allowed: "Withdraw is not allowed"
|
||||
@@ -52,6 +52,7 @@ permissions:
|
||||
description: Can view rivalries by clan
|
||||
simpleclans.anyone.kdr-exempt:
|
||||
description: The player's KDR is not affected on killing/dying
|
||||
default: false
|
||||
simpleclans.member.profile:
|
||||
description: Can view his own clan's profile
|
||||
simpleclans.member.roster:
|
||||
@@ -104,6 +105,8 @@ permissions:
|
||||
description: Can modify his clan's description
|
||||
simpleclans.leader.cape:
|
||||
description: Can set his clan's cape url
|
||||
simpleclans.leader.bb-clear:
|
||||
description: Can clear his clan's bb
|
||||
simpleclans.member.cape-toggle:
|
||||
description: Can toggle his cape on/off
|
||||
simpleclans.member.kills:
|
||||
@@ -140,8 +143,31 @@ permissions:
|
||||
description: Can start wars
|
||||
simpleclans.leader.setrank:
|
||||
description: Can set ranks
|
||||
simpleclans.leader.coloredrank:
|
||||
description: Can set colored ranks
|
||||
default: true
|
||||
simpleclans.leader.coloredtag:
|
||||
description: Can use color codes in tags
|
||||
simpleclans.leader.rank.list:
|
||||
description: Can list the ranks
|
||||
simpleclans.leader.rank.create:
|
||||
description: Can create a new rank
|
||||
simpleclans.leader.rank.assign:
|
||||
description: Can assign a rank to a user
|
||||
simpleclans.leader.rank.unassign:
|
||||
description: Can unassign a player from a rank
|
||||
simpleclans.leader.rank.delete:
|
||||
description: Can delete a rank
|
||||
simpleclans.leader.rank.permissions.available:
|
||||
description: Can list the available permissions
|
||||
simpleclans.leader.rank.permissions.list:
|
||||
description: Can list the permissions of a rank
|
||||
simpleclans.leader.rank.permissions.add:
|
||||
description: Can add permissions to a rank
|
||||
simpleclans.leader.rank.permissions.remove:
|
||||
description: Can remove permissions from a rank
|
||||
simpleclans.leader.rank.setdisplayname:
|
||||
description: Can set the rank displayname
|
||||
simpleclans.member.bank:
|
||||
description: Can use banks
|
||||
simpleclans.admin.*:
|
||||
@@ -225,3 +251,15 @@ permissions:
|
||||
simpleclans.leader.home-regroup: true
|
||||
simpleclans.leader.setrank: true
|
||||
simpleclans.leader.coloredtag: true
|
||||
simpleclans.leader.coloredrank: true
|
||||
simpleclans.leader.bb-clear: true
|
||||
simpleclans.leader.rank.setdisplayname: true
|
||||
simpleclans.leader.rank.list: true
|
||||
simpleclans.leader.rank.create: true
|
||||
simpleclans.leader.rank.assign: true
|
||||
simpleclans.leader.rank.unassign: true
|
||||
simpleclans.leader.rank.delete: true
|
||||
simpleclans.leader.rank.permissions.available: true
|
||||
simpleclans.leader.rank.permissions.add: true
|
||||
simpleclans.leader.rank.permissions.remove: true
|
||||
simpleclans.leader.rank.permissions.list: true
|
||||
Reference in new issue
Block a user