mirror of
https://github.com/RoinujNosde/SimpleClans.git
synced 2026-11-05 17:12:34 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6440e937bc | ||
|
|
72ffaaa7fe | ||
|
|
9b69020677 | ||
|
|
50d25bb881 | ||
|
|
5fc0477e9f | ||
|
|
10482ecf23 | ||
|
|
00158a3e3c | ||
|
|
96d65c2d8f | ||
|
|
4036b13bad | ||
|
|
2abe64284b | ||
|
|
1b62ecf296 | ||
|
|
c59afd27b3 | ||
|
|
fecc50c083 | ||
|
|
230a0e9ba5 | ||
|
|
9f96f8c19f | ||
|
|
1b16fd3b2b | ||
|
|
4e5461b533 | ||
|
|
70f4a4a109 | ||
|
|
ae3ebee649 | ||
|
|
235a69cf15 | ||
|
|
2c18498f08 | ||
|
|
2ac4085915 | ||
|
|
9b5e727fed | ||
|
|
dcf1659e6b | ||
|
|
d64190cc8f | ||
|
|
dc1c417222 | ||
|
|
3872790c25 | ||
|
|
da1894e55d | ||
|
|
63763e9afd | ||
|
|
756a30303e |
No files matched your search
+1
-1
@@ -5,7 +5,7 @@ language: java
|
||||
|
||||
script: mvn install
|
||||
|
||||
jdk: [openjdk7]
|
||||
jdk: [openjdk8]
|
||||
|
||||
# if one build failed, exit testing
|
||||
matrix:
|
||||
|
||||
@@ -4,7 +4,7 @@ SimpleClans
|
||||
Full featured clan system for PVP Minecraft Servers
|
||||
|
||||
[](https://travis-ci.org/marcelo-mason/SimpleClans)
|
||||
[](http://104.236.246.108:8080/job/SimpleClans/)
|
||||
[](https://github.com/marcelo-mason/SimpleClans/releases/latest)
|
||||
[](https://github.com/marcelo-mason/SimpleClans/issues)
|
||||
[](https://ghit.me/repo/marcelo-mason/SimpleClans)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>net.sacredlabyrinth.phaed.simpleclans</groupId>
|
||||
<artifactId>SimpleClans</artifactId>
|
||||
<version>2.7.12</version>
|
||||
<version>2.7.16</version>
|
||||
<name>SimpleClans</name>
|
||||
<url>http://dev.bukkit.org/server-mods/simpleclans/</url>
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<showDeprecation>true</showDeprecation>
|
||||
<showWarnings>true</showWarnings>
|
||||
<fork>true</fork>
|
||||
@@ -58,6 +58,12 @@
|
||||
</build>
|
||||
<!-- Dependencies -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.destroystokyo.paper</groupId>
|
||||
<artifactId>paper-api</artifactId>
|
||||
<version>1.12.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
@@ -87,6 +93,10 @@
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>paper-repo</id>
|
||||
<url>https://repo.destroystokyo.com/repository/maven-public/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<!-- GitHub/Jenkins -->
|
||||
|
||||
@@ -638,6 +638,10 @@ public class ChatBlock {
|
||||
public static String[] say(String message) {
|
||||
return colorize(wordWrap(message));
|
||||
}
|
||||
|
||||
public static String[] getColorizedMessage(String msg) {
|
||||
return colorize(wordWrap(msg));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param message
|
||||
@@ -697,4 +701,4 @@ public class ChatBlock {
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
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.ChatColor;
|
||||
@@ -373,7 +375,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
bb.remove(0);
|
||||
}
|
||||
|
||||
bb.add(msg);
|
||||
bb.add(System.currentTimeMillis() + "_" + msg);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
}
|
||||
|
||||
@@ -389,7 +391,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
bb.remove(0);
|
||||
}
|
||||
|
||||
bb.add(msg);
|
||||
bb.add(System.currentTimeMillis() + "_" + msg);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this, updateLastUsed);
|
||||
}
|
||||
|
||||
@@ -1504,12 +1506,73 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String msg : bb) {
|
||||
ChatBlock.sendMessage(player, SimpleClans.getInstance().getSettingsManager().getBbAccentColor() + "* " + SimpleClans.getInstance().getSettingsManager().getBbColor() + Helper.parseColors(msg));
|
||||
if (!sendBbTime(player, msg)) {
|
||||
ChatBlock.sendMessage(player, SimpleClans.getInstance().getSettingsManager().getBbAccentColor() + "* " + SimpleClans.getInstance().getSettingsManager().getBbColor() + Helper.parseColors(msg));
|
||||
}
|
||||
}
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays bb to a player
|
||||
* @implNote may want to refactor displaybb(Player) to use this?
|
||||
*
|
||||
* @param player
|
||||
* @param maxSize amount of lines to display
|
||||
*/
|
||||
public void displayBb(Player player, int maxSize) {
|
||||
if (isVerified()) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, MessageFormat.format(SimpleClans.getInstance().getLang("bulletin.board.header"), SimpleClans.getInstance().getSettingsManager().getBbAccentColor(), SimpleClans.getInstance().getSettingsManager().getPageHeadingsColor(), Helper.capitalize(getName())));
|
||||
|
||||
List<String> localBb = new ArrayList<>(bb);
|
||||
while (localBb.size() > maxSize) {
|
||||
localBb.remove(0);
|
||||
}
|
||||
|
||||
for (String msg : localBb) {
|
||||
if (!sendBbTime(player, msg)) {
|
||||
ChatBlock.sendMessage(player, SimpleClans.getInstance().getSettingsManager().getBbAccentColor() + "* " + SimpleClans.getInstance().getSettingsManager().getBbColor() + Helper.parseColors(msg));
|
||||
}
|
||||
}
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a bb message with the timestamp in a hover message, if the bb message is timestamped
|
||||
* @param msg the bb message
|
||||
* @return true if sent
|
||||
*/
|
||||
private boolean sendBbTime(Player player, String msg) {
|
||||
try {
|
||||
int index = msg.indexOf("_");
|
||||
if (index < 1)
|
||||
return false;
|
||||
long time;
|
||||
time = (System.currentTimeMillis()
|
||||
- Long.parseLong(msg.substring(0, index))) / 1000L;
|
||||
msg = String.join("", ChatBlock
|
||||
.getColorizedMessage(SimpleClans.getInstance()
|
||||
.getSettingsManager().getBbAccentColor() + "* " +
|
||||
SimpleClans.getInstance().getSettingsManager()
|
||||
.getBbColor() + Helper.parseColors(
|
||||
msg.substring(++index, msg.length()))));
|
||||
TextComponent textComponent = new TextComponent(msg);
|
||||
textComponent.setHoverEvent(
|
||||
new HoverEvent(HoverEvent.Action.SHOW_TEXT,
|
||||
TextComponent.fromLegacyText(
|
||||
Dates.formatTime(time, 1) + SimpleClans
|
||||
.getInstance().getLang("bb.ago"))));
|
||||
player.sendMessage(textComponent);
|
||||
return true;
|
||||
}
|
||||
catch (Exception rock) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disband a clan
|
||||
*/
|
||||
|
||||
@@ -1,138 +1,196 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
|
||||
public class Dates {
|
||||
|
||||
private Dates() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMonths(Timestamp date1, Timestamp date2) {
|
||||
return differenceInMonths(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInYears(Timestamp date1, Timestamp date2) {
|
||||
return differenceInYears(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInDays(Timestamp date1, Timestamp date2) {
|
||||
return differenceInDays(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInHours(Timestamp date1, Timestamp date2) {
|
||||
return differenceInHours(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMinutes(Timestamp date1, Timestamp date2) {
|
||||
return differenceInMinutes(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInSeconds(Timestamp date1, Timestamp date2) {
|
||||
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
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMonths(Date date1, Date date2) {
|
||||
return differenceInYears(date1, date2) * 12;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInYears(Date date1, Date date2) {
|
||||
double days = differenceInDays(date1, date2);
|
||||
return days / 365.2425;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInDays(Date date1, Date date2) {
|
||||
return differenceInHours(date1, date2) / 24.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInHours(Date date1, Date date2) {
|
||||
return differenceInMinutes(date1, date2) / 60.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMinutes(Date date1, Date date2) {
|
||||
return differenceInSeconds(date1, date2) / 60.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInSeconds(Date date1, Date date2) {
|
||||
return differenceInMilliseconds(date1, date2) / 1000.0;
|
||||
}
|
||||
|
||||
private static double differenceInMilliseconds(Date date1, Date date2) {
|
||||
return Math.abs(getTimeInMilliseconds(date1) - getTimeInMilliseconds(date2));
|
||||
}
|
||||
|
||||
private static long getTimeInMilliseconds(Date date) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
return cal.getTimeInMillis() + cal.getTimeZone().getOffset(cal.getTimeInMillis());
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
|
||||
public class Dates {
|
||||
|
||||
private Dates() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMonths(Timestamp date1, Timestamp date2) {
|
||||
return differenceInMonths(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInYears(Timestamp date1, Timestamp date2) {
|
||||
return differenceInYears(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInDays(Timestamp date1, Timestamp date2) {
|
||||
return differenceInDays(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInHours(Timestamp date1, Timestamp date2) {
|
||||
return differenceInHours(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMinutes(Timestamp date1, Timestamp date2) {
|
||||
return differenceInMinutes(new Date(date1.getTime()), new Date(date2.getTime()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInSeconds(Timestamp date1, Timestamp date2) {
|
||||
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
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMonths(Date date1, Date date2) {
|
||||
return differenceInYears(date1, date2) * 12;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInYears(Date date1, Date date2) {
|
||||
double days = differenceInDays(date1, date2);
|
||||
return days / 365.2425;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInDays(Date date1, Date date2) {
|
||||
return differenceInHours(date1, date2) / 24.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInHours(Date date1, Date date2) {
|
||||
return differenceInMinutes(date1, date2) / 60.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInMinutes(Date date1, Date date2) {
|
||||
return differenceInSeconds(date1, date2) / 60.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static double differenceInSeconds(Date date1, Date date2) {
|
||||
return differenceInMilliseconds(date1, date2) / 1000.0;
|
||||
}
|
||||
|
||||
private static double differenceInMilliseconds(Date date1, Date date2) {
|
||||
return Math.abs(getTimeInMilliseconds(date1) - getTimeInMilliseconds(date2));
|
||||
}
|
||||
|
||||
private static long getTimeInMilliseconds(Date date) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
return cal.getTimeInMillis() + cal.getTimeZone().getOffset(cal.getTimeInMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string representation of the amount of time labeled as days, hours, minutes, seconds
|
||||
* @author RoboMWM, LaxWasHere
|
||||
* @param seconds the time in seconds
|
||||
* @param depth Max amount of detail (e.g. only display days and hours if set to 1 and seconds > 1 day)
|
||||
* @return
|
||||
*/
|
||||
public static String formatTime(Long seconds, int depth)
|
||||
{
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
if (seconds == null || seconds < 1) {
|
||||
return plugin.getLang("bb.moments");
|
||||
}
|
||||
|
||||
if (seconds < 60) {
|
||||
return seconds + plugin.getLang("bb.seconds");
|
||||
}
|
||||
|
||||
if (seconds < 3600) {
|
||||
Long count = (long) Math.ceil(seconds / 60);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + plugin.getLang("bb.minutes");
|
||||
} else {
|
||||
res = plugin.getLang("bb.one.minute");
|
||||
}
|
||||
Long remaining = seconds % 60;
|
||||
if (depth > 0 && remaining >= 5) {
|
||||
return res + ", " + formatTime(remaining, --depth);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
if (seconds < 86400) {
|
||||
Long count = (long) Math.ceil(seconds / 3600);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + plugin.getLang("bb.hours");
|
||||
} else {
|
||||
res = plugin.getLang("bb.one.hour");
|
||||
}
|
||||
if (depth > 0) {
|
||||
return res + ", " + formatTime(seconds % 3600, --depth);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
Long count = (long) Math.ceil(seconds / 86400);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + plugin.getLang("bb.days");
|
||||
} else {
|
||||
res = plugin.getLang("bb.one.day");
|
||||
}
|
||||
if (depth > 0) {
|
||||
return res + ", " + formatTime(seconds % 86400, --depth);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -626,24 +626,24 @@ public class Helper {
|
||||
String leaderColor = sm.getAllyChatLeaderColor();
|
||||
String memberColor = sm.getAllyChatMemberColor();
|
||||
String rank = cp.getRank().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRank());
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getAllyChatRank()).replaceAll("%rank%", rank) : "";
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getAllyChatRank()).replace("%rank%", rank) : "";
|
||||
|
||||
String message = replacePlaceholders(sm, cp, leaderColor, memberColor, rankFormat, msg);
|
||||
String message = replacePlaceholders(sm.getAllyChatFormat(), cp, leaderColor, memberColor, rankFormat, msg);
|
||||
if (placeholders != null) {
|
||||
for (Entry<String, String> e : placeholders.entrySet()) {
|
||||
message = message.replaceAll("%"+e.getKey()+"%", e.getValue());
|
||||
message = message.replace("%"+e.getKey()+"%", e.getValue());
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
private static String replacePlaceholders(SettingsManager sm, ClanPlayer cp, String leaderColor, String memberColor, String rankFormat, String msg) {
|
||||
String message = ChatColor.translateAlternateColorCodes('&', sm.getAllyChatFormat())
|
||||
.replaceAll("%clan%", cp.getClan().getColorTag())
|
||||
.replaceAll("%nick-color%", (cp.isLeader() ? leaderColor : memberColor))
|
||||
.replaceAll("%player%", cp.getName())
|
||||
.replaceAll("%rank%", rankFormat)
|
||||
.replaceAll("%message%", Matcher.quoteReplacement(msg));
|
||||
private static String replacePlaceholders(String messageFormat, ClanPlayer cp, String leaderColor, String memberColor, String rankFormat, String msg) {
|
||||
String message = ChatColor.translateAlternateColorCodes('&', messageFormat)
|
||||
.replace("%clan%", cp.getClan().getColorTag())
|
||||
.replace("%nick-color%", (cp.isLeader() ? leaderColor : memberColor))
|
||||
.replace("%player%", cp.getName())
|
||||
.replace("%rank%", rankFormat)
|
||||
.replace("%message%", msg);
|
||||
return message;
|
||||
}
|
||||
|
||||
@@ -661,13 +661,13 @@ public class Helper {
|
||||
String leaderColor = sm.getClanChatLeaderColor();
|
||||
String memberColor = sm.getClanChatMemberColor();
|
||||
String rank = cp.getRank().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRank());
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getClanChatRank()).replaceAll("%rank%", rank) : "";
|
||||
String rankFormat = rank != null ? ChatColor.translateAlternateColorCodes('&', sm.getClanChatRank()).replace("%rank%", rank) : "";
|
||||
|
||||
String message = replacePlaceholders(sm, cp, leaderColor, memberColor, rankFormat, msg);
|
||||
String message = replacePlaceholders(sm.getClanChatFormat(), cp, leaderColor, memberColor, rankFormat, msg);
|
||||
|
||||
if (placeholders != null) {
|
||||
for (Entry<String, String> e : placeholders.entrySet()) {
|
||||
message = message.replaceAll("%"+e.getKey()+"%", e.getValue());
|
||||
message = message.replace("%"+e.getKey()+"%", e.getValue());
|
||||
}
|
||||
}
|
||||
return message;
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
* @author phaed
|
||||
*/
|
||||
public class DemoteCommand {
|
||||
|
||||
public DemoteCommand() {
|
||||
}
|
||||
|
||||
@@ -29,6 +30,50 @@ public class DemoteCommand {
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.demote.leader"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String demotedName = arg[0];
|
||||
|
||||
if (demotedName == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
final boolean hasUUID = SimpleClans.getInstance().hasUUID();
|
||||
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.demote")) {
|
||||
ClanPlayer toDemote;
|
||||
if (hasUUID) {
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(demotedName);
|
||||
toDemote = plugin.getClanManager().getAnyClanPlayer(uuid);
|
||||
} else {
|
||||
toDemote = plugin.getClanManager().getAnyClanPlayer(demotedName);
|
||||
}
|
||||
|
||||
if (!toDemote.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("player.is.not.a.leader.of.any.clan"));
|
||||
return;
|
||||
}
|
||||
final Clan clan = toDemote.getClan();
|
||||
|
||||
if (clan.getLeaders().size() == 1) {
|
||||
//TODO: add message
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.demote.the.last.leader"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasUUID) {
|
||||
clan.demote(toDemote.getUniqueId());
|
||||
} else {
|
||||
clan.demote(demotedName);
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("demoted.back.to.member"), Helper.capitalize(demotedName)));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.successfully.demoted"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.demote")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
@@ -47,20 +92,10 @@ public class DemoteCommand {
|
||||
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.demote.leader"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String demotedName = arg[0];
|
||||
boolean allOtherLeadersOnline;
|
||||
|
||||
if (demotedName == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
if (hasUUID) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(demotedName);
|
||||
if (PlayerUniqueId == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
@@ -76,7 +111,7 @@ public class DemoteCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
if (hasUUID) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(demotedName);
|
||||
if (!clan.isLeader(PlayerUniqueId)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("player.is.not.a.leader.of.your.clan"));
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
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.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.conversation.ResignPrompt;
|
||||
import org.bukkit.conversations.ConversationFactory;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -36,20 +35,11 @@ public class ResignCommand {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
return;
|
||||
}
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player) || clan.getLeaders().size() > 1) {
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("0.has.resigned"), Helper.capitalize(player.getName())));
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.removePlayerFromClan(player.getUniqueId());
|
||||
} else {
|
||||
clan.removePlayerFromClan(player.getName());
|
||||
}
|
||||
} else if (clan.isLeader(player) && clan.getLeaders().size() == 1) {
|
||||
plugin.getClanManager().serverAnnounce(ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.has.been.disbanded"), clan.getName()));
|
||||
clan.disband();
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("last.leader.cannot.resign.you.must.appoint.another.leader.or.disband.the.clan"));
|
||||
}
|
||||
|
||||
new ConversationFactory(plugin)
|
||||
.withFirstPrompt(new ResignPrompt(plugin.getLang("resign.yes"), plugin.getLang("resign.no")))
|
||||
.withLocalEcho(true)
|
||||
.withTimeout(10)
|
||||
.buildConversation(player).begin();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
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.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.FixedSetPrompt;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class ResignPrompt extends FixedSetPrompt {
|
||||
|
||||
public ResignPrompt(String... words) {
|
||||
super(words);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Prompt acceptValidatedInput(ConversationContext cc, String input) {
|
||||
final SimpleClans plugin = (SimpleClans) cc.getPlugin();
|
||||
|
||||
String yes = plugin.getLang("resign.yes");
|
||||
Player player = (Player) cc.getForWhom();
|
||||
ClanManager cm = plugin.getClanManager();
|
||||
ClanPlayer cp = cm.getClanPlayer(player);
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (yes.equalsIgnoreCase(input)) {
|
||||
if (!clan.isLeader(player) || clan.getLeaders().size() > 1) {
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("0.has.resigned"), Helper.capitalize(player.getName())));
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.removePlayerFromClan(player.getUniqueId());
|
||||
} else {
|
||||
clan.removePlayerFromClan(player.getName());
|
||||
}
|
||||
player.sendMessage(ChatColor.AQUA + plugin.getLang("resign.success"));
|
||||
} else if (clan.isLeader(player) && clan.getLeaders().size() == 1) {
|
||||
plugin.getClanManager().serverAnnounce(ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.has.been.disbanded"), clan.getName()));
|
||||
clan.disband();
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("last.leader.cannot.resign.you.must.appoint.another.leader.or.disband.the.clan"));
|
||||
}
|
||||
}
|
||||
|
||||
return END_OF_CONVERSATION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPromptText(ConversationContext cc) {
|
||||
final SimpleClans plugin = (SimpleClans) cc.getPlugin();
|
||||
|
||||
return ChatColor.RED + MessageFormat.format(plugin.getLang("resign.confirmation"), this.fixedSet);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.logging.Level;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -78,6 +79,18 @@ public class SCEntityListener implements Listener
|
||||
|
||||
if (attacker != null && victim != null)
|
||||
{
|
||||
if (SimpleClans.getInstance().getSettingsManager().isDenySameIPKills())
|
||||
{
|
||||
if (attacker.getAddress().getHostString().equals(victim.getAddress().getHostString()))
|
||||
{
|
||||
plugin.getLogger().log(Level.INFO, "Blocked same IP kill calculating: {0} killed {1}. IP: {2}", new Object[]{
|
||||
attacker.getDisplayName(), victim.getDisplayName(), attacker.getAddress().getHostString()
|
||||
});
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ClanPlayer acp;
|
||||
ClanPlayer vcp;
|
||||
if (SimpleClans.getInstance().hasUUID())
|
||||
|
||||
@@ -259,7 +259,7 @@ public class SCPlayerListener implements Listener {
|
||||
SimpleClans.getInstance().getPermissionsManager().addPlayerPermissions(cp);
|
||||
|
||||
if (plugin.getSettingsManager().isBbShowOnLogin() && cp.isBbEnabled()) {
|
||||
cp.getClan().displayBb(player);
|
||||
cp.getClan().displayBb(player, plugin.getSettingsManager().getBbLoginSize());
|
||||
}
|
||||
|
||||
SimpleClans.getInstance().getPermissionsManager().addClanPermissions(cp);
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.ChatEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -91,10 +92,11 @@ public final class ClanManager {
|
||||
SimpleClans.getInstance().getPermissionsManager().updateClanPermissions(clan);
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new CreateClanEvent(clan));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reset a player's kdr
|
||||
* @param cp
|
||||
*
|
||||
* @param cp
|
||||
*/
|
||||
public void resetKdr(ClanPlayer cp) {
|
||||
cp.setCivilianKills(0);
|
||||
@@ -232,8 +234,7 @@ public final class ClanManager {
|
||||
return getClanPlayer(player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the ClanPlayer data object if a player is currently in a clan, null
|
||||
* if he's not in a clan
|
||||
@@ -984,10 +985,10 @@ public final class ClanManager {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Purchase Reset Kdr
|
||||
*
|
||||
*
|
||||
* @param player
|
||||
* @return
|
||||
*/
|
||||
@@ -995,9 +996,9 @@ public final class ClanManager {
|
||||
if (!plugin.getSettingsManager().isePurchaseResetKdr()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
double price = plugin.getSettingsManager().geteResetKdr();
|
||||
|
||||
|
||||
if (plugin.getPermissionsManager().hasEconomy()) {
|
||||
if (plugin.getPermissionsManager().playerHasMoney(player, price)) {
|
||||
plugin.getPermissionsManager().playerChargeMoney(player, price);
|
||||
@@ -1101,8 +1102,8 @@ public final class ClanManager {
|
||||
* @param player
|
||||
* @param msg
|
||||
*/
|
||||
public void processClanChat(Player player, String msg) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
public void processClanChat(Player player, final String msg) {
|
||||
final ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
return;
|
||||
@@ -1141,29 +1142,34 @@ public final class ClanManager {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + "You have unmuted clan chat");
|
||||
}
|
||||
} else {
|
||||
List<ClanPlayer> receivers = new LinkedList<>();
|
||||
final List<ClanPlayer> receivers = new LinkedList<>();
|
||||
for (ClanPlayer p : cp.getClan().getOnlineMembers()) {
|
||||
if (!p.isMuted()) {
|
||||
receivers.add(p);
|
||||
}
|
||||
}
|
||||
|
||||
ChatEvent ce = new ChatEvent(msg, cp, receivers, ChatEvent.Type.CLAN);
|
||||
Bukkit.getServer().getPluginManager().callEvent(ce);
|
||||
|
||||
if (ce.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = Helper.formatClanChat(cp, ce.getMessage(), ce.getPlaceholders());
|
||||
String eyeMessage = Helper.formatSpyClanChat(cp, message);
|
||||
plugin.getServer().getConsoleSender().sendMessage(eyeMessage);
|
||||
|
||||
for (ClanPlayer p : ce.getReceivers()) {
|
||||
ChatBlock.sendMessage(p.toPlayer(), message);
|
||||
}
|
||||
|
||||
sendToAllSeeing(eyeMessage, ce.getReceivers());
|
||||
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ChatEvent ce = new ChatEvent(msg, cp, receivers, ChatEvent.Type.CLAN);
|
||||
Bukkit.getServer().getPluginManager().callEvent(ce);
|
||||
|
||||
if (ce.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = Helper.formatClanChat(cp, ce.getMessage(), ce.getPlaceholders());
|
||||
String eyeMessage = Helper.formatSpyClanChat(cp, message);
|
||||
plugin.getServer().getConsoleSender().sendMessage(eyeMessage);
|
||||
|
||||
for (ClanPlayer p : ce.getReceivers()) {
|
||||
ChatBlock.sendMessage(p.toPlayer(), message);
|
||||
}
|
||||
|
||||
sendToAllSeeing(eyeMessage, ce.getReceivers());
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1199,8 +1205,8 @@ public final class ClanManager {
|
||||
* @param player
|
||||
* @param msg
|
||||
*/
|
||||
public void processAllyChat(Player player, String msg) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
public void processAllyChat(Player player, final String msg) {
|
||||
final ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
return;
|
||||
@@ -1239,7 +1245,7 @@ public final class ClanManager {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + "You have unmuted ally chat");
|
||||
}
|
||||
} else {
|
||||
List<ClanPlayer> receivers = new LinkedList<>();
|
||||
final List<ClanPlayer> receivers = new LinkedList<>();
|
||||
Set<ClanPlayer> allies = cp.getClan().getAllAllyMembers();
|
||||
allies.addAll(cp.getClan().getMembers());
|
||||
for (ClanPlayer ally : allies) {
|
||||
@@ -1257,23 +1263,28 @@ public final class ClanManager {
|
||||
}
|
||||
receivers.add(ally);
|
||||
}
|
||||
|
||||
ChatEvent ce = new ChatEvent(msg, cp, receivers, ChatEvent.Type.ALLY);
|
||||
Bukkit.getServer().getPluginManager().callEvent(ce);
|
||||
|
||||
if (ce.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = Helper.formatAllyChat(cp, ce.getMessage(), ce.getPlaceholders());
|
||||
SimpleClans.log(message);
|
||||
|
||||
Player self = cp.toPlayer();
|
||||
ChatBlock.sendMessage(self, message);
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ChatEvent ce = new ChatEvent(msg, cp, receivers, ChatEvent.Type.ALLY);
|
||||
Bukkit.getServer().getPluginManager().callEvent(ce);
|
||||
|
||||
for (ClanPlayer p : ce.getReceivers()) {
|
||||
ChatBlock.sendMessage(p.toPlayer(), message);
|
||||
}
|
||||
if (ce.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = Helper.formatAllyChat(cp, ce.getMessage(), ce.getPlaceholders());
|
||||
SimpleClans.log(message);
|
||||
|
||||
Player self = cp.toPlayer();
|
||||
ChatBlock.sendMessage(self, message);
|
||||
|
||||
for (ClanPlayer p : ce.getReceivers()) {
|
||||
ChatBlock.sendMessage(p.toPlayer(), message);
|
||||
}
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class LanguageManager {
|
||||
@@ -85,6 +84,6 @@ public class LanguageManager {
|
||||
return o.toString();
|
||||
}
|
||||
|
||||
return null;
|
||||
return "Missing language for "+key;
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -436,7 +437,7 @@ public final class RequestManager {
|
||||
*
|
||||
* @param req
|
||||
*/
|
||||
public void ask(Request req) {
|
||||
public void ask(final Request req) {
|
||||
final String tag = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + req.getClan().getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight();
|
||||
final String message = tag + " " + plugin.getSettingsManager().getRequestMessageColor() + req.getMsg();
|
||||
final String options = MessageFormat.format(plugin.getLang("accept.or.deny"), ChatBlock.makeEmpty(Helper.stripColors(tag)) + " " + ChatColor.DARK_GREEN + "/" + plugin.getSettingsManager().getCommandAccept() + plugin.getSettingsManager().getPageHeadingsColor(), ChatColor.DARK_RED + "/" + plugin.getSettingsManager().getCommandDeny());
|
||||
@@ -465,6 +466,11 @@ public final class RequestManager {
|
||||
}
|
||||
}
|
||||
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new RequestEvent(req));
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new RequestEvent(req));
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,7 @@ public final class SettingsManager {
|
||||
private String pageUnTrustedColor;
|
||||
private boolean bbShowOnLogin;
|
||||
private int bbSize;
|
||||
private int bbLoginSize;
|
||||
private String bbColor;
|
||||
private String bbAccentColor;
|
||||
private String commandClan;
|
||||
@@ -143,6 +144,7 @@ public final class SettingsManager {
|
||||
private boolean homebaseSetOnce;
|
||||
private int waitSecs;
|
||||
private boolean enableAutoGroups;
|
||||
private boolean denySameIPKills;
|
||||
private boolean moneyperkill;
|
||||
private double KDRMultipliesPerKill;
|
||||
private boolean teleportBlocks;
|
||||
@@ -239,6 +241,7 @@ public final class SettingsManager {
|
||||
pageClanNameColor = getConfig().getString("page.clan-name-color");
|
||||
bbShowOnLogin = getConfig().getBoolean("bb.show-on-login");
|
||||
bbSize = getConfig().getInt("bb.size");
|
||||
bbLoginSize = getConfig().getInt("bb.login-size", bbSize);
|
||||
bbColor = getConfig().getString("bb.color");
|
||||
bbAccentColor = getConfig().getString("bb.accent-color");
|
||||
commandClan = getConfig().getString("commands.clan");
|
||||
@@ -300,6 +303,7 @@ public final class SettingsManager {
|
||||
kwRival = getConfig().getDouble("kill-weights.rival");
|
||||
kwNeutral = getConfig().getDouble("kill-weights.neutral");
|
||||
kwCivilian = getConfig().getDouble("kill-weights.civilian");
|
||||
denySameIPKills = getConfig().getBoolean("kill-weights.deny-same-ip-kills");
|
||||
useMysql = getConfig().getBoolean("mysql.enable");
|
||||
host = getConfig().getString("mysql.host");
|
||||
port = getConfig().getInt("mysql.port");
|
||||
@@ -679,6 +683,13 @@ public final class SettingsManager {
|
||||
return bbSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the bbLoginSize
|
||||
*/
|
||||
public int getBbLoginSize() {
|
||||
return bbLoginSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the bbColor
|
||||
*/
|
||||
@@ -1069,6 +1080,10 @@ public final class SettingsManager {
|
||||
return confirmationForDemote;
|
||||
}
|
||||
|
||||
public boolean isDenySameIPKills() {
|
||||
return denySameIPKills;
|
||||
}
|
||||
|
||||
public boolean isUseColorCodeFromPrefix() {
|
||||
return useColorCodeFromPrefix;
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ kill-weights:
|
||||
rival: 2.0
|
||||
civilian: 0.0
|
||||
neutral: 1.0
|
||||
deny-same-ip-kills: false
|
||||
clan:
|
||||
homebase-teleport-wait-secs: 10
|
||||
homebase-can-be-set-only-once: true
|
||||
@@ -115,6 +116,7 @@ bb:
|
||||
accent-color: '8'
|
||||
show-on-login: true
|
||||
size: 6
|
||||
login-size: 6
|
||||
allychat:
|
||||
enable: true
|
||||
format: "&b[Ally Chat] &4<%clan%&4> <%nick-color%%player%&4> %rank%: &b%message%"
|
||||
|
||||
@@ -414,4 +414,20 @@ you.cannot.rival.your.own.clan: "You cannot rival your own clan"
|
||||
the.clan.members.reached.limit: "Your clan members reached limit"
|
||||
you.have.reseted.your.kdr: "You have reseted your KDR"
|
||||
you.have.reseted.0.kdr: "You have reseted {0}''s KDR"
|
||||
you.have.reseted.kdr.of.all.players: "You have reseted the KDR of all players"
|
||||
you.have.reseted.kdr.of.all.players: "You have reseted the KDR of all players"
|
||||
resign.yes: "Yes"
|
||||
resign.no: "No"
|
||||
resign.confirmation: "Are you sure you want to resign? {0}"
|
||||
resign.success: "You have successfully resigned from your clan"
|
||||
player.is.not.a.leader.of.any.clan: "The player is not a leader of any clan"
|
||||
you.cannot.demote.the.last.leader: "You cannot demote the last leader"
|
||||
player.successfully.demoted: "The player was successfully demoted"
|
||||
bb.ago: " ago "
|
||||
bb.moments: "moments"
|
||||
bb.seconds: " seconds"
|
||||
bb.minutes: " minutes"
|
||||
bb.one.minute: "1 minute"
|
||||
bb.hours: " hours"
|
||||
bb.one.hour: "1 hour"
|
||||
bb.days: " days"
|
||||
bb.one.day: "1 day"
|
||||
@@ -415,3 +415,19 @@ the.clan.members.reached.limit: "A klán tagjai elérik a határt"
|
||||
you.have.reseted.your.kdr: "Visszaállítottad KDR-t"
|
||||
you.have.reseted.0.kdr: "Visszaállítottad a(z) {0} KDR-t"
|
||||
you.have.reseted.kdr.of.all.players: "Visszaállítottad a játékosok KDR-jét"
|
||||
resign.yes: "Yes"
|
||||
resign.no: "No"
|
||||
resign.confirmation: "Are you sure you want to resign? {0}"
|
||||
resign.success: "You have successfully resigned from your clan"
|
||||
player.is.not.a.leader.of.any.clan: "The player is not a leader of any clan"
|
||||
you.cannot.demote.the.last.leader: "You cannot demote the last leader"
|
||||
player.successfully.demoted: "The player was successfully demoted"
|
||||
bb.ago: " ago "
|
||||
bb.moments: "moments"
|
||||
bb.seconds: " seconds"
|
||||
bb.minutes: " minutes"
|
||||
bb.one.minute: "1 minute"
|
||||
bb.hours: " hours"
|
||||
bb.one.hour: "1 hour"
|
||||
bb.days: " days"
|
||||
bb.one.day: "1 day"
|
||||
@@ -37,6 +37,8 @@ war.command: "战争"
|
||||
home.command: "基地"
|
||||
setrank.command: "设置称号"
|
||||
place.command: "移动"
|
||||
resetkdr.command: "resetkdr"
|
||||
usage.resetkdr: "Usage: /{0} resetkdr [all/player]"
|
||||
usage.clan.alliances: "使用: /{0} alliances"
|
||||
usage.ally: "使用: /{0} ally add/remove [标签]"
|
||||
usage.ban.unban: "使用: /{0} ban/unban [玩家]"
|
||||
@@ -75,6 +77,8 @@ usage.0.leaderboard: "使用: /{0} leaderboard"
|
||||
0.ban.unban.player.1.ban.unban.a.player: "/{0} ban/unban [玩家]{1} - 封禁/解封一个玩家"
|
||||
0.hometp.clan.1.tp.home.a.clan: "/{0} home tp [帮派]{1} - 传送至帮派基地"
|
||||
0.disband.tag.1.disband.a.clan: "/{0} disband [标签]{1} - 解禁帮派"
|
||||
0.resetkdr.1.resets.kdr: "/{0} resetkdr player/all{1} - Reset KDR of all players or just of one"
|
||||
0.resetkdr.1.resets.your.kdr: "/{0} resetkdr{1} - Reset your KDR"
|
||||
0.verify.tag.1.verify.an.unverified.clan: "/{0} verify [标签]{1} - 验证一个帮派"
|
||||
0.verify.1.purchase.verification.of.your.clan: "/{0} verify{1} - 付费验证你的帮派"
|
||||
0.list.1.lists.all.clans: "/{0} list{1} - 列出所有帮派"
|
||||
@@ -116,6 +120,7 @@ usage.0.leaderboard: "使用: /{0} leaderboard"
|
||||
home-menu: "/{0} home{1} - 传送至帮派基地"
|
||||
home-set-menu: "/{0} home set{1} - 设置帮派基地"
|
||||
home-clear-menu: "/{0} home clear{1} - 清除帮派基地"
|
||||
home-regroup-menu: "/{0} home regroup [me]{1} - Regroup all members to clan home-base or to you"
|
||||
example.clan.modtag.4kfo.4l: "示例: /clan modtag &4帅"
|
||||
example.clan.create: "示例: /clan create &4大帅比"
|
||||
clan: "帮派"
|
||||
@@ -245,6 +250,7 @@ you.are.the.only.member.online: "你是唯一在线的成员"
|
||||
your.clan.tag.cannot.be.longer.than.characters: "你的帮派的标签不能超过 {0} 字符"
|
||||
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"
|
||||
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: "帮派的标签只能含有字母、数字和颜色代码
|
||||
@@ -374,6 +380,10 @@ bboff: "公告板已关闭"
|
||||
bbon: "公告板已开启"
|
||||
tagoff: "标签已关闭"
|
||||
tagon: "标签已开启"
|
||||
depositon: "Deposit toggled on"
|
||||
depositoff: "Deposit toggled off"
|
||||
withdrawon: "Withdraw toggled on"
|
||||
withdrawoff: "Withdraw toggled off"
|
||||
home.base.only.once: "基地只能设置一次"
|
||||
now.at.homebase: "你现在在 {0} 的基地"
|
||||
hombase.set: "帮派基地设置为: {0}"
|
||||
@@ -400,4 +410,24 @@ bb.clan.withdraw: "{0} $ 被取出"
|
||||
player.clan.withdraw: "你取出了 {0}"
|
||||
clan.bank.not.enough.money: "你的帮派银行资金不足"
|
||||
your.clans.are.not.rivals: "你的帮派不是敌对"
|
||||
you.cannot.rival.your.own.clan: "You cannot rival your own clan"
|
||||
the.clan.members.reached.limit: "帮派成员达到上限"
|
||||
you.have.reseted.your.kdr: "You have reseted your KDR"
|
||||
you.have.reseted.0.kdr: "You have reseted {0}''s KDR"
|
||||
you.have.reseted.kdr.of.all.players: "You have reseted the KDR of all players"
|
||||
resign.yes: "Yes"
|
||||
resign.no: "No"
|
||||
resign.confirmation: "Are you sure you want to resign? {0}"
|
||||
resign.success: "You have successfully resigned from your clan"
|
||||
player.is.not.a.leader.of.any.clan: "The player is not a leader of any clan"
|
||||
you.cannot.demote.the.last.leader: "You cannot demote the last leader"
|
||||
player.successfully.demoted: "The player was successfully demoted"
|
||||
bb.ago: " ago "
|
||||
bb.moments: "moments"
|
||||
bb.seconds: " seconds"
|
||||
bb.minutes: " minutes"
|
||||
bb.one.minute: "1 minute"
|
||||
bb.hours: " hours"
|
||||
bb.one.hour: "1 hour"
|
||||
bb.days: " days"
|
||||
bb.one.day: "1 day"
|
||||
@@ -414,4 +414,20 @@ you.cannot.rival.your.own.clan: "You cannot rival your own clan"
|
||||
the.clan.members.reached.limit: "Your clan members reached limit"
|
||||
you.have.reseted.your.kdr: "You have reseted your KDR"
|
||||
you.have.reseted.0.kdr: "You have reseted {0}''s KDR"
|
||||
you.have.reseted.kdr.of.all.players: "You have reseted the KDR of all players"
|
||||
you.have.reseted.kdr.of.all.players: "You have reseted the KDR of all players"
|
||||
resign.yes: "Yes"
|
||||
resign.no: "No"
|
||||
resign.confirmation: "Are you sure you want to resign? {0}"
|
||||
resign.success: "You have successfully resigned from your clan"
|
||||
player.is.not.a.leader.of.any.clan: "The player is not a leader of any clan"
|
||||
you.cannot.demote.the.last.leader: "You cannot demote the last leader"
|
||||
player.successfully.demoted: "The player was successfully demoted"
|
||||
bb.ago: " ago "
|
||||
bb.moments: "moments"
|
||||
bb.seconds: " seconds"
|
||||
bb.minutes: " minutes"
|
||||
bb.one.minute: "1 minute"
|
||||
bb.hours: " hours"
|
||||
bb.one.hour: "1 hour"
|
||||
bb.days: " days"
|
||||
bb.one.day: "1 day"
|
||||
@@ -7,6 +7,10 @@ permissions:
|
||||
description: Can grant clans permissions
|
||||
simpleclans.admin.reload:
|
||||
description: Can reload configuration
|
||||
simpleclans.admin.promote:
|
||||
description: Can promote players to clan leaders
|
||||
simpleclans.admin.demote:
|
||||
description: Can demote clan leaders to normal players
|
||||
simpleclans.admin.all-seeing-eye:
|
||||
description: Can see all clan chats
|
||||
simpleclans.admin.resetkdr:
|
||||
|
||||
Reference in new issue
Block a user