mirror of
https://github.com/RoinujNosde/SimpleClans.git
synced 2026-11-06 01:22:37 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07be81b456 | ||
|
|
e7b088d833 | ||
|
|
9ad41ee3d6 | ||
|
|
a053911f00 | ||
|
|
1a2cf1d3b9 | ||
|
|
cc3d7f9502 | ||
|
|
4e0c123879 | ||
|
|
3bf8e77133 | ||
|
|
11e0344181 | ||
|
|
34d4590d7e | ||
|
|
d1c98f802c | ||
|
|
8f4dbc9f28 | ||
|
|
a5510b98ad | ||
|
|
a7d11f763c | ||
|
|
c50f6dc931 | ||
|
|
2b4e335b14 | ||
|
|
34b0f32f1b | ||
|
|
9ebe483850 | ||
|
|
7757f712cd | ||
|
|
2b562ac466 | ||
|
|
9038f97403 | ||
|
|
0892545252 | ||
|
|
554e5f25bb | ||
|
|
a0114a517d | ||
|
|
960e40b387 | ||
|
|
0ca66fb6a4 | ||
|
|
e2a083f09a | ||
|
|
c825fdd7ab | ||
|
|
7e12fa6d01 | ||
|
|
113ef19966 | ||
|
|
93cb11532a | ||
|
|
7d5699d75e | ||
|
|
ae09353ab4 | ||
|
|
33f9ee7adc | ||
|
|
2ba027f89a | ||
|
|
d2ed8ac366 | ||
|
|
5e03bf53e7 | ||
|
|
01dc9d2304 | ||
|
|
4eafe9afa8 | ||
|
|
f2ba4b8a5c | ||
|
|
7ba439eafc | ||
|
|
5781f64796 | ||
|
|
4d634901b0 | ||
|
|
c1c4a35b82 | ||
|
|
fd0954b510 | ||
|
|
2e1339e08e | ||
|
|
cec163add9 | ||
|
|
43e21924ee | ||
|
|
2bfc37d780 | ||
|
|
3e4a744fc3 | ||
|
|
f203554a64 | ||
|
|
116e99104c | ||
|
|
b5f81ccf79 | ||
|
|
1ee1c288bd | ||
|
|
03b95bbedf | ||
|
|
37ea6fe665 | ||
|
|
23832888e0 | ||
|
|
50666a222a | ||
|
|
0c63974180 | ||
|
|
aa95ce09a4 | ||
|
|
960200a45f | ||
|
|
6c7bfa1752 | ||
|
|
6554a91800 | ||
|
|
73616ddef9 | ||
|
|
ef894a36df | ||
|
|
598e420fa6 | ||
|
|
68065a3b79 | ||
|
|
6e255fc7cb | ||
|
|
36a3d3732a | ||
|
|
934263063e | ||
|
|
af9e9539f9 | ||
|
|
14be85a84c | ||
|
|
3a789adf61 | ||
|
|
2c39603da9 | ||
|
|
6dddc64a95 | ||
|
|
82f94d1149 | ||
|
|
edd19a42d6 | ||
|
|
26d41c2d98 | ||
|
|
d928cf8e39 | ||
|
|
4e1d538ef2 | ||
|
|
b4fbcdd0de | ||
|
|
0ead15ff25 | ||
|
|
3db5a71bbe | ||
|
|
ae86f5b68f | ||
|
|
1ca26319db | ||
|
|
0bb9fd5b53 | ||
|
|
c548f7749e | ||
|
|
888366ce27 | ||
|
|
dc7d414393 | ||
|
|
f5c0920cc9 | ||
|
|
fe866d959a | ||
|
|
6083766a12 | ||
|
|
14b663801d | ||
|
|
b331e2c236 | ||
|
|
b3d5be1ec0 | ||
|
|
b6d9c3a605 | ||
|
|
e2c7b109d9 | ||
|
|
6bb370facd | ||
|
|
b3c8131c96 | ||
|
|
d4c9537296 | ||
|
|
f89d446ac0 | ||
|
|
009564f732 | ||
|
|
a6e10da510 | ||
|
|
a9fe589794 | ||
|
|
2d0b524557 | ||
|
|
ba66f16f54 | ||
|
|
4d6a489b43 | ||
|
|
92da40ca76 | ||
|
|
f1d0741ac8 | ||
|
|
03b2f73e74 | ||
|
|
2a65295e8b | ||
|
|
a7cb9ed171 | ||
|
|
ac0a387198 | ||
|
|
e3cd7d37a8 | ||
|
|
63595258f4 | ||
|
|
0c866044df | ||
|
|
2217efa8a7 | ||
|
|
df97e43c4d | ||
|
|
169b44e793 | ||
|
|
f2303c5336 | ||
|
|
af8cd133c2 | ||
|
|
fa66424402 | ||
|
|
2727203bed | ||
|
|
eedc743d5b | ||
|
|
4e12e4d6f5 | ||
|
|
32855c2611 | ||
|
|
d7118aea82 | ||
|
|
f472432eb6 | ||
|
|
e07c8a9343 | ||
|
|
b84e46d156 | ||
|
|
daba767a5a | ||
|
|
e59a760776 | ||
|
|
6aa30a5d2d | ||
|
|
9fe944fe5b | ||
|
|
178382e685 | ||
|
|
2fcc765447 | ||
|
|
6d5dc79568 | ||
|
|
29c8955f9d | ||
|
|
62f69e0a1e | ||
|
|
3518024428 | ||
|
|
ad7f6fd402 | ||
|
|
732932763d | ||
|
|
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
@@ -0,0 +1,5 @@
|
||||
root: ./wiki
|
||||
|
||||
structure:
|
||||
readme: README.md
|
||||
summary: SUMMARY.md
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Run the command '...'
|
||||
2. Click on a mob '....'
|
||||
3. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Software (please complete the following information):**
|
||||
- Server: [e.g. Spigot 1.12]
|
||||
- Plugin version [e.g. 2.12.1]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -0,0 +1,29 @@
|
||||
name: Publish to Bintray (Spigot 1.13+)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
server-id: bintray-roinujnosde-bukkit-plugins # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
server-username: MAVEN_USERNAME
|
||||
server-password: MAVEN_PASSWORD
|
||||
|
||||
- name: Build with Maven
|
||||
run: mvn -B package --file pom.xml
|
||||
|
||||
- name: Publish to Bintray
|
||||
run: mvn -B deploy
|
||||
env:
|
||||
MAVEN_USERNAME: ${{ secrets.BINTRAY_USERNAME }}
|
||||
MAVEN_PASSWORD: ${{ secrets.BINTRAY_TOKEN }}
|
||||
@@ -0,0 +1,31 @@
|
||||
name: Publish to Bintray (for Spigot 1.8-1.12)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: 1.8
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
server-id: bintray-roinujnosde-bukkit-plugins # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
server-username: MAVEN_USERNAME
|
||||
server-password: MAVEN_PASSWORD
|
||||
|
||||
- name: Build with Maven
|
||||
run: mvn -B package --file pom.xml
|
||||
|
||||
- name: Publish to Bintray
|
||||
run: mvn -B deploy
|
||||
env:
|
||||
MAVEN_USERNAME: ${{ secrets.BINTRAY_USERNAME }}
|
||||
MAVEN_PASSWORD: ${{ secrets.BINTRAY_TOKEN }}
|
||||
@@ -0,0 +1,31 @@
|
||||
# This workflow will build a Java project with Maven
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||
|
||||
name: Java CI Dev Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [dev]
|
||||
pull_request:
|
||||
branches: [dev]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Build with Maven
|
||||
run: mvn -B package --file pom.xml
|
||||
- name: Create Staging
|
||||
run: mkdir staging && cp target/SimpleClans.jar staging
|
||||
- name: Upload a Build Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: SimpleClans
|
||||
path: staging
|
||||
+8
-1
@@ -1,3 +1,10 @@
|
||||
/target/
|
||||
/.idea/
|
||||
SimpleClans.iml
|
||||
SimpleClans.iml
|
||||
/bin/
|
||||
/.classpath
|
||||
/.project
|
||||
/dependency-reduced-pom.xml
|
||||
/simpleclans-mc1.8.iml
|
||||
*.jar
|
||||
.settings
|
||||
+4
-1
@@ -5,11 +5,14 @@ language: java
|
||||
|
||||
script: mvn install
|
||||
|
||||
jdk: [openjdk7]
|
||||
jdk: [openjdk8]
|
||||
|
||||
# if one build failed, exit testing
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
addons:
|
||||
artifacts: true
|
||||
|
||||
# Disable caching in order to get notified if there are some repo/dependency issues
|
||||
## Cache maven dependencies
|
||||
|
||||
@@ -1,15 +1,48 @@
|
||||
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/issues)
|
||||
[](https://ghit.me/repo/marcelo-mason/SimpleClans)
|
||||
|
||||
## Disclaimer:
|
||||
|
||||
Active development for this plugin has stopped. It is in maintenance mode and will continue to be kept up to date as-is with any new Minecraft version indefinitely.
|
||||
|
||||
Pull-requests for bug fixes or new features are welcomed and will be merged in if they do not break existing functionalities.
|
||||
SimpleClans
|
||||
==========
|
||||
|
||||
Full featured clan system for PVP Minecraft Servers!
|
||||
|
||||
[](https://travis-ci.com/RoinujNosde/SimpleClans)
|
||||
[](https://www.spigotmc.org/resources/simpleclans.71242/)
|
||||
[](https://github.com/RoinujNosde/SimpleClans/issues)
|
||||
[](https://crowdin.com/project/simpleclans)
|
||||
[](https://discord.gg/CkNwgdE)
|
||||
|
||||
Spigot resource page: https://www.spigotmc.org/resources/simpleclans.71242/
|
||||
|
||||
Wiki page: https://github.com/RoinujNosde/SimpleClans/wiki
|
||||
|
||||
#### Developers
|
||||
|
||||
Including SimpleClans with Maven:
|
||||
```xml
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>bintray-roinujnosde-bukkit-plugins</id>
|
||||
<url>https://dl.bintray.com/roinujnosde/bukkit-plugins</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.sacredlabyrinth.phaed.simpleclans</groupId>
|
||||
<artifactId>SimpleClans</artifactId>
|
||||
<version>2.12.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
```
|
||||
|
||||
Using Gradle:
|
||||
```groovy
|
||||
repositories {
|
||||
maven {
|
||||
url "https://dl.bintray.com/roinujnosde/bukkit-plugins"
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
compileOnly "net.sacredlabyrinth.phaed.simpleclans:SimpleClans:2.12.2"
|
||||
}
|
||||
```
|
||||
|
||||
Some examples on how to use the API: https://github.com/RoinujNosde/SimpleClans/wiki/SimpleClans-API-example
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.9-R0.1-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:4.10" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:17.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.avaje:ebean:2.8.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.15" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.milkbowl.vault:VaultAPI:1.4" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.nijikokun.bukkit:Permissions:2.7.4" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.sacredlabyrinth.Phaed:PreciousStones:9.7.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.getspout:spoutplugin:dev-SNAPSHOT" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -1,8 +1,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>net.sacredlabyrinth.phaed.simpleclans</groupId>
|
||||
<artifactId>SimpleClans</artifactId>
|
||||
<version>2.7.12</version>
|
||||
<version>2.13.0</version>
|
||||
<name>SimpleClans</name>
|
||||
<url>http://dev.bukkit.org/server-mods/simpleclans/</url>
|
||||
|
||||
@@ -18,9 +19,7 @@
|
||||
<includes>
|
||||
<include>plugin.yml</include>
|
||||
<include>config.yml</include>
|
||||
<include>language.yml</include>
|
||||
<include>language-br.yml</include>
|
||||
<include>language-zh.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
@@ -33,8 +32,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>
|
||||
@@ -54,39 +53,107 @@
|
||||
<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>
|
||||
<relocation>
|
||||
<pattern>io.papermc.lib</pattern>
|
||||
<shadedPattern>net.sacredlabyrinth.phaed.simpleclans.paperlib</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
<artifactSet>
|
||||
<excludes>
|
||||
<exclude>org.jetbrains:annotations</exclude>
|
||||
</excludes>
|
||||
</artifactSet>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<!-- Dependencies -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
<version>1.12-R0.1-SNAPSHOT</version>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.13.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.milkbowl.vault</groupId>
|
||||
<groupId>com.github.MilkBowl</groupId>
|
||||
<artifactId>VaultAPI</artifactId>
|
||||
<version>1.6</version>
|
||||
<version>1.7</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.googlecode.json-simple</groupId>
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
<artifactId>bstats-bukkit</artifactId>
|
||||
<version>1.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.clip</groupId>
|
||||
<artifactId>placeholderapi</artifactId>
|
||||
<version>2.10.9</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>16.0.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.papermc</groupId>
|
||||
<artifactId>paperlib</artifactId>
|
||||
<version>1.0.5</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- Repositories -->
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>vault-repo</id>
|
||||
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>placeholderapi-repo</id>
|
||||
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>bstats-repo</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>papermc</id>
|
||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<!-- GitHub/Jenkins -->
|
||||
@@ -111,14 +178,9 @@
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>SacredCoding</id>
|
||||
<name>SacredCoding-releases</name>
|
||||
<url>http://104.236.246.108:8081/artifactory/plugins-release-local</url>
|
||||
<id>bintray-roinujnosde-bukkit-plugins</id>
|
||||
<name>roinujnosde-bukkit-plugins</name>
|
||||
<url>https://api.bintray.com/maven/roinujnosde/bukkit-plugins/SimpleClans/;publish=1</url>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>SacredCoding</id>
|
||||
<name>SacredCoding-snapshots</name>
|
||||
<url>http://104.236.246.108:8081/artifactory/plugins-release-local</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
</project>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -638,6 +663,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 +726,4 @@ public class ChatBlock {
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,21 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
@@ -15,6 +24,7 @@ import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -26,7 +36,9 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
private String tag;
|
||||
private String colorTag;
|
||||
private String name;
|
||||
private String description;
|
||||
private double balance;
|
||||
private double fee;
|
||||
private boolean friendlyFire;
|
||||
private long founded;
|
||||
private long lastUsed;
|
||||
@@ -34,14 +46,17 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
private List<String> allies = new ArrayList<>();
|
||||
private List<String> rivals = new ArrayList<>();
|
||||
private List<String> bb = new ArrayList<>();
|
||||
private List<String> members = new ArrayList<>();
|
||||
private HashMap<String, Clan> warringClans = new HashMap<>();
|
||||
private final List<String> members = new ArrayList<>();
|
||||
private final HashMap<String, Clan> warringClans = new HashMap<>();
|
||||
private int homeX = 0;
|
||||
private int homeY = 0;
|
||||
private int homeZ = 0;
|
||||
private String homeWorld = "";
|
||||
private boolean allowWithdraw = false;
|
||||
private boolean allowDeposit = true;
|
||||
private boolean feeEnabled;
|
||||
private List<Rank> ranks = new ArrayList<>();
|
||||
private @Nullable ItemStack banner;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -104,15 +119,15 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public void deposit(double amount, Player player) {
|
||||
if (SimpleClans.getInstance().getPermissionsManager().playerHasMoney(player, amount)) {
|
||||
if (SimpleClans.getInstance().getPermissionsManager().playerChargeMoney(player, amount)) {
|
||||
player.sendMessage(ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("player.clan.deposit"), amount));
|
||||
addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("bb.clan.deposit"), amount));
|
||||
player.sendMessage(ChatColor.AQUA + lang("player.clan.deposit", player, amount));
|
||||
addBb(player.getName(), ChatColor.AQUA + lang("bb.clan.deposit", amount));
|
||||
setBalance(getBalance() + amount);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
} else {
|
||||
player.sendMessage(ChatColor.AQUA + SimpleClans.getInstance().getLang("not.sufficient.money"));
|
||||
player.sendMessage(ChatColor.AQUA + lang("not.sufficient.money",player));
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.AQUA + SimpleClans.getInstance().getLang("not.sufficient.money"));
|
||||
player.sendMessage(ChatColor.AQUA + lang("not.sufficient.money",player));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,13 +140,13 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public void withdraw(double amount, Player player) {
|
||||
if (getBalance() >= amount) {
|
||||
if (SimpleClans.getInstance().getPermissionsManager().playerGrantMoney(player, amount)) {
|
||||
player.sendMessage(ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("player.clan.withdraw"), amount));
|
||||
addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("bb.clan.withdraw"), amount));
|
||||
player.sendMessage(ChatColor.AQUA + lang("player.clan.withdraw", player, amount));
|
||||
addBb(player.getName(), ChatColor.AQUA + lang("bb.clan.withdraw", amount));
|
||||
setBalance(getBalance() - amount);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.AQUA + SimpleClans.getInstance().getLang("clan.bank.not.enough.money"));
|
||||
player.sendMessage(ChatColor.AQUA + lang("clan.bank.not.enough.money",player));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +167,46 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the clan's description
|
||||
*
|
||||
* @return the description or null if it doesn't have one
|
||||
*/
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*
|
||||
* @param description
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the clan's fee
|
||||
*
|
||||
* @param fee
|
||||
*/
|
||||
public void setMemberFee(double fee) {
|
||||
if (fee < 0) {
|
||||
fee = 0;
|
||||
}
|
||||
this.fee = fee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the clan's fee
|
||||
*
|
||||
* @return the fee
|
||||
*/
|
||||
public double getMemberFee() {
|
||||
return fee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the clan's balance
|
||||
*
|
||||
@@ -249,31 +303,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
* @return confirmation
|
||||
*/
|
||||
public boolean isMember(Player player) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return this.members.contains(player.getUniqueId().toString());
|
||||
} else {
|
||||
return this.members.contains(player.getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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());
|
||||
}
|
||||
return this.members.contains(player.getUniqueId().toString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -369,27 +399,33 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
* @param msg
|
||||
*/
|
||||
public void addBb(String msg) {
|
||||
addBbWithoutSaving(msg);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds a bulletin board message without saving it to the database
|
||||
*
|
||||
* @param msg
|
||||
*/
|
||||
public void addBbWithoutSaving(String msg) {
|
||||
while (bb.size() > SimpleClans.getInstance().getSettingsManager().getBbSize()) {
|
||||
bb.remove(0);
|
||||
}
|
||||
|
||||
bb.add(msg);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
bb.add(System.currentTimeMillis() + "_" + msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a bulletin board message without announcer
|
||||
* Adds a bulletin board message without announcer and saves it to the database
|
||||
*
|
||||
* @param msg
|
||||
*
|
||||
* @param updateLastUsed should the clan's last used time be updated as well?
|
||||
*/
|
||||
public void addBb(String msg, boolean updateLastUsed) {
|
||||
while (bb.size() > SimpleClans.getInstance().getSettingsManager().getBbSize()) {
|
||||
bb.remove(0);
|
||||
}
|
||||
|
||||
bb.add(msg);
|
||||
addBbWithoutSaving(msg);
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this, updateLastUsed);
|
||||
}
|
||||
|
||||
@@ -407,35 +443,15 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
* @param cp
|
||||
*/
|
||||
public void importMember(ClanPlayer cp) {
|
||||
String NameOrUUID;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
if (cp.getUniqueId() != null) {
|
||||
NameOrUUID = cp.getUniqueId().toString();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
NameOrUUID = cp.getCleanName();
|
||||
}
|
||||
if (!this.members.contains(NameOrUUID)) {
|
||||
this.members.add(NameOrUUID);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* (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());
|
||||
String uuid;
|
||||
if (cp.getUniqueId() != null) {
|
||||
uuid = cp.getUniqueId().toString();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.members.contains(uuid)) {
|
||||
this.members.add(uuid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -661,12 +677,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
String out = "";
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -686,31 +697,9 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
* @return the leaders
|
||||
*/
|
||||
public boolean isLeader(Player player) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return isLeader(player.getUniqueId());
|
||||
} else {
|
||||
return isLeader(player.getName());
|
||||
}
|
||||
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
|
||||
@@ -730,6 +719,24 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all members that must pay the fee (that excludes leaders and players with the permission to bypass it)
|
||||
*
|
||||
* @return the fee payers
|
||||
*/
|
||||
public Set<ClanPlayer> getFeePayers() {
|
||||
Set<ClanPlayer> feePayers = new HashSet<>();
|
||||
|
||||
getNonLeaders().forEach(cp -> {
|
||||
OfflinePlayer op= Bukkit.getOfflinePlayer(cp.getUniqueId());
|
||||
if (!SimpleClans.getInstance().getPermissionsManager().has(null, op, "simpleclans.member.bypass-fee")) {
|
||||
feePayers.add(cp);
|
||||
}
|
||||
});
|
||||
|
||||
return feePayers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all members (leaders, and non-leaders) in the clan
|
||||
*
|
||||
@@ -739,12 +746,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
List<ClanPlayer> out = new ArrayList<>();
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -763,12 +765,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
List<ClanPlayer> out = new ArrayList<>();
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -789,12 +786,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
List<ClanPlayer> out = new ArrayList<>();
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -816,12 +808,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
List<ClanPlayer> out = new ArrayList<>();
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -845,12 +832,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
List<ClanPlayer> out = new ArrayList<>();
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -896,12 +878,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
int totalDeaths = 0;
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -930,12 +907,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -959,12 +931,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -988,12 +955,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -1017,12 +979,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -1046,12 +1003,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
for (String member : members) {
|
||||
ClanPlayer cp;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(member.toLowerCase());
|
||||
}
|
||||
ClanPlayer cp = SimpleClans.getInstance().getClanManager().getClanPlayer(UUID.fromString(member));
|
||||
if (cp == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -1095,13 +1047,9 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
|
||||
// add clan permission
|
||||
SimpleClans.getInstance().getPermissionsManager().addClanPermissions(cp);
|
||||
SimpleClans.getInstance().getPermissionsManager().addPlayerPermissions(cp);
|
||||
|
||||
Player player;
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
player = SimpleClans.getInstance().getServer().getPlayer(cp.getUniqueId());
|
||||
} else {
|
||||
player = SimpleClans.getInstance().getServer().getPlayerExact(cp.getName());
|
||||
}
|
||||
Player player = SimpleClans.getInstance().getServer().getPlayer(cp.getUniqueId());
|
||||
|
||||
if (player != null) {
|
||||
SimpleClans.getInstance().getClanManager().updateDisplayName(player);
|
||||
@@ -1109,39 +1057,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
|
||||
*
|
||||
@@ -1161,6 +1076,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);
|
||||
@@ -1174,27 +1090,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
|
||||
*
|
||||
@@ -1214,25 +1109,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
|
||||
*
|
||||
@@ -1327,21 +1203,43 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
* @return
|
||||
*/
|
||||
public boolean isAnyOnline() {
|
||||
for (String member : members) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
if (Helper.isOnline(UUID.fromString(member))) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (Helper.isOnline(member)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String member : members) {
|
||||
if (Helper.isOnline(UUID.fromString(member))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if there are enough leaders online to vote
|
||||
*
|
||||
* @param cp the one to demote
|
||||
* @return true if there are
|
||||
*/
|
||||
public boolean enoughLeadersOnlineToDemote(ClanPlayer cp) {
|
||||
List<ClanPlayer> online = getOnlineLeaders();
|
||||
online.remove(cp);
|
||||
|
||||
double minimum = SimpleClans.getInstance().getSettingsManager().getPercentageOnlineToDemote();
|
||||
// all leaders minus the one being demoted
|
||||
double totalLeaders = getLeaders().size() - 1;
|
||||
double onlineLeaders = online.size();
|
||||
|
||||
|
||||
return ((onlineLeaders / totalLeaders) * 100) >= minimum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the online leaders
|
||||
*
|
||||
* @return the online leaders
|
||||
*/
|
||||
public List<ClanPlayer> getOnlineLeaders() {
|
||||
return getOnlineMembers().stream().filter(ClanPlayer::isLeader).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether all leaders of a clan are online
|
||||
*
|
||||
@@ -1350,17 +1248,11 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public boolean allLeadersOnline() {
|
||||
List<ClanPlayer> leaders = getLeaders();
|
||||
|
||||
for (ClanPlayer leader : leaders) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
if (!Helper.isOnline(leader.getUniqueId())) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!Helper.isOnline(leader.getName())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (ClanPlayer leader : leaders) {
|
||||
if (!Helper.isOnline(leader.getUniqueId())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1437,7 +1329,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
}
|
||||
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.AQUA + "[" + SimpleClans.getInstance().getLang("clan.announce") + ChatColor.AQUA + "] " + ChatColor.AQUA + "[" + Helper.getColorName(playerName) + ChatColor.WHITE + "] " + message);
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.AQUA + "[" + lang("clan.announce") + ChatColor.AQUA + "] " + ChatColor.AQUA + "[" + Helper.getColorName(playerName) + ChatColor.WHITE + "] " + message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1457,7 +1349,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
ChatBlock.sendMessage(pl, message);
|
||||
}
|
||||
}
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.AQUA + "[" + SimpleClans.getInstance().getLang("leader.announce") + ChatColor.AQUA + "] " + ChatColor.WHITE + message);
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.AQUA + "[" + lang("leader.announce") + ChatColor.AQUA + "] " + ChatColor.WHITE + message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1495,7 +1387,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
public void displayBb(Player player) {
|
||||
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())));
|
||||
ChatBlock.saySingle(player, lang("bulletin.board.header", SimpleClans.getInstance().getSettingsManager().getBbAccentColor(), SimpleClans.getInstance().getSettingsManager().getPageHeadingsColor(), getName()));
|
||||
|
||||
int maxSize = SimpleClans.getInstance().getSettingsManager().getBbSize();
|
||||
|
||||
@@ -1504,12 +1396,71 @@ 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, lang("bulletin.board.header", SimpleClans.getInstance().getSettingsManager().getBbAccentColor(), SimpleClans.getInstance().getSettingsManager().getPageHeadingsColor(), 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) + lang("bb.ago"))));
|
||||
player.spigot().sendMessage(textComponent);
|
||||
return true;
|
||||
} catch (Throwable rock) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disband a clan
|
||||
*/
|
||||
@@ -1534,18 +1485,18 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
clans.remove(this);
|
||||
|
||||
for (Clan c : clans) {
|
||||
String disbanded = SimpleClans.getInstance().getLang("clan.disbanded");
|
||||
String disbanded = lang("clan.disbanded");
|
||||
|
||||
if (c.removeWarringClan(this)) {
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("you.are.no.longer.at.war"), Helper.capitalize(c.getName()), getColorTag()));
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(lang("you.are.no.longer.at.war"), c.getName(), getColorTag()));
|
||||
}
|
||||
|
||||
if (c.removeRival(getTag())) {
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("has.been.disbanded.rivalry.ended"), Helper.capitalize(getName())));
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(lang("has.been.disbanded.rivalry.ended"), getName()));
|
||||
}
|
||||
|
||||
if (c.removeAlly(getTag())) {
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(SimpleClans.getInstance().getLang("has.been.disbanded.alliance.ended"), Helper.capitalize(getName())));
|
||||
c.addBb(disbanded, ChatColor.AQUA + MessageFormat.format(lang("has.been.disbanded.alliance.ended"), getName()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1633,7 +1584,8 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
*
|
||||
* @return the flags
|
||||
*/
|
||||
public String getFlags() {
|
||||
@SuppressWarnings("unchecked")
|
||||
public String getFlags() {
|
||||
JSONObject json = new JSONObject();
|
||||
|
||||
// writing the list of flags to json
|
||||
@@ -1703,8 +1655,8 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
|
||||
public void validateWarring() {
|
||||
for (Iterator iter = warringClans.keySet().iterator(); iter.hasNext(); ) {
|
||||
String clanName = (String) iter.next();
|
||||
for (Iterator<String> iter = warringClans.keySet().iterator(); iter.hasNext(); ) {
|
||||
String clanName = iter.next();
|
||||
|
||||
Clan clan = SimpleClans.getInstance().getClanManager().getClan(clanName);
|
||||
|
||||
@@ -1717,7 +1669,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
}
|
||||
|
||||
public void setHomeLocation(Location home) {
|
||||
public void setHomeLocation(@Nullable Location home) {
|
||||
if (home == null) {
|
||||
homeY = 0;
|
||||
homeX = 0;
|
||||
@@ -1734,7 +1686,7 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
SimpleClans.getInstance().getStorageManager().updateClan(this);
|
||||
}
|
||||
|
||||
public Location getHomeLocation() {
|
||||
public @Nullable Location getHomeLocation() {
|
||||
if (homeWorld == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -1776,6 +1728,24 @@ public class Clan implements Serializable, Comparable<Clan> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the fee is enabled
|
||||
*
|
||||
* @return true if enabled
|
||||
*/
|
||||
public boolean isMemberFeeEnabled() {
|
||||
return feeEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables or disables the fee
|
||||
*
|
||||
* @param enable
|
||||
*/
|
||||
public void setMemberFeeEnabled(boolean enable) {
|
||||
feeEnabled = enable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the allowWithdraw
|
||||
*/
|
||||
@@ -1803,4 +1773,104 @@ 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 @Nullable Rank getRank(String name) {
|
||||
if (name != null) {
|
||||
for (Rank r : ranks) {
|
||||
if (r.getName().equals(name)) {
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setBanner(@Nullable ItemStack banner) {
|
||||
if (banner == null) {
|
||||
this.banner = null;
|
||||
return;
|
||||
}
|
||||
banner = banner.clone();
|
||||
banner.setAmount(1);
|
||||
ItemMeta itemMeta = banner.getItemMeta();
|
||||
if (itemMeta != null) {
|
||||
// hides the banner patterns from the lore (I don't know why it's called POTION_EFFECTS)
|
||||
itemMeta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
|
||||
itemMeta.setLore(null);
|
||||
itemMeta.setDisplayName(null);
|
||||
banner.setItemMeta(itemMeta);
|
||||
}
|
||||
this.banner = banner;
|
||||
}
|
||||
|
||||
public @Nullable ItemStack getBanner() {
|
||||
if (banner != null) {
|
||||
return banner.clone();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@ package net.sacredlabyrinth.phaed.simpleclans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
@@ -10,8 +12,12 @@ import org.json.simple.JSONValue;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.MessageFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
@@ -32,6 +38,7 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
private long lastSeen;
|
||||
private long joinDate;
|
||||
private Set<String> pastClans = new HashSet<>();
|
||||
private final Map<String, Long> resignTimes = new HashMap<>();
|
||||
private VoteResult vote;
|
||||
private Channel channel;
|
||||
|
||||
@@ -47,6 +54,7 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
private boolean clanChatMute = false;
|
||||
|
||||
private String rank = "";
|
||||
private @Nullable Locale locale;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -74,19 +82,19 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
}
|
||||
|
||||
/**
|
||||
* @param playerUniqueId
|
||||
* @param uuid the Player's UUID
|
||||
*/
|
||||
public ClanPlayer(UUID playerUniqueId)
|
||||
public ClanPlayer(UUID uuid)
|
||||
{
|
||||
this.uniqueId = playerUniqueId;
|
||||
Player OnlinePlayer = SimpleClans.getInstance().getServer().getPlayer(playerUniqueId);
|
||||
if (OnlinePlayer != null)
|
||||
this.uniqueId = uuid;
|
||||
Player onlinePlayer = SimpleClans.getInstance().getServer().getPlayer(uuid);
|
||||
if (onlinePlayer != null)
|
||||
{
|
||||
this.displayName = OnlinePlayer.getName();
|
||||
this.displayName = onlinePlayer.getName();
|
||||
} else
|
||||
{
|
||||
OfflinePlayer OfflinePlayer = SimpleClans.getInstance().getServer().getOfflinePlayer(playerUniqueId);
|
||||
this.displayName = OfflinePlayer.getName();
|
||||
OfflinePlayer offlinePlayer = SimpleClans.getInstance().getServer().getOfflinePlayer(uuid);
|
||||
this.displayName = offlinePlayer.getName() != null ? offlinePlayer.getName() : "null";
|
||||
}
|
||||
this.lastSeen = (new Date()).getTime();
|
||||
this.joinDate = (new Date()).getTime();
|
||||
@@ -116,15 +124,8 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(ClanPlayer other)
|
||||
{
|
||||
if (SimpleClans.getInstance().hasUUID())
|
||||
{
|
||||
return this.getUniqueId().compareTo(other.getUniqueId());
|
||||
} else
|
||||
{
|
||||
return this.getName().compareToIgnoreCase(other.getName());
|
||||
}
|
||||
public int compareTo(ClanPlayer other) {
|
||||
return this.getUniqueId().compareTo(other.getUniqueId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -274,25 +275,33 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a verbal representation of how many days ago a player was last seen
|
||||
*
|
||||
* @return
|
||||
* @return a verbal representation of how many days ago a player was last seen
|
||||
*/
|
||||
public String getLastSeenDaysString()
|
||||
{
|
||||
return getLastSeenDaysString(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param viewer the Player viewing the last seen days
|
||||
* @return a verbal representation of how many days ago a player was last seen
|
||||
*/
|
||||
public String getLastSeenDaysString(@Nullable Player viewer)
|
||||
{
|
||||
double days = Dates.differenceInDays(new Timestamp(lastSeen), new Timestamp((new Date()).getTime()));
|
||||
|
||||
if (days < 1)
|
||||
{
|
||||
return SimpleClans.getInstance().getLang("today");
|
||||
return lang("today", viewer);
|
||||
}
|
||||
else if (Math.round(days) == 1)
|
||||
{
|
||||
return MessageFormat.format(SimpleClans.getInstance().getLang("1.color.day"), ChatColor.GRAY);
|
||||
return lang("1.color.day", viewer, ChatColor.GRAY);
|
||||
}
|
||||
else
|
||||
{
|
||||
return MessageFormat.format(SimpleClans.getInstance().getLang("many.color.days"), Math.round(days), ChatColor.GRAY);
|
||||
return lang("many.color.days", viewer, Math.round(days), ChatColor.GRAY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,6 +338,7 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
/**
|
||||
* Adds one rival kill to this player (does not update clanplayer to db)
|
||||
*/
|
||||
@Deprecated
|
||||
public void addRivalKill()
|
||||
{
|
||||
setRivalKills(getRivalKills() + 1);
|
||||
@@ -357,6 +367,7 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
/**
|
||||
* Adds one civilian kill to this player (does not update clanplayer to db)
|
||||
*/
|
||||
@Deprecated
|
||||
public void addCivilianKill()
|
||||
{
|
||||
setCivilianKills(getCivilianKills() + 1);
|
||||
@@ -385,10 +396,27 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
/**
|
||||
* Adds one civilian kill to this player (does not update clanplayer to db)
|
||||
*/
|
||||
@Deprecated
|
||||
public void addNeutralKill()
|
||||
{
|
||||
setNeutralKills(getNeutralKills() + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds one kill to this player (does not update to db)
|
||||
*/
|
||||
public void addKill(Kill.Type type) {
|
||||
switch (type) {
|
||||
case CIVILIAN:
|
||||
civilianKills++;
|
||||
break;
|
||||
case NEUTRAL:
|
||||
neutralKills++;
|
||||
break;
|
||||
case RIVAL:
|
||||
rivalKills++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether this player is allowing friendly fire
|
||||
@@ -522,12 +550,24 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of the last seen date
|
||||
*
|
||||
* @return
|
||||
* @return a string representation of the last seen date
|
||||
*/
|
||||
@NotNull
|
||||
public String getLastSeenString()
|
||||
{
|
||||
return getLastSeenString(null);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param viewer the Player viewing the last seen
|
||||
* @return a string representation of the last seen date
|
||||
*/
|
||||
public String getLastSeenString(@Nullable Player viewer) {
|
||||
if (toPlayer() != null) {
|
||||
return lang("online", viewer);
|
||||
}
|
||||
return new java.text.SimpleDateFormat("MMM dd, ''yy h:mm a").format(new Date(this.lastSeen));
|
||||
}
|
||||
|
||||
@@ -549,16 +589,16 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
*/
|
||||
public String getPackedPastClans()
|
||||
{
|
||||
String PackedPastClans = "";
|
||||
String packedPastClans = "";
|
||||
|
||||
Set<String> pt = getPastClans();
|
||||
|
||||
for (String pastClan : pt)
|
||||
{
|
||||
PackedPastClans += pastClan + "|";
|
||||
packedPastClans += pastClan + "|";
|
||||
}
|
||||
|
||||
return Helper.stripTrailing(PackedPastClans, "|");
|
||||
return Helper.stripTrailing(packedPastClans, "|");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -592,28 +632,39 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a separator delimited string with the color tags for all past clans this player has been in
|
||||
*
|
||||
* @param sep
|
||||
* @return
|
||||
* @param sep the separator
|
||||
* @return a separator delimited string with the color tags for all past clans this player has been in
|
||||
*/
|
||||
public String getPastClansString(String sep)
|
||||
@NotNull
|
||||
public String getPastClansString(@NotNull String sep)
|
||||
{
|
||||
String out = "";
|
||||
return getPastClansString(sep, null);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param sep the separator
|
||||
* @param viewer the Player viewing the clan's string
|
||||
* @return a separator delimited string with the color tags for all past clans this player has been in
|
||||
*/
|
||||
@NotNull
|
||||
public String getPastClansString(String sep, @Nullable Player viewer) {
|
||||
StringBuilder out = new StringBuilder();
|
||||
|
||||
for (String pastClan : getPastClans())
|
||||
{
|
||||
out += pastClan + sep;
|
||||
out.append(pastClan).append(sep);
|
||||
}
|
||||
|
||||
out = Helper.stripTrailing(out, sep);
|
||||
out = new StringBuilder(Helper.stripTrailing(out.toString(), sep));
|
||||
|
||||
if (out.trim().isEmpty())
|
||||
if (out.toString().trim().isEmpty())
|
||||
{
|
||||
return SimpleClans.getInstance().getLang("none");
|
||||
return lang("none", viewer);
|
||||
}
|
||||
|
||||
return out;
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -628,12 +679,58 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
// return pc;
|
||||
return pastClans;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a map containing the time the player resigned from certain clans
|
||||
*
|
||||
* @return the resign times
|
||||
*/
|
||||
public Map<String, Long> getResignTimes() {
|
||||
return resignTimes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the time in millis when the player resigned from the clan
|
||||
*
|
||||
* @param tag
|
||||
* @return the time in millis
|
||||
*/
|
||||
public Long getResignTime(String tag) {
|
||||
return resignTimes.get(tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the resign times (does not update to db)
|
||||
*
|
||||
* @param resignTimes
|
||||
*/
|
||||
public void setResignTimes(Map<String, Long> resignTimes) {
|
||||
if (resignTimes != null) {
|
||||
final int cooldown = SimpleClans.getInstance().getSettingsManager().getRejoinCooldown();
|
||||
resignTimes.forEach((k, v) -> {
|
||||
long timePassed = Instant.ofEpochMilli(v).until(Instant.now(), ChronoUnit.MINUTES);
|
||||
if (timePassed < cooldown) {
|
||||
this.resignTimes.put(k, v);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the clan to the resign times map
|
||||
*
|
||||
* @param tag
|
||||
*/
|
||||
public void addResignTime(String tag) {
|
||||
if (tag != null) resignTimes.put(tag, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns this player's clan
|
||||
*
|
||||
* @return the clan
|
||||
*/
|
||||
@Nullable
|
||||
public Clan getClan()
|
||||
{
|
||||
return clan;
|
||||
@@ -708,7 +805,8 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
*
|
||||
* @return the flags
|
||||
*/
|
||||
public String getFlags()
|
||||
@SuppressWarnings("unchecked")
|
||||
public String getFlags()
|
||||
{
|
||||
JSONObject json = new JSONObject();
|
||||
|
||||
@@ -916,16 +1014,60 @@ 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;
|
||||
}
|
||||
|
||||
public @NotNull Locale getLocale() {
|
||||
if (locale == null) {
|
||||
return SimpleClans.getInstance().getSettingsManager().getLanguage();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
|
||||
public void setLocale(@Nullable Locale locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
public enum Channel
|
||||
{
|
||||
CLAN,
|
||||
@@ -933,7 +1075,7 @@ public class ClanPlayer implements Serializable, Comparable<ClanPlayer>
|
||||
NONE
|
||||
}
|
||||
|
||||
public Player toPlayer()
|
||||
public @Nullable Player toPlayer()
|
||||
{
|
||||
if (this.uniqueId != null)
|
||||
{
|
||||
|
||||
@@ -1,138 +1,194 @@
|
||||
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;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @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()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @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 lang("bb.moments");
|
||||
}
|
||||
|
||||
if (seconds < 60) {
|
||||
return seconds + lang("bb.seconds");
|
||||
}
|
||||
|
||||
if (seconds < 3600) {
|
||||
long count = (long) Math.ceil(seconds / 60f);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + lang("bb.minutes");
|
||||
} else {
|
||||
res = lang("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 / 3600f);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + lang("bb.hours");
|
||||
} else {
|
||||
res = lang("bb.one.hour");
|
||||
}
|
||||
if (depth > 0) {
|
||||
return res + ", " + formatTime(seconds % 3600, --depth);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
long count = (long) Math.ceil(seconds / 86400f);
|
||||
String res;
|
||||
if (count > 1) {
|
||||
res = count + lang("bb.days");
|
||||
} else {
|
||||
res = lang("bb.one.day");
|
||||
}
|
||||
if (depth > 0) {
|
||||
return res + ", " + formatTime(seconds % 86400, --depth);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,29 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.KDRFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
|
||||
/**
|
||||
@@ -32,6 +43,153 @@ public class Helper {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link KDRFormat}
|
||||
*/
|
||||
@Deprecated
|
||||
public static String formatKDR(float kdr) {
|
||||
DecimalFormat formatter = new DecimalFormat("#.#");
|
||||
return formatter.format(kdr);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Locale forLanguageTag(@Nullable String languageTag) {
|
||||
Locale defaultLanguage = SimpleClans.getInstance().getSettingsManager().getLanguage();
|
||||
if (languageTag == null) {
|
||||
return defaultLanguage;
|
||||
}
|
||||
return Locale.forLanguageTag(languageTag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Player locale
|
||||
*
|
||||
* @param player the player
|
||||
* @return the locale
|
||||
*/
|
||||
@Nullable
|
||||
public static Locale getLocale(@NotNull Player player) {
|
||||
ClanPlayer clanPlayer = SimpleClans.getInstance().getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
if (clanPlayer != null) {
|
||||
return clanPlayer.getLocale();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @param resignTimes
|
||||
* @return a JSON String
|
||||
*/
|
||||
public static String resignTimesToJson(Map<String, Long> resignTimes) {
|
||||
return JSONObject.toJSONString(resignTimes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a JSON String to a resign times map
|
||||
*
|
||||
* @param json JSON String
|
||||
* @return a map
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Map<String, Long> resignTimesFromJson(String json) {
|
||||
if (json != null) {
|
||||
try {
|
||||
return (Map<String, Long>) new JSONParser().parse(json);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the delay in seconds to the specified hour and minute.
|
||||
*
|
||||
* @param hour hour
|
||||
* @param minute minute
|
||||
* @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(hour, minute));
|
||||
long delay;
|
||||
if (now.isAfter(d)) {
|
||||
delay = now.until(d.plusDays(1), ChronoUnit.SECONDS);
|
||||
} else {
|
||||
delay = now.until(d, ChronoUnit.SECONDS);
|
||||
}
|
||||
return delay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a players full color name if he is online
|
||||
*
|
||||
@@ -210,12 +368,17 @@ public class Helper {
|
||||
* @param hexValue
|
||||
* @return
|
||||
*/
|
||||
public static String toColor(String hexValue) {
|
||||
@NotNull
|
||||
public static String toColor(@Nullable String hexValue) {
|
||||
if (hexValue == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return ChatColor.getByChar(hexValue).toString();
|
||||
ChatColor color = ChatColor.getByChar(hexValue);
|
||||
if (color == null) {
|
||||
return "";
|
||||
}
|
||||
return color.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -265,6 +428,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
|
||||
@@ -348,9 +525,9 @@ public class Helper {
|
||||
* @return
|
||||
*/
|
||||
public static String stripColors(String msg) {
|
||||
String out = msg.replaceAll("[&][0-9a-f]", "");
|
||||
String out = msg.replaceAll("[&][0-9a-fk-or]", "");
|
||||
out = out.replaceAll(String.valueOf((char) 194), "");
|
||||
return out.replaceAll("[\u00a7][0-9a-f]", "");
|
||||
return out.replaceAll("[\u00a7][0-9a-fk-or]", "");
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -405,7 +582,7 @@ public class Helper {
|
||||
|
||||
String out = msg;
|
||||
String first = msg.substring(0, sep.length());
|
||||
String last = msg.substring(msg.length() - sep.length(), msg.length());
|
||||
String last = msg.substring(msg.length() - sep.length());
|
||||
|
||||
if (first.equals(sep)) {
|
||||
out = msg.substring(sep.length());
|
||||
@@ -516,7 +693,7 @@ public class Helper {
|
||||
* @param str
|
||||
* @return
|
||||
*/
|
||||
public static String escapeQuotes(String str) {
|
||||
public static String escapeQuotes(@Nullable String str) {
|
||||
if (str == null) {
|
||||
return "";
|
||||
}
|
||||
@@ -579,7 +756,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();
|
||||
@@ -587,7 +764,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);
|
||||
@@ -605,11 +783,7 @@ public class Helper {
|
||||
}
|
||||
|
||||
public static Player getPlayer(String playerName) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return SimpleClans.getInstance().getServer().getPlayer(UUIDMigration.getForcedPlayerUUID(playerName));
|
||||
}
|
||||
|
||||
return SimpleClans.getInstance().getServer().getPlayer(playerName);
|
||||
return SimpleClans.getInstance().getServer().getPlayer(UUIDMigration.getForcedPlayerUUID(playerName));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -625,25 +799,25 @@ 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 rank = cp.getRankId().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRankDisplayName());
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -660,14 +834,14 @@ 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 rank = cp.getRankId().isEmpty() ? null : ChatColor.translateAlternateColorCodes('&', cp.getRankDisplayName());
|
||||
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;
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public class Kill {
|
||||
|
||||
private final ClanPlayer killer;
|
||||
private final ClanPlayer victim;
|
||||
private final LocalDateTime time;
|
||||
|
||||
public Kill(ClanPlayer killer, ClanPlayer victim, LocalDateTime time) {
|
||||
this.killer = killer;
|
||||
this.victim = victim;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public ClanPlayer getKiller() {
|
||||
return killer;
|
||||
}
|
||||
|
||||
public ClanPlayer getVictim() {
|
||||
return victim;
|
||||
}
|
||||
|
||||
public LocalDateTime getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
CIVILIAN("c"), RIVAL("r"), NEUTRAL("n");
|
||||
|
||||
Type(String shortName) {
|
||||
this.shortName = shortName;
|
||||
}
|
||||
|
||||
private final String shortName;
|
||||
|
||||
public String getShortname() {
|
||||
return shortName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
public enum PermissionLevel {
|
||||
LEADER, TRUSTED
|
||||
}
|
||||
@@ -1,46 +1,53 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class PlayerNameTabCompleter implements TabCompleter {
|
||||
private SimpleClans plugin;
|
||||
private final SimpleClans plugin;
|
||||
|
||||
public PlayerNameTabCompleter() {
|
||||
plugin = SimpleClans.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
|
||||
public List<String> onTabComplete(@NotNull CommandSender commandSender, Command command, @NotNull String s, String[] strings) {
|
||||
if (command.getName().equalsIgnoreCase(plugin.getSettingsManager().getCommandClan())) {
|
||||
if (strings.length < 2) {
|
||||
return null;
|
||||
}
|
||||
Player player = null;
|
||||
if (commandSender instanceof Player) {
|
||||
player = (Player) commandSender;
|
||||
}
|
||||
|
||||
if (strings[0].equalsIgnoreCase(plugin.getLang("lookup.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("ban.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("unban.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("kick.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("trust.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("untrust.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("promote.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("demote.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("setrank.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("place.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("invite.command")) ||
|
||||
strings[0].equalsIgnoreCase(plugin.getLang("kills.command"))) {
|
||||
if (strings[0].equalsIgnoreCase(lang("lookup.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("ban.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("unban.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("kick.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("trust.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("untrust.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("promote.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("demote.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("setrank.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("place.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("invite.command", player)) ||
|
||||
strings[0].equalsIgnoreCase(lang("kills.command", player))) {
|
||||
List<String> list = new ArrayList<>();
|
||||
|
||||
for (OfflinePlayer player : plugin.getServer().getOnlinePlayers()) {
|
||||
if (player.getName().startsWith(strings[1])) {
|
||||
list.add(player.getName());
|
||||
for (Player p : plugin.getServer().getOnlinePlayers()) {
|
||||
if (p.getName().startsWith(strings[1])) {
|
||||
list.add(p.getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,88 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*
|
||||
*/
|
||||
public enum RankPermission {
|
||||
|
||||
ALLY_ADD("simpleclans.leader.ally", PermissionLevel.LEADER),
|
||||
ALLY_CHAT("simpleclans.member.ally", PermissionLevel.TRUSTED),
|
||||
ALLY_REMOVE("simpleclans.leader.ally", PermissionLevel.LEADER),
|
||||
BANK_BALANCE("simpleclans.member.bank", PermissionLevel.TRUSTED),
|
||||
BANK_DEPOSIT("simpleclans.member.bank", PermissionLevel.LEADER),
|
||||
BANK_WITHDRAW("simpleclans.member.bank", PermissionLevel.LEADER),
|
||||
BB_ADD("simpleclans.member.bb-add", PermissionLevel.TRUSTED),
|
||||
BB_CLEAR("simpleclans.leader.bb-clear", PermissionLevel.LEADER),
|
||||
COORDS("simpleclans.member.coords", PermissionLevel.TRUSTED),
|
||||
FEE_ENABLE("simpleclans.leader.fee", PermissionLevel.LEADER),
|
||||
FEE_SET("simpleclans.leader.fee", PermissionLevel.LEADER),
|
||||
HOME_REGROUP("simpleclans.leader.home-regroup", PermissionLevel.LEADER),
|
||||
HOME_SET("simpleclans.leader.home-set", PermissionLevel.LEADER),
|
||||
HOME_TP("simpleclans.member.home", PermissionLevel.TRUSTED),
|
||||
INVITE("simpleclans.leader.invite", PermissionLevel.LEADER),
|
||||
KICK("simpleclans.leader.kick", PermissionLevel.LEADER),
|
||||
MODTAG("simpleclans.leader.modtag", PermissionLevel.LEADER),
|
||||
RANK_DISPLAYNAME("simpleclans.leader.rank.setdisplayname", PermissionLevel.LEADER),
|
||||
RANK_LIST("simpleclans.leader.rank.list", PermissionLevel.LEADER),
|
||||
RIVAL_ADD("simpleclans.leader.rival", PermissionLevel.LEADER),
|
||||
RIVAL_REMOVE("simpleclans.leader.rival", PermissionLevel.LEADER),
|
||||
WAR_END("simpleclans.leader.war", PermissionLevel.LEADER),
|
||||
WAR_START("simpleclans.leader.war", PermissionLevel.LEADER),
|
||||
STATS("simpleclans.member.stats", PermissionLevel.TRUSTED),
|
||||
VITALS("simpleclans.member.vitals", PermissionLevel.TRUSTED),
|
||||
KILLS("simpleclans.member.kills", PermissionLevel.TRUSTED),
|
||||
DESCRIPTION("simpleclans.leader.description", PermissionLevel.LEADER),
|
||||
MOSTKILLED("simpleclans.mod.mostkilled", PermissionLevel.TRUSTED),
|
||||
FRIENDLYFIRE("simpleclans.leader.ff", PermissionLevel.LEADER),
|
||||
SETBANNER("simpleclans.leader.setbanner", PermissionLevel.LEADER);
|
||||
|
||||
private final String bukkitPermission;
|
||||
private final PermissionLevel permissionLevel;
|
||||
|
||||
RankPermission(String bukkitPermission, PermissionLevel permissionLevel) {
|
||||
this.bukkitPermission = bukkitPermission;
|
||||
this.permissionLevel = permissionLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the Bukkit equivalent to this rank permission
|
||||
*/
|
||||
public String getBukkitPermission() {
|
||||
return bukkitPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the PermissionLevel
|
||||
*
|
||||
*/
|
||||
public PermissionLevel getPermissionLevel() {
|
||||
return permissionLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().replace("_", ".").toLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param permission the permission
|
||||
* @return true if this is a valid rank permission
|
||||
*/
|
||||
@Contract("null -> false")
|
||||
public static boolean isValid(@Nullable String permission) {
|
||||
for (RankPermission p : values()) {
|
||||
if (p.toString().equalsIgnoreCase(permission)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,186 +1,298 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.listeners.SCEntityListener;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.listeners.SCPlayerListener;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* @author Phaed
|
||||
*/
|
||||
public class SimpleClans extends JavaPlugin {
|
||||
|
||||
private ArrayList<String> messages = new ArrayList<>();
|
||||
private static SimpleClans instance;
|
||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||
private ClanManager clanManager;
|
||||
private RequestManager requestManager;
|
||||
private StorageManager storageManager;
|
||||
private SettingsManager settingsManager;
|
||||
private PermissionsManager permissionsManager;
|
||||
private TeleportManager teleportManager;
|
||||
private LanguageManager languageManager;
|
||||
private ChatFormatMigration chatFormatMigration;
|
||||
private boolean hasUUID;
|
||||
|
||||
/**
|
||||
* @return the logger
|
||||
*/
|
||||
public static Logger getLog() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param msg
|
||||
*/
|
||||
public static void debug(String msg) {
|
||||
if (getInstance().getSettingsManager().isDebugging()) {
|
||||
logger.log(Level.INFO, msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the instance
|
||||
*/
|
||||
public static SimpleClans getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static void log(String msg, Object... arg) {
|
||||
if (arg == null || arg.length == 0) {
|
||||
logger.log(Level.INFO, msg);
|
||||
} else {
|
||||
logger.log(Level.INFO, MessageFormat.format(msg, arg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
instance = this;
|
||||
|
||||
settingsManager = new SettingsManager();
|
||||
this.hasUUID = UUIDMigration.canReturnUUID();
|
||||
languageManager = new LanguageManager();
|
||||
|
||||
permissionsManager = new PermissionsManager();
|
||||
requestManager = new RequestManager();
|
||||
clanManager = new ClanManager();
|
||||
storageManager = new StorageManager();
|
||||
teleportManager = new TeleportManager();
|
||||
chatFormatMigration = new ChatFormatMigration();
|
||||
|
||||
chatFormatMigration.migrateAllyChat();
|
||||
chatFormatMigration.migrateClanChat();
|
||||
|
||||
logger.info(MessageFormat.format(getLang("version.loaded"), getDescription().getName(), getDescription().getVersion()));
|
||||
|
||||
getServer().getPluginManager().registerEvents(new SCEntityListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new SCPlayerListener(), this);
|
||||
|
||||
permissionsManager.loadPermissions();
|
||||
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandClan());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandAccept());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandDeny());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandMore());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandAlly());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandGlobal());
|
||||
|
||||
getCommand(getSettingsManager().getCommandClan()).setExecutor(new ClanCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandAccept()).setExecutor(new AcceptCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandDeny()).setExecutor(new DenyCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandMore()).setExecutor(new MoreCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandAlly()).setExecutor(new AllyCommandExecutor());
|
||||
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());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
getServer().getScheduler().cancelTasks(this);
|
||||
getStorageManager().closeConnection();
|
||||
getPermissionsManager().savePermissions();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clanManager
|
||||
*/
|
||||
public ClanManager getClanManager() {
|
||||
return clanManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the requestManager
|
||||
*/
|
||||
public RequestManager getRequestManager() {
|
||||
return requestManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the storageManager
|
||||
*/
|
||||
public StorageManager getStorageManager() {
|
||||
return storageManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the settingsManager
|
||||
*/
|
||||
public SettingsManager getSettingsManager() {
|
||||
return settingsManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the permissionsManager
|
||||
*/
|
||||
public PermissionsManager getPermissionsManager() {
|
||||
return permissionsManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param msg the path within the language file
|
||||
* @return the lang
|
||||
*/
|
||||
public String getLang(String msg) {
|
||||
return languageManager.get(msg);
|
||||
}
|
||||
|
||||
public TeleportManager getTeleportManager() {
|
||||
return teleportManager;
|
||||
}
|
||||
|
||||
public List<String> getMessages() {
|
||||
return messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the hasUUID
|
||||
*/
|
||||
public boolean hasUUID() {
|
||||
return this.hasUUID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param trueOrFalse
|
||||
*/
|
||||
public void setUUID(boolean trueOrFalse) {
|
||||
this.hasUUID = trueOrFalse;
|
||||
}
|
||||
|
||||
public LanguageManager getLanguageManager() {
|
||||
return languageManager;
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.AcceptCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.AllyCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.ClanCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.DenyCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.GlobalCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.MoreCommandExecutor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.language.LanguageMigration;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.language.LanguageResource;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.listeners.SCEntityListener;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.listeners.SCPlayerListener;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.ClanManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.PermissionsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.PlaceholdersManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.RequestManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.StorageManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.TeleportManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.tasks.CollectFeeTask;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.tasks.CollectUpkeepTask;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.tasks.SaveDataTask;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.tasks.UpkeepWarningTask;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryController;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.ChatFormatMigration;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.UpdateChecker;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Phaed
|
||||
*/
|
||||
public class SimpleClans extends JavaPlugin {
|
||||
|
||||
private final ArrayList<String> messages = new ArrayList<>();
|
||||
private static SimpleClans instance;
|
||||
private static LanguageResource languageResource;
|
||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||
private ClanManager clanManager;
|
||||
private RequestManager requestManager;
|
||||
private StorageManager storageManager;
|
||||
private SettingsManager settingsManager;
|
||||
private PermissionsManager permissionsManager;
|
||||
private TeleportManager teleportManager;
|
||||
private boolean hasUUID;
|
||||
|
||||
/**
|
||||
* @return the logger
|
||||
*/
|
||||
@Deprecated
|
||||
public static Logger getLog() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param msg
|
||||
*/
|
||||
public static void debug(String msg) {
|
||||
if (getInstance().getSettingsManager().isDebugging()) {
|
||||
logger.log(Level.INFO, msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the instance
|
||||
*/
|
||||
public static SimpleClans getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void log(String msg, Object... arg) {
|
||||
if (arg == null || arg.length == 0) {
|
||||
logger.log(Level.INFO, msg);
|
||||
} else {
|
||||
logger.log(Level.INFO, MessageFormat.format(msg, arg));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
instance = this;
|
||||
new LanguageMigration(this).migrate();
|
||||
settingsManager = new SettingsManager();
|
||||
languageResource = new LanguageResource();
|
||||
this.hasUUID = UUIDMigration.canReturnUUID();
|
||||
|
||||
permissionsManager = new PermissionsManager();
|
||||
requestManager = new RequestManager();
|
||||
clanManager = new ClanManager();
|
||||
storageManager = new StorageManager();
|
||||
teleportManager = new TeleportManager();
|
||||
|
||||
ChatFormatMigration chatFormatMigration = new ChatFormatMigration();
|
||||
chatFormatMigration.migrateAllyChat();
|
||||
chatFormatMigration.migrateClanChat();
|
||||
|
||||
getServer().getPluginManager().registerEvents(new SCEntityListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new SCPlayerListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new InventoryController(), this);
|
||||
|
||||
permissionsManager.loadPermissions();
|
||||
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandClan());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandAccept());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandDeny());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandMore());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandAlly());
|
||||
CommandHelper.registerCommand(getSettingsManager().getCommandGlobal());
|
||||
|
||||
getCommand(getSettingsManager().getCommandClan()).setExecutor(new ClanCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandAccept()).setExecutor(new AcceptCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandDeny()).setExecutor(new DenyCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandMore()).setExecutor(new MoreCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandAlly()).setExecutor(new AllyCommandExecutor());
|
||||
getCommand(getSettingsManager().getCommandGlobal()).setExecutor(new GlobalCommandExecutor());
|
||||
|
||||
getCommand(getSettingsManager().getCommandClan()).setTabCompleter(new PlayerNameTabCompleter());
|
||||
getLogger().info("Multithreading: " + SimpleClans.getInstance().getSettingsManager().getUseThreads());
|
||||
getLogger().info("BungeeCord: " + SimpleClans.getInstance().getSettingsManager().getUseBungeeCord());
|
||||
getLogger().info("Help us translate SimpleClans to your language! Access https://crowdin.com/project/simpleclans/");
|
||||
|
||||
startTasks();
|
||||
startMetrics();
|
||||
hookIntoPAPI();
|
||||
new UpdateChecker(this).check();
|
||||
}
|
||||
|
||||
private void hookIntoPAPI() {
|
||||
if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
getLogger().info("PlaceholderAPI found. Registering hook...");
|
||||
new PlaceholdersManager(this).register();
|
||||
}
|
||||
}
|
||||
|
||||
private void startMetrics() {
|
||||
Metrics metrics = new Metrics(this, 7131);
|
||||
SettingsManager sm = getSettingsManager();
|
||||
ClanManager cm = getClanManager();
|
||||
String on = "enabled";
|
||||
String off = "disabled";
|
||||
|
||||
metrics.addCustomChart(new Metrics.SingleLineChart("clans", () -> cm.getClans().size()));
|
||||
metrics.addCustomChart(new Metrics.SingleLineChart("clan_players", () -> cm.getAllClanPlayers().size()));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("language", () -> sm.getLanguage().toString()));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("machine_language", () -> Locale.getDefault().toString()));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("language_chooser", () -> sm.isLanguagePerPlayer() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("database", () -> sm.isUseMysql() ? "MySQL" : "SQLite"));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("save_periodically", () -> sm.isSavePeriodically() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("save_interval", () -> String.valueOf(sm.getSaveInterval())));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("upkeep", () -> sm.isClanUpkeep() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("member_fee", () -> sm.isMemberFee() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("rejoin_cooldown", () -> sm.isRejoinCooldown() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("clan_verification", () -> sm.isRequireVerification() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("money_per_kill", () -> sm.isMoneyPerKill() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("threads", () -> sm.getUseThreads() ? on : off));
|
||||
metrics.addCustomChart(new Metrics.SimplePie("bungeecord", () -> sm.getUseBungeeCord() ? on : off));
|
||||
}
|
||||
|
||||
private void startTasks() {
|
||||
if (getSettingsManager().isSavePeriodically()) {
|
||||
new SaveDataTask().start();
|
||||
}
|
||||
if (getSettingsManager().isMemberFee()) {
|
||||
new CollectFeeTask().start();
|
||||
}
|
||||
if (getSettingsManager().isClanUpkeep()) {
|
||||
new CollectUpkeepTask().start();
|
||||
new UpkeepWarningTask().start();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
getServer().getScheduler().cancelTasks(this);
|
||||
if (getSettingsManager().isSavePeriodically()) {
|
||||
getStorageManager().saveModified();
|
||||
}
|
||||
getStorageManager().closeConnection();
|
||||
getPermissionsManager().savePermissions();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clanManager
|
||||
*/
|
||||
public ClanManager getClanManager() {
|
||||
return clanManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the requestManager
|
||||
*/
|
||||
public RequestManager getRequestManager() {
|
||||
return requestManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the storageManager
|
||||
*/
|
||||
public StorageManager getStorageManager() {
|
||||
return storageManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the settingsManager
|
||||
*/
|
||||
public SettingsManager getSettingsManager() {
|
||||
return settingsManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the permissionsManager
|
||||
*/
|
||||
@NotNull
|
||||
public PermissionsManager getPermissionsManager() {
|
||||
return permissionsManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param key the path within the language file
|
||||
* @return the lang
|
||||
*/
|
||||
@Deprecated
|
||||
public String getLang(@NotNull String key) {
|
||||
return getLang(key, null);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String getLang(@NotNull String key, @Nullable Player player) {
|
||||
return lang(key, player);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String lang(@NotNull String key, @Nullable Player player, Object... arguments) {
|
||||
Locale locale = getInstance().getSettingsManager().getLanguage();
|
||||
if (player != null && instance.getSettingsManager().isLanguagePerPlayer()) {
|
||||
Locale playerLocale = Helper.getLocale(player);
|
||||
if (playerLocale != null) {
|
||||
locale = playerLocale;
|
||||
}
|
||||
}
|
||||
|
||||
return MessageFormat.format(
|
||||
ChatColor.translateAlternateColorCodes(
|
||||
'&', languageResource.getLang(key, locale)), arguments);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String lang(@NotNull String key, @NotNull CommandSender sender, Object... arguments) {
|
||||
if (sender instanceof Player) {
|
||||
return lang(key, (Player) sender, arguments);
|
||||
} else {
|
||||
return lang(key, null, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String lang(@NotNull String key, Object... arguments) {
|
||||
return lang(key, null, arguments);
|
||||
}
|
||||
|
||||
public TeleportManager getTeleportManager() {
|
||||
return teleportManager;
|
||||
}
|
||||
|
||||
public List<String> getMessages() {
|
||||
return messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the hasUUID
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasUUID() {
|
||||
return this.hasUUID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param trueOrFalse
|
||||
*/
|
||||
public void setUUID(boolean trueOrFalse) {
|
||||
this.hasUUID = trueOrFalse;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import java.util.UUID;
|
||||
|
||||
public class TeleportState {
|
||||
private UUID playerUniqueId;
|
||||
private String playerName;
|
||||
private Location playerLocation;
|
||||
private Location destination;
|
||||
private int counter;
|
||||
@@ -17,7 +16,6 @@ public class TeleportState {
|
||||
public TeleportState(Player player, Location dest, String clanName) {
|
||||
this.destination = dest;
|
||||
this.playerLocation = player.getLocation();
|
||||
this.playerName = player.getName();
|
||||
this.clanName = clanName;
|
||||
this.counter = SimpleClans.getInstance().getSettingsManager().getWaitSecs();
|
||||
this.playerUniqueId = player.getUniqueId();
|
||||
@@ -50,11 +48,7 @@ public class TeleportState {
|
||||
* @return
|
||||
*/
|
||||
public Player getPlayer() {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return SimpleClans.getInstance().getServer().getPlayer(this.playerUniqueId);
|
||||
} else {
|
||||
return SimpleClans.getInstance().getServer().getPlayer(this.playerName);
|
||||
}
|
||||
return SimpleClans.getInstance().getServer().getPlayer(this.playerUniqueId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,6 +4,7 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -29,12 +30,12 @@ public class AlliancesCommand {
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.clan.alliances"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.clan.alliances", player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.alliances")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -44,11 +45,11 @@ public class AlliancesCommand {
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("alliances") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + lang("alliances",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setAlignment("l", "l");
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("clan"), plugin.getLang("allies"));
|
||||
chatBlock.addRow(" " + headColor + lang("clan",player), lang("allies",player));
|
||||
|
||||
for (Clan clan : clans) {
|
||||
if (!clan.isVerified()) {
|
||||
@@ -63,7 +64,7 @@ public class AlliancesCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
@@ -24,36 +27,31 @@ public class AllyCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.ally")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.ally",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (clan.getSize() < plugin.getSettingsManager().getClanMinSizeToAlly()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("minimum.to.make.alliance"), plugin.getSettingsManager().getClanMinSizeToAlly()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("minimum.to.make.alliance",player), plugin.getSettingsManager().getClanMinSizeToAlly()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -61,40 +59,61 @@ public class AllyCommand {
|
||||
Clan ally = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (ally == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ally.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("cannot.ally.with.an.unverified.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("cannot.ally.with.an.unverified.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("add"))) {
|
||||
if (action.equals(lang("add",player))) {
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("your.clans.are.already.allies",player));
|
||||
return;
|
||||
}
|
||||
|
||||
int maxAlliances = plugin.getSettingsManager().getClanMaxAlliances();
|
||||
if (maxAlliances != -1) {
|
||||
if (clan.getAllies().size() >= maxAlliances) {
|
||||
ChatBlock.sendMessage(player, lang("your.clan.reached.max.alliances", player));
|
||||
return;
|
||||
}
|
||||
if (ally.getAllies().size() >= maxAlliances) {
|
||||
ChatBlock.sendMessage(player, lang("other.clan.reached.max.alliances", player));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
List<ClanPlayer> onlineLeaders = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
|
||||
if (onlineLeaders.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("at.least.one.leader.accept.the.alliance"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("at.least.one.leader.accept.the.alliance",player));
|
||||
return;
|
||||
}
|
||||
|
||||
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"))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("leaders.have.been.asked.for.an.alliance",player), ally.getName()));
|
||||
} else if (action.equals(lang("remove",player))) {
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("your.clans.are.not.allies",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.removeAlly(ally);
|
||||
ally.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.broken.the.alliance"), Helper.capitalize(clan.getName()), ally.getName()), false);
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.broken.the.alliance"), Helper.capitalize(cp.getName()), Helper.capitalize(ally.getName())));
|
||||
ally.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.broken.the.alliance"), clan.getName(), ally.getName()), false);
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.broken.the.alliance"), cp.getName(), ally.getName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.ally"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.ally",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -27,47 +28,32 @@ public class BanCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.ban")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, MessageFormat.format(plugin.getLang("usage.ban.unban"), ChatColor.RED, plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, MessageFormat.format(lang("usage.ban.unban",player), ChatColor.RED, plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String banned = arg[0];
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (uuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(uuid)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("this.player.is.already.banned",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(banned);
|
||||
if (plugin.getSettingsManager().isBanned(PlayerUniqueId)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.already.banned"));
|
||||
return;
|
||||
}
|
||||
|
||||
Player pl = SimpleClans.getInstance().getServer().getPlayer(PlayerUniqueId);
|
||||
|
||||
if (pl != null) {
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + plugin.getLang("you.banned"));
|
||||
}
|
||||
|
||||
plugin.getClanManager().ban(banned);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.added.to.banned.list"));
|
||||
} else {
|
||||
if (plugin.getSettingsManager().isBanned(banned)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.already.banned"));
|
||||
return;
|
||||
}
|
||||
|
||||
Player pl = SimpleClans.getInstance().getServer().getPlayerExact(banned);
|
||||
|
||||
if (pl != null) {
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + plugin.getLang("you.banned"));
|
||||
}
|
||||
|
||||
plugin.getClanManager().ban(banned);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.added.to.banned.list"));
|
||||
}
|
||||
plugin.getClanManager().ban(uuid);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("player.added.to.banned.list",player));
|
||||
|
||||
Player pl = SimpleClans.getInstance().getServer().getPlayer(uuid);
|
||||
if (pl != null) {
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + lang("you.banned",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,10 @@ 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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -27,7 +30,7 @@ public class BankCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.bank")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
@@ -36,7 +39,7 @@ public class BankCommand {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -44,47 +47,52 @@ public class BankCommand {
|
||||
|
||||
if (clan.isMember(player)) {
|
||||
if (!clan.isVerified()) {
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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(lang("clan.balance",player), 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 + lang("deposit.not.allowed",player));
|
||||
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 + lang("withdraw.not.allowed",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.BANK_WITHDRAW, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (arg[1].equalsIgnoreCase("all")) {
|
||||
clan.withdraw(clanbalance, player);
|
||||
} else {
|
||||
clan.withdraw(money, player);
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.bank"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.bank",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.bank"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.bank",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -24,20 +25,20 @@ public class BbCommand {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.bb")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
clan.displayBb(player);
|
||||
@@ -45,26 +46,15 @@ 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();
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("cleared.bb"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("cleared.bb",player));
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
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.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -26,43 +24,43 @@ public class ClanffCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.ff")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan", player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.FRIENDLYFIRE, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.clanff"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.clanff", player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String action = arg[0];
|
||||
|
||||
if (action.equalsIgnoreCase(plugin.getLang("allow"))) {
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + plugin.getLang("clan.wide.friendly.fire.is.allowed"));
|
||||
if (action.equalsIgnoreCase(lang("allow", player))) {
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + lang("clan.wide.friendly.fire.is.allowed"));
|
||||
clan.setFriendlyFire(true);
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!action.equalsIgnoreCase(plugin.getLang("block"))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.clanff"), plugin.getSettingsManager().getCommandClan()));
|
||||
if (!action.equalsIgnoreCase(lang("block", player))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("usage.clanff", player, plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + plugin.getLang("clan.wide.friendly.fire.blocked"));
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + lang("clan.wide.friendly.fire.blocked"));
|
||||
clan.setFriendlyFire(false);
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -30,29 +31,29 @@ public class CoordsCommand {
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.coords")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.coords",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -61,7 +62,7 @@ public class CoordsCommand {
|
||||
chatBlock.setFlexibility(true, false, false, false);
|
||||
chatBlock.setAlignment("l", "c", "c", "c");
|
||||
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("name"), plugin.getLang("distance"), plugin.getLang("coords.upper"), plugin.getLang("world"));
|
||||
chatBlock.addRow(" " + headColor + lang("name",player), lang("distance",player), lang("coords.upper",player), lang("world",player));
|
||||
|
||||
List<ClanPlayer> members = Helper.stripOffLinePlayers(clan.getMembers());
|
||||
|
||||
@@ -87,7 +88,7 @@ public class CoordsCommand {
|
||||
}
|
||||
|
||||
if (rows.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.are.the.only.member.online"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.are.the.only.member.online",player));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -96,7 +97,7 @@ public class CoordsCommand {
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(clan.getName()) + subColor + " " + plugin.getLang("coords") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + clan.getName() + subColor + " " + lang("coords",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
@@ -104,7 +105,7 @@ public class CoordsCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
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 net.sacredlabyrinth.phaed.simpleclans.conversation.CreateClanTagPrompt;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.Conversation;
|
||||
import org.bukkit.conversations.ConversationFactory;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
@@ -27,86 +30,26 @@ public class CreateCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.create")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (arg.length < 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.create.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("example.clan.create"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
|
||||
String tag = arg[0];
|
||||
String cleanTag = Helper.cleanTag(arg[0]);
|
||||
|
||||
String name = Helper.toMessage(Helper.removeFirst(arg));
|
||||
|
||||
boolean bypass = plugin.getPermissionsManager().has(player, "simpleclans.mod.bypass");
|
||||
|
||||
if (!bypass) {
|
||||
if (cleanTag.length() > plugin.getSettingsManager().getTagMaxLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.clan.tag.cannot.be.longer.than.characters"), plugin.getSettingsManager().getTagMaxLength()));
|
||||
return;
|
||||
}
|
||||
if (cleanTag.length() <= plugin.getSettingsManager().getTagMinLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.clan.tag.must.be.longer.than.characters"), plugin.getSettingsManager().getTagMinLength()));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.coloredtag") && tag.contains("&")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.tag.cannot.contain.color.codes"));
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().hasDisallowedColor(tag)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.tag.cannot.contain.the.following.colors"), plugin.getSettingsManager().getDisallowedColorString()));
|
||||
return;
|
||||
}
|
||||
if (Helper.stripColors(name).length() > plugin.getSettingsManager().getClanMaxLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.clan.name.cannot.be.longer.than.characters"), plugin.getSettingsManager().getClanMaxLength()));
|
||||
return;
|
||||
}
|
||||
if (Helper.stripColors(name).length() <= plugin.getSettingsManager().getClanMinLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.clan.name.must.be.longer.than.characters"), plugin.getSettingsManager().getClanMinLength()));
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().isDisallowedWord(cleanTag.toLowerCase())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("that.tag.name.is.disallowed"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!cleanTag.matches("[0-9a-zA-Z]*")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clan.tag.can.only.contain.letters.numbers.and.color.codes"));
|
||||
return;
|
||||
}
|
||||
if (name.contains("&")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clan.name.cannot.contain.color.codes"));
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED +
|
||||
lang("usage.create", player, plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("you.must.first.resign"), cp.getClan().getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED +
|
||||
MessageFormat.format(lang("you.must.first.resign", player), cp.getClan().getName()));
|
||||
return;
|
||||
}
|
||||
if (plugin.getClanManager().isClan(cleanTag)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.with.this.tag.already.exists"));
|
||||
return;
|
||||
}
|
||||
if (plugin.getClanManager().purchaseCreation(player)) {
|
||||
plugin.getClanManager().createClan(player, tag, name);
|
||||
|
||||
Clan clan = plugin.getClanManager().getClan(tag);
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.created"), name));
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
|
||||
if (plugin.getSettingsManager().isRequireVerification()) {
|
||||
boolean verified = !plugin.getSettingsManager().isRequireVerification() || plugin.getPermissionsManager().has(player, "simpleclans.mod.verify");
|
||||
|
||||
if (!verified) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("get.your.clan.verified.to.access.advanced.features"));
|
||||
}
|
||||
}
|
||||
}
|
||||
Conversation conversation = new ConversationFactory(plugin).withFirstPrompt(new CreateClanTagPrompt())
|
||||
.withLocalEcho(true).buildConversation(player);
|
||||
conversation.begin();
|
||||
}
|
||||
}
|
||||
@@ -3,8 +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.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
* @author phaed
|
||||
*/
|
||||
public class DemoteCommand {
|
||||
|
||||
public DemoteCommand() {
|
||||
}
|
||||
|
||||
@@ -29,78 +30,76 @@ 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(lang("usage.demote.leader", player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String demotedName = arg[0];
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(demotedName);
|
||||
|
||||
if (uuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched", player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer toDemote = plugin.getClanManager().getAnyClanPlayer(uuid);
|
||||
if (toDemote == null || toDemote.getClan() == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("player.is.not.a.leader.of.any.clan", player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.demote")) {
|
||||
final Clan clan = toDemote.getClan();
|
||||
|
||||
if (clan.getLeaders().size() == 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.demote.the.last.leader", player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.demote(toDemote.getUniqueId());
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("demoted.back.to.member"), demotedName));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("player.successfully.demoted", player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.demote")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan", player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
//noinspection ConstantConditions
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions", player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.demote.leader"), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
|
||||
if (!clan.enoughLeadersOnlineToDemote(toDemote)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.enough.leaders.online.to.vote.on.demotion", player));
|
||||
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()) {
|
||||
UUID PlayerUniqueId = UUIDMigration.getForcedPlayerUUID(demotedName);
|
||||
if (PlayerUniqueId == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
allOtherLeadersOnline = clan.allOtherLeadersOnline(PlayerUniqueId);
|
||||
} else {
|
||||
allOtherLeadersOnline = clan.allOtherLeadersOnline(demotedName);
|
||||
}
|
||||
|
||||
if (!allOtherLeadersOnline) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("leaders.must.be.online.to.vote.on.demotion"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (SimpleClans.getInstance().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"));
|
||||
return;
|
||||
}
|
||||
if (clan.getLeaders().size() != 1 && plugin.getSettingsManager().isConfirmationForDemote()) {
|
||||
plugin.getRequestManager().addDemoteRequest(cp, demotedName, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("demotion.vote.has.been.requested.from.all.leaders"));
|
||||
return;
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("demoted.back.to.member"), Helper.capitalize(demotedName)));
|
||||
clan.demote(PlayerUniqueId);
|
||||
} else {
|
||||
if (!clan.isLeader(demotedName)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("player.is.not.a.leader.of.your.clan"));
|
||||
return;
|
||||
}
|
||||
if (clan.getLeaders().size() != 1 && plugin.getSettingsManager().isConfirmationForDemote()) {
|
||||
plugin.getRequestManager().addDemoteRequest(cp, demotedName, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("demotion.vote.has.been.requested.from.all.leaders"));
|
||||
return;
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("demoted.back.to.member"), Helper.capitalize(demotedName)));
|
||||
clan.demote(demotedName);
|
||||
}
|
||||
if (!clan.isLeader(uuid)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("player.is.not.a.leader.of.your.clan", player));
|
||||
return;
|
||||
}
|
||||
if (clan.getLeaders().size() > 2 && plugin.getSettingsManager().isConfirmationForDemote()) {
|
||||
plugin.getRequestManager().addDemoteRequest(cp, demotedName, clan);
|
||||
ChatBlock.sendMessage(player,
|
||||
ChatColor.AQUA + lang("demotion.vote.has.been.requested.from.all.leaders", player));
|
||||
return;
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA
|
||||
+ MessageFormat.format(lang("demoted.back.to.member",player), demotedName));
|
||||
clan.demote(uuid);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
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.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
|
||||
public class DescriptionCommand {
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param args
|
||||
*/
|
||||
public void execute(Player player, String[] args) {
|
||||
final SimpleClans plugin = SimpleClans.getInstance();
|
||||
final SettingsManager sm = plugin.getSettingsManager();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.description")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.DESCRIPTION, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length < 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.description",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String description = Helper.toMessage(args);
|
||||
if (description.length() < sm.getClanMinDescriptionLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("your.clan.description.must.be.longer.than",player), sm.getClanMinDescriptionLength()));
|
||||
return;
|
||||
}
|
||||
if (description.length() > sm.getClanMaxDescriptionLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("your.clan.description.cannot.be.longer.than",player), sm.getClanMaxDescriptionLength()));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.setDescription(description);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("description.changed",player));
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -27,52 +28,52 @@ public class DisbandCommand {
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.disband")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (clan.getLeaders().size() != 1) {
|
||||
plugin.getRequestManager().addDisbandRequest(cp, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("clan.disband.vote.has.been.requested.from.all.leaders"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("clan.disband.vote.has.been.requested.from.all.leaders",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.clanAnnounce(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.has.been.disbanded"), clan.getName()));
|
||||
clan.clanAnnounce(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("clan.has.been.disbanded",player), clan.getName()));
|
||||
clan.disband();
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg.length > 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.disband"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.disband",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.disband")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = plugin.getClanManager().getClan(arg[0]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
plugin.getClanManager().serverAnnounce(ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.has.been.disbanded"), clan.getName()));
|
||||
plugin.getClanManager().serverAnnounce(ChatColor.AQUA + MessageFormat.format(lang("clan.has.been.disbanded",player), clan.getName()));
|
||||
clan.disband();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class FeeCommand {
|
||||
|
||||
/**
|
||||
* Executes the command
|
||||
*
|
||||
* @param player
|
||||
* @param args
|
||||
*/
|
||||
public void execute(Player player, String[] args) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
if (!plugin.getSettingsManager().isMemberFee()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("disabled.command",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length >= 1) {
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
Clan clan = cp.getClan();
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("check")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.fee-check")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA
|
||||
+ MessageFormat.format(
|
||||
lang("the.fee.is.0.and.its.current.value.is.1",player),
|
||||
clan.isMemberFeeEnabled() ? lang("fee.enabled",player) : lang("fee.disabled",player),
|
||||
clan.getMemberFee()
|
||||
));
|
||||
return;
|
||||
}
|
||||
if (args.length == 2 && args[0].equalsIgnoreCase("set")) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.FEE_SET, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!cp.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return;
|
||||
}
|
||||
double newFee = 0;
|
||||
try {
|
||||
newFee = Double.parseDouble(args[1]);
|
||||
} catch (NumberFormatException ignored) {
|
||||
player.sendMessage(ChatColor.RED + lang("invalid.fee",player));
|
||||
return;
|
||||
}
|
||||
double maxFee = plugin.getSettingsManager().getMaxMemberFee();
|
||||
if (newFee > maxFee) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED
|
||||
+ MessageFormat.format(lang("max.fee.allowed.is.0",player), maxFee));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getClanManager().purchaseMemberFeeSet(player)) {
|
||||
clan.setMemberFee(newFee);
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("bb.fee.set"), newFee));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("fee.set",player));
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED
|
||||
+ MessageFormat.format(lang("usage.fee",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -25,37 +26,37 @@ public class FfCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.ff")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.ff.allow.auto"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.ff.allow.auto",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String action = arg[0];
|
||||
|
||||
if (action.equalsIgnoreCase(plugin.getLang("allow"))) {
|
||||
if (action.equalsIgnoreCase(lang("allow",player))) {
|
||||
cp.setFriendlyFire(true);
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("personal.friendly.fire.is.set.to.allowed"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("personal.friendly.fire.is.set.to.allowed",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equalsIgnoreCase(plugin.getLang("auto"))) {
|
||||
if (action.equalsIgnoreCase(lang("auto",player))) {
|
||||
cp.setFriendlyFire(false);
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("friendy.fire.is.now.managed.by.your.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("friendy.fire.is.now.managed.by.your.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.ff.allow.auto"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.ff.allow.auto",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,9 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
@@ -25,31 +25,31 @@ public class GlobalffCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.ff.allow.auto"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.globalff.allow.auto",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String action = arg[0];
|
||||
|
||||
if (action.equalsIgnoreCase(plugin.getLang("allow"))) {
|
||||
if (action.equalsIgnoreCase(lang("allow",player))) {
|
||||
if (plugin.getSettingsManager().isGlobalff()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("global.friendly.fire.is.already.being.allowed"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("global.friendly.fire.is.already.being.allowed",player));
|
||||
} else {
|
||||
plugin.getSettingsManager().setGlobalff(true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("global.friendly.fire.is.set.to.allowed"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("global.friendly.fire.is.set.to.allowed",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equalsIgnoreCase(plugin.getLang("auto"))) {
|
||||
if (action.equalsIgnoreCase(lang("auto",player))) {
|
||||
if (!plugin.getSettingsManager().isGlobalff()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("global.friendy.fire.is.already.being.managed.by.each.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("global.friendy.fire.is.already.being.managed.by.each.clan",player));
|
||||
} else {
|
||||
plugin.getSettingsManager().setGlobalff(false);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("global.friendy.fire.is.now.managed.by.each.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("global.friendy.fire.is.now.managed.by.each.clan",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.globalff.allow.auto"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.globalff.allow.auto",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import io.papermc.lib.PaperLib;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@@ -9,8 +11,11 @@ import org.bukkit.entity.Player;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.HomeRegroupEvent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.PlayerHomeSetEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -39,12 +44,12 @@ public class HomeCommand {
|
||||
Clan clan = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.does.not.exist"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.does.not.exist",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.setHomeLocation(loc);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("hombase.mod.set"), clan.getName()) + " " + ChatColor.YELLOW + Helper.toLocationString(loc));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("hombase.mod.set",player), clan.getName()) + " " + ChatColor.YELLOW + Helper.toLocationString(loc));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -52,19 +57,24 @@ public class HomeCommand {
|
||||
Clan clan = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.does.not.exist"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.does.not.exist",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Location loc = clan.getHomeLocation();
|
||||
|
||||
if (loc == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("hombase.not.set"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("hombase.not.set",player));
|
||||
return;
|
||||
}
|
||||
|
||||
player.teleport(loc);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("now.at.homebase"), clan.getName()));
|
||||
PaperLib.teleportAsync(player, loc, PlayerTeleportEvent.TeleportCause.COMMAND).thenAccept(result -> {
|
||||
if (result) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("now.at.homebase", player, clan.getName()));
|
||||
} else {
|
||||
plugin.getLogger().log(Level.WARNING, "An error occurred while teleporting a player");
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -72,31 +82,26 @@ public class HomeCommand {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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;
|
||||
}
|
||||
|
||||
Location loc = clan.getHomeLocation();
|
||||
|
||||
if (loc == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("hombase.not.set"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("hombase.not.set",player));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -107,16 +112,11 @@ 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")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("home.base.only.once"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("home.base.only.once",player));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -128,48 +128,46 @@ public class HomeCommand {
|
||||
}
|
||||
|
||||
clan.setHomeLocation(player.getLocation());
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("hombase.set"), ChatColor.YELLOW + Helper.toLocationString(player.getLocation())));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("hombase.set",player), ChatColor.YELLOW + Helper.toLocationString(player.getLocation())));
|
||||
return;
|
||||
}
|
||||
|
||||
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")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("home.base.only.once"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("home.base.only.once",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.setHomeLocation(null);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("hombase.cleared"));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("hombase.cleared",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg[0].equalsIgnoreCase("regroup")) {
|
||||
if (!SimpleClans.getInstance().getSettingsManager().getAllowReGroupCommand()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
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(loc == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("hombase.not.set",player));
|
||||
return;
|
||||
}
|
||||
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 +198,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"));
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,20 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import java.text.MessageFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
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.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -24,62 +33,76 @@ public class InviteCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.invite")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
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()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.invite.player",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Player invited = Helper.getPlayer(arg[0]);
|
||||
|
||||
if (invited == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(invited, "simpleclans.member.can-join")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.doesn.t.not.have.the.permissions.to.join.clans"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.doesn.t.not.have.the.permissions.to.join.clans",player));
|
||||
return;
|
||||
}
|
||||
if (invited.getName().equals(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.invite.yourself"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.invite.yourself",player));
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().isBanned(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.banned.from.using.clan.commands"));
|
||||
if (plugin.getSettingsManager().isBanned(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("this.player.is.banned.from.using.clan.commands",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpInv = plugin.getClanManager().getClanPlayer(invited);
|
||||
ClanPlayer cpInv = plugin.getClanManager().getAnyClanPlayer(invited.getUniqueId());
|
||||
|
||||
if (cpInv != null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.already.member.of.another.clan"));
|
||||
return;
|
||||
if (cpInv.getClan() != null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.already.member.of.another.clan",player));
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().isRejoinCooldown()) {
|
||||
Long resign = cpInv.getResignTime(clan.getTag());
|
||||
if (resign != null) {
|
||||
long timePassed = Instant.ofEpochMilli(resign).until(Instant.now(), ChronoUnit.MINUTES);
|
||||
int cooldown = plugin.getSettingsManager().getRejoinCooldown();
|
||||
if (timePassed < cooldown) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("the.player.must.wait.0.before.joining.your.clan.again",player), cooldown - timePassed));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!plugin.getClanManager().purchaseInvite(player)) {
|
||||
return;
|
||||
}
|
||||
if (clan.getSize() >= plugin.getSettingsManager().getMaxMembers()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.members.reached.limit"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.members.reached.limit",player));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
plugin.getRequestManager().addInviteRequest(cp, invited.getName(), clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.been.asked.to.join"), Helper.capitalize(invited.getName()), clan.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("has.been.asked.to.join",player), invited.getName(), clan.getName()));
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,15 @@ 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.PermissionLevel;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
@@ -29,53 +32,47 @@ public class KickCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.kick")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
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()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.kick.player",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String kicked = arg[0];
|
||||
|
||||
UUID kicked = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (kicked == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
if (kicked.equalsIgnoreCase(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.kick.yourself"));
|
||||
if (kicked.equals(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.kick.yourself",player));
|
||||
return;
|
||||
}
|
||||
if (!clan.isMember(kicked)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.not.a.member.of.your.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.not.a.member.of.your.clan",player));
|
||||
return;
|
||||
}
|
||||
if (clan.isLeader(kicked)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.kick.another.leader"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.kick.another.leader",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.been.kicked.by"), Helper.capitalize(kicked), player.getName()));
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.removePlayerFromClan(UUIDMigration.getForcedPlayerUUID(kicked));
|
||||
} else {
|
||||
clan.removePlayerFromClan(kicked);
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.been.kicked.by"), arg[0], player.getName()));
|
||||
clan.removePlayerFromClan(kicked);
|
||||
}
|
||||
}
|
||||
@@ -1,90 +1,103 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class KillsCommand {
|
||||
public KillsCommand() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
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 (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
}
|
||||
|
||||
String polledPlayerName = player.getName();
|
||||
|
||||
if (arg.length == 1) {
|
||||
polledPlayerName = arg[0];
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
chatBlock.setFlexibility(true, false);
|
||||
chatBlock.setAlignment("l", "c");
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("victim"), plugin.getLang("killcount"));
|
||||
|
||||
Map<String, Integer> killsPerPlayerUnordered = plugin.getStorageManager().getKillsPerPlayer(polledPlayerName);
|
||||
|
||||
if (killsPerPlayerUnordered.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nokillsfound"));
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Integer> killsPerPlayer = Helper.sortByValue(killsPerPlayerUnordered);
|
||||
|
||||
for (Entry<String, Integer> playerKills : killsPerPlayer.entrySet()) {
|
||||
int count = playerKills.getValue();
|
||||
chatBlock.addRow(" " + playerKills.getKey(), ChatColor.AQUA + "" + count);
|
||||
}
|
||||
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(polledPlayerName) + subColor + " " + plugin.getLang("kills") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.StorageManager.DataCallback;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class KillsCommand {
|
||||
public KillsCommand() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String polledPlayerName = player.getName();
|
||||
|
||||
if (arg.length == 1) {
|
||||
polledPlayerName = arg[0];
|
||||
}
|
||||
|
||||
final String name = polledPlayerName;
|
||||
|
||||
plugin.getStorageManager().getKillsPerPlayer(polledPlayerName, new DataCallback<Map<String, Integer>>() {
|
||||
@Override
|
||||
public void onResultReady(Map<String, Integer> data) {
|
||||
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
chatBlock.setFlexibility(true, false);
|
||||
chatBlock.setAlignment("l", "c");
|
||||
chatBlock.addRow(" " + headColor + lang("victim",player), lang("killcount",player));
|
||||
|
||||
if (data.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nokillsfound",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Integer> killsPerPlayer = Helper.sortByValue(data);
|
||||
|
||||
for (Entry<String, Integer> playerKills : killsPerPlayer.entrySet()) {
|
||||
int count = playerKills.getValue();
|
||||
chatBlock.addRow(" " + playerKills.getKey(), ChatColor.AQUA + "" + count);
|
||||
}
|
||||
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + name + subColor + " " + lang("kills",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
+17
-16
@@ -4,14 +4,17 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.KDRFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
@@ -29,33 +32,31 @@ public class LeaderboardCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.leaderboard"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.leaderboard",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.leaderboard")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
List<ClanPlayer> clanPlayers = plugin.getClanManager().getAllClanPlayers();
|
||||
plugin.getClanManager().sortClanPlayersByKDR(clanPlayers);
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("leaderboard.command") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + lang("leaderboard.command",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("total.clan.players.0"), subColor + clanPlayers.size()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("total.clan.players.0",player), subColor + clanPlayers.size()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setAlignment("c", "l", "c", "c", "c", "c");
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("rank"), plugin.getLang("player"), plugin.getLang("kdr"), plugin.getLang("clan"), plugin.getLang("seen"));
|
||||
|
||||
int rank = 1;
|
||||
chatBlock.addRow(" " + headColor + lang("rank",player), lang("player",player), lang("kdr",player), lang("clan",player), lang("seen",player));
|
||||
|
||||
RankingNumberResolver<ClanPlayer, BigDecimal> rankingResolver = new RankingNumberResolver<>(clanPlayers,
|
||||
c -> KDRFormat.toBigDecimal(c.getKDR()), false, plugin.getSettingsManager().getRankingType());
|
||||
for (ClanPlayer cp : clanPlayers) {
|
||||
Player p = cp.toPlayer();
|
||||
|
||||
@@ -66,16 +67,16 @@ public class LeaderboardCommand {
|
||||
}
|
||||
|
||||
String name = (cp.isLeader() ? plugin.getSettingsManager().getPageLeaderColor() : (cp.isTrusted() ? plugin.getSettingsManager().getPageTrustedColor() : plugin.getSettingsManager().getPageUnTrustedColor())) + cp.getName();
|
||||
String lastSeen = isOnline ? ChatColor.GREEN + plugin.getLang("online") : ChatColor.WHITE + cp.getLastSeenDaysString();
|
||||
String lastSeen = isOnline ? ChatColor.GREEN + lang("online", player) : ChatColor.WHITE + cp.getLastSeenDaysString(player);
|
||||
|
||||
String clanTag = ChatColor.WHITE + plugin.getLang("free.agent");
|
||||
String clanTag = ChatColor.WHITE + lang("free.agent", player);
|
||||
|
||||
if (cp.getClan() != null) {
|
||||
clanTag = cp.getClan().getColorTag();
|
||||
}
|
||||
|
||||
chatBlock.addRow(" " + rank, name, ChatColor.YELLOW + "" + formatter.format(cp.getKDR()), ChatColor.WHITE + clanTag, lastSeen);
|
||||
rank++;
|
||||
chatBlock.addRow(" " + rankingResolver.getRankingNumber(cp),
|
||||
name, ChatColor.YELLOW + "" + KDRFormat.format(cp.getKDR()), ChatColor.WHITE + clanTag, lastSeen);
|
||||
}
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
@@ -83,7 +84,7 @@ public class LeaderboardCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,92 +1,155 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ListCommand {
|
||||
public ListCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.list")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.list"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
List<Clan> clans = plugin.getClanManager().getClans();
|
||||
plugin.getClanManager().sortClansByKDR(clans);
|
||||
|
||||
if (clans.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clans.have.been.created"));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("clans.lower") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("total.clans") + " " + subColor + clans.size());
|
||||
ChatBlock.sendBlank(player);
|
||||
chatBlock.setAlignment("c", "l", "c", "c");
|
||||
chatBlock.setFlexibility(false, true, false, false);
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("rank"), plugin.getLang("name"), plugin.getLang("kdr"), plugin.getLang("members"));
|
||||
|
||||
int rank = 1;
|
||||
|
||||
for (Clan clan : clans) {
|
||||
if (!plugin.getSettingsManager().isShowUnverifiedOnList() && !clan.isVerified()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String tag = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + clan.getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight();
|
||||
String name = (clan.isVerified() ? plugin.getSettingsManager().getPageClanNameColor() : ChatColor.GRAY) + clan.getName();
|
||||
String fullname = tag + " " + name;
|
||||
String size = ChatColor.WHITE + "" + clan.getSize();
|
||||
String kdr = clan.isVerified() ? ChatColor.YELLOW + "" + formatter.format(clan.getTotalKDR()) : "";
|
||||
|
||||
chatBlock.addRow(" " + rank, fullname, kdr, size);
|
||||
rank++;
|
||||
}
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.KDRFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver.RankingType.ORDINAL;
|
||||
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ListCommand {
|
||||
|
||||
private final @NotNull SettingsManager sm;
|
||||
private RankingNumberResolver<Clan, ? extends Comparable<?>> ranking;
|
||||
private @Nullable String order;
|
||||
private final @NotNull String asc;
|
||||
|
||||
public ListCommand() {
|
||||
sm = SimpleClans.getInstance().getSettingsManager();
|
||||
asc = sm.getListAsc();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param args
|
||||
*/
|
||||
public void execute(Player player, String[] args) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = sm.getPageHeadingsColor();
|
||||
String subColor = sm.getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.list")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length > 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.list",player), sm.getCommandClan()));
|
||||
return;
|
||||
}
|
||||
List<Clan> clans = plugin.getClanManager().getClans();
|
||||
clans = clans.stream().filter(clan -> clan.isVerified() || sm.isShowUnverifiedOnList())
|
||||
.collect(Collectors.toList());
|
||||
sort(clans, args);
|
||||
|
||||
if (clans.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clans.have.been.created",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
sendHeader(player, headColor, subColor, clans, chatBlock);
|
||||
|
||||
for (Clan clan : clans) {
|
||||
addLine(chatBlock, clan);
|
||||
}
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, sm.getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), sm.getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
|
||||
private void addLine(ChatBlock chatBlock, Clan clan) {
|
||||
String tag = sm.getClanChatBracketColor() + sm.getClanChatTagBracketLeft() + sm.getTagDefaultColor() + clan.getColorTag() + sm.getClanChatBracketColor() + sm.getClanChatTagBracketRight();
|
||||
String name = (clan.isVerified() ? sm.getPageClanNameColor() : ChatColor.GRAY) + clan.getName();
|
||||
String fullname = tag + " " + name;
|
||||
String size = ChatColor.WHITE + "" + clan.getSize();
|
||||
String kdr = clan.isVerified() ? ChatColor.YELLOW + "" + KDRFormat.format(clan.getTotalKDR()) : "";
|
||||
|
||||
chatBlock.addRow(" " + ranking.getRankingNumber(clan), fullname, kdr, size);
|
||||
}
|
||||
|
||||
private void sendHeader(Player player, String headColor, String subColor, List<Clan> clans, ChatBlock chatBlock) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, sm.getServerName() + subColor + " " + lang("clans.lower", player) + " " + headColor + Helper.generatePageSeparator(sm.getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + lang("total.clans", player) + " " + subColor + clans.size());
|
||||
ChatBlock.sendBlank(player);
|
||||
chatBlock.setAlignment("c", "l", "c", "c");
|
||||
chatBlock.setFlexibility(false, true, false, false);
|
||||
chatBlock.addRow(" " + headColor + lang("rank", player), lang("name", player), lang("kdr", player), lang("members", player));
|
||||
}
|
||||
|
||||
private void sort(@NotNull List<Clan> clans, @NotNull String[] args) {
|
||||
String type = sm.getListDefault();
|
||||
if (args.length > 0) {
|
||||
type = args[0];
|
||||
}
|
||||
String desc = sm.getListDesc();
|
||||
if (args.length == 2) {
|
||||
order = args[1];
|
||||
if (!order.equalsIgnoreCase(asc) && !order.equalsIgnoreCase(desc)) {
|
||||
order = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (type.equalsIgnoreCase(sm.getListActive())) {
|
||||
ranking = new RankingNumberResolver<>(clans, Clan::getLastUsed, isAsc(), ORDINAL);
|
||||
}
|
||||
if (type.equalsIgnoreCase(sm.getListFounded())) {
|
||||
if (order == null) {
|
||||
order = asc;
|
||||
}
|
||||
ranking = new RankingNumberResolver<>(clans, Clan::getFounded, isAsc(), ORDINAL);
|
||||
}
|
||||
if (type.equalsIgnoreCase(sm.getListKdr())) {
|
||||
ranking = new RankingNumberResolver<>(clans, clan -> KDRFormat.toBigDecimal(clan.getTotalKDR()),
|
||||
isAsc(), sm.getRankingType());
|
||||
}
|
||||
if (type.equalsIgnoreCase(sm.getListName())) {
|
||||
if (order == null) {
|
||||
order = asc;
|
||||
}
|
||||
ranking = new RankingNumberResolver<>(clans, Clan::getName, isAsc(), ORDINAL);
|
||||
}
|
||||
if (type.equalsIgnoreCase(sm.getListSize())) {
|
||||
ranking = new RankingNumberResolver<>(clans, Clan::getSize, isAsc(), ORDINAL);
|
||||
}
|
||||
|
||||
//in case the default type is invalid
|
||||
if (ranking == null) {
|
||||
ranking = new RankingNumberResolver<>(clans, clan -> KDRFormat.toBigDecimal(clan.getTotalKDR()), false,
|
||||
sm.getRankingType());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAsc() {
|
||||
return asc.equalsIgnoreCase(order);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,111 +1,120 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class LookupCommand {
|
||||
public LookupCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
String playerName = null;
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.lookup")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
playerName = player.getName();
|
||||
} else if (arg.length == 1) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.lookup")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
return;
|
||||
}
|
||||
playerName = arg[0];
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.lookup.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer targetCp = plugin.getClanManager().getAnyClanPlayer(playerName);
|
||||
ClanPlayer myCp = plugin.getClanManager().getClanPlayer(player.getName());
|
||||
Clan myClan = myCp == null ? null : myCp.getClan();
|
||||
|
||||
if (targetCp != null) {
|
||||
Clan targetClan = targetCp.getClan();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, MessageFormat.format(plugin.getLang("s.player.info"), plugin.getSettingsManager().getPageClanNameColor() + targetCp.getName() + subColor) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
String clanName = ChatColor.WHITE + plugin.getLang("none");
|
||||
|
||||
if (targetClan != null) {
|
||||
clanName = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + targetClan.getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight() + " " + plugin.getSettingsManager().getPageClanNameColor() + targetClan.getName();
|
||||
}
|
||||
|
||||
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 joinDate = ChatColor.WHITE + "" + targetCp.getJoinDateString();
|
||||
String lastSeen = ChatColor.WHITE + "" + targetCp.getLastSeenString();
|
||||
String inactive = ChatColor.WHITE + "" + targetCp.getInactiveDays() + subColor + "/" + ChatColor.WHITE + plugin.getSettingsManager().getPurgePlayers() + " days";
|
||||
String rival = ChatColor.WHITE + "" + targetCp.getRivalKills();
|
||||
String neutral = ChatColor.WHITE + "" + targetCp.getNeutralKills();
|
||||
String civilian = ChatColor.WHITE + "" + targetCp.getCivilianKills();
|
||||
String deaths = ChatColor.WHITE + "" + targetCp.getDeaths();
|
||||
String kdr = ChatColor.YELLOW + "" + formatter.format(targetCp.getKDR());
|
||||
String pastClans = ChatColor.WHITE + "" + targetCp.getPastClansString(headColor + ", ");
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("clan.0"), clanName));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("rank.0"), rank));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("status.0"), status));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("kdr.0"), kdr));
|
||||
ChatBlock.sendMessage(player, " " + subColor + plugin.getLang("kill.totals") + " " + headColor + "[" + plugin.getLang("rival") + ":" + rival + " " + headColor + "" + plugin.getLang("neutral") + ":" + neutral + " " + headColor + "" + plugin.getLang("civilian") + ":" + civilian + headColor + "]");
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("deaths.0"), deaths));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("join.date.0"), joinDate));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("last.seen.0"), lastSeen));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("past.clans.0"), pastClans));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("inactive.0"), inactive));
|
||||
|
||||
if (arg.length == 1 && !targetCp.equals(myCp)) {
|
||||
String killType = ChatColor.GRAY + plugin.getLang("neutral");
|
||||
|
||||
if (targetClan == null) {
|
||||
killType = ChatColor.DARK_GRAY + plugin.getLang("civilian");
|
||||
} else if (myClan != null && myClan.isRival(targetClan.getTag())) {
|
||||
killType = ChatColor.WHITE + plugin.getLang("rival");
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("kill.type.0"), killType));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.data.found"));
|
||||
|
||||
if (arg.length == 1 && myClan != null) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, MessageFormat.format(plugin.getLang("kill.type.civilian"), ChatColor.DARK_GRAY));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class LookupCommand {
|
||||
public LookupCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
String playerName = null;
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.lookup")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
playerName = player.getName();
|
||||
} else if (arg.length == 1) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.lookup")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
playerName = arg[0];
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.lookup.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
UUID targetUuid = UUIDMigration.getForcedPlayerUUID(playerName);
|
||||
if (targetUuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer targetCp = plugin.getClanManager().getAnyClanPlayer(targetUuid);
|
||||
ClanPlayer myCp = plugin.getClanManager().getClanPlayer(player.getUniqueId());
|
||||
Clan myClan = myCp == null ? null : myCp.getClan();
|
||||
|
||||
if (targetCp != null) {
|
||||
Clan targetClan = targetCp.getClan();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, MessageFormat.format(lang("s.player.info",player), plugin.getSettingsManager().getPageClanNameColor() + targetCp.getName() + subColor) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
String clanName = ChatColor.WHITE + lang("none",player);
|
||||
|
||||
if (targetClan != null) {
|
||||
clanName = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + targetClan.getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight() + " " + plugin.getSettingsManager().getPageClanNameColor() + targetClan.getName();
|
||||
}
|
||||
|
||||
String status = targetClan == null ? ChatColor.WHITE + lang("free.agent",player) : (targetCp.isLeader() ? plugin.getSettingsManager().getPageLeaderColor() + lang("leader",player) : (targetCp.isTrusted() ? plugin.getSettingsManager().getPageTrustedColor() + lang("trusted",player) : plugin.getSettingsManager().getPageUnTrustedColor() + lang("untrusted",player)));
|
||||
String rank = ChatColor.WHITE + "" + Helper.parseColors(targetCp.getRankDisplayName());
|
||||
String joinDate = ChatColor.WHITE + "" + targetCp.getJoinDateString();
|
||||
String lastSeen = ChatColor.WHITE + "" + targetCp.getLastSeenString(player);
|
||||
String inactive = ChatColor.WHITE + "" + targetCp.getInactiveDays() + subColor + "/" + ChatColor.WHITE + plugin.getSettingsManager().getPurgePlayers() + " days";
|
||||
String rival = ChatColor.WHITE + "" + targetCp.getRivalKills();
|
||||
String neutral = ChatColor.WHITE + "" + targetCp.getNeutralKills();
|
||||
String civilian = ChatColor.WHITE + "" + targetCp.getCivilianKills();
|
||||
String deaths = ChatColor.WHITE + "" + targetCp.getDeaths();
|
||||
String kdr = ChatColor.YELLOW + "" + formatter.format(targetCp.getKDR());
|
||||
String pastClans = ChatColor.WHITE + "" + targetCp.getPastClansString(headColor + ", ");
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("clan.0",player), clanName));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("rank.0",player), rank));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("status.0",player), status));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("kdr.0",player), kdr));
|
||||
ChatBlock.sendMessage(player, " " + subColor + lang("kill.totals",player) + " " + headColor + "[" + lang("rival",player) + ":" + rival + " " + headColor + "" + lang("neutral",player) + ":" + neutral + " " + headColor + "" + lang("civilian",player) + ":" + civilian + headColor + "]");
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("deaths.0",player), deaths));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("join.date.0",player), joinDate));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("last.seen.0",player), lastSeen));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("past.clans.0",player), pastClans));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("inactive.0",player), inactive));
|
||||
|
||||
if (arg.length == 1 && !targetCp.equals(myCp)) {
|
||||
String killType = ChatColor.GRAY + lang("neutral",player);
|
||||
|
||||
if (targetClan == null) {
|
||||
killType = ChatColor.DARK_GRAY + lang("civilian",player);
|
||||
} else if (myClan != null && myClan.isRival(targetClan.getTag())) {
|
||||
killType = ChatColor.WHITE + lang("rival",player);
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("kill.type.0",player), killType));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.data.found",player));
|
||||
|
||||
if (arg.length == 1 && myClan != null) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, MessageFormat.format(lang("kill.type.civilian",player), ChatColor.DARK_GRAY));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -9,6 +11,8 @@ import java.text.MessageFormat;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
@@ -25,7 +29,7 @@ public class MenuCommand {
|
||||
*/
|
||||
public void execute(Player player) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
@@ -33,149 +37,206 @@ 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()) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.create.tag.name.1.purchase.a.new.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.create.1.purchase.a.new.clan", player), clanCommand, ChatColor.WHITE));
|
||||
} else {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.create.tag.name.1.create.a.new.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.create.1.create.a.new.clan", player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
}
|
||||
if (clan != null && plugin.getPermissionsManager().has(player, "simpleclans.member.chat")) {
|
||||
String chatCommand = plugin.getSettingsManager().isTagBasedClanChat() ? clan.getTag() : plugin.getSettingsManager().getCommandClanChat();
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.message.1.send.a.message.to.clan.chat", player), chatCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.join.leave.3.join.leave.the.clan.chat", player), chatCommand, lang("join", player), lang("leave", player), ChatColor.WHITE));
|
||||
}
|
||||
if (clan != null && plugin.getPermissionsManager().has(player, "simpleclans.member.ally")) {
|
||||
String allyCommand = plugin.getSettingsManager().getCommandAlly();
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + lang("0.message.1.send.a.message.to.ally.chat", player, allyCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + lang("0.join.leave.3.join.leave.the.ally.chat", player, allyCommand, lang("join", player), lang("leave", player), ChatColor.WHITE));
|
||||
}
|
||||
if (isNonVerified && plugin.getSettingsManager().isRequireVerification() && plugin.getSettingsManager().isePurchaseVerification()) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.verify.1.purchase.verification.of.your.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.verify.1.purchase.verification.of.your.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.list")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.list.1.lists.all.clans"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.list.1.lists.all.clans",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.profile")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.profile.1.view.your.clan.s.profile"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.profile.1.view.your.clan.s.profile",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.profile")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.profile.tag.1.view.a.clan.s.profile"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.profile.tag.1.view.a.clan.s.profile",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.lookup")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.lookup.1.lookup.your.info"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.lookup.1.lookup.your.info",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.lookup")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.lookup.player.1.lookup.a.player.s.info"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.lookup.player.1.lookup.a.player.s.info",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.leaderboard")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.leaderboard.1.view.leaderboard"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.leaderboard.1.view.leaderboard",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.alliances")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.alliances.1.view.all.clan.alliances"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.alliances.1.view.all.clan.alliances",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.rivalries")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rivalries.1.view.all.clan.rivalries"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rivalries.1.view.all.clan.rivalries",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.roster")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.roster.1.view.your.clan.s.member.list"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.roster.1.view.your.clan.s.member.list",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
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));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.roster.tag.1.view.a.clan.s.member.list",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.vitals")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.vitals.1.view.your.clan.member.s.vitals"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.VITALS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.vitals.1.view.your.clan.member.s.vitals",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.coords")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.coords.1.view.your.clan.member.s.coordinates"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.COORDS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.coords.1.view.your.clan.member.s.coordinates",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.stats")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.stats.1.view.your.clan.member.s.stats"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.STATS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.stats.1.view.your.clan.member.s.stats",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.kills"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.kills",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.kills")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.killsplayer"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.KILLS, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.killsplayer",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.ally")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.ally.add.remove.tag.1.add.remove.an.ally.clan"), clanCommand, ChatColor.WHITE));
|
||||
if (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.fee-check")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.fee.check",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rival")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.rival.add.remove.tag.1.add.remove.a.rival.clan"), clanCommand, ChatColor.WHITE));
|
||||
if (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, RankPermission.FEE_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.fee.set",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, "simpleclans.member.home")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-menu"), clanCommand, ChatColor.WHITE));
|
||||
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(lang("0.ally.add.remove.tag.1.add.remove.an.ally.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-set-menu"), clanCommand, ChatColor.WHITE));
|
||||
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(lang("0.rival.add.remove.tag.1.add.remove.a.rival.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-set")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-clear-menu"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_TP, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("home-menu",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.home-regroup")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("home-regroup-menu"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("home-set-menu",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.war")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.war"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_SET, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("home-clear-menu",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.HOME_REGROUP, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("home-regroup-menu",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
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(lang("0.war",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.resetkdr")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.resetkdr.1.resets.your.kdr"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.resetkdr.1.resets.your.kdr",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
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));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.bb.1.display.bulletin.board",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.member.bb-add")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.bb.msg.1.add.a.message.to.the.bulletin.board"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.BB_ADD, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.bb.msg.1.add.a.message.to.the.bulletin.board",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.modtag")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.modtag.tag.1.modify.the.clan.s.tag"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.MODTAG, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.modtag.tag.1.modify.the.clan.s.tag",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.DESCRIPTION, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.description.description.1.modify.the.clan.s.description",player), 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 (plugin.getSettingsManager().isMemberFee() && isVerified && plugin.getPermissionsManager().has(player, RankPermission.FEE_ENABLE, PermissionLevel.LEADER, false)) {
|
||||
toggles += "fee/";
|
||||
}
|
||||
|
||||
if (!toggles.isEmpty()) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.toggle.command"), clanCommand, ChatColor.WHITE, Helper.stripTrailing(toggles, "/")));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.toggle.command",player), clanCommand, ChatColor.WHITE, Helper.stripTrailing(toggles, "/")));
|
||||
}
|
||||
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.invite")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.invite.player.1.invite.a.player"), clanCommand, ChatColor.WHITE));
|
||||
if (plugin.getPermissionsManager().has(player, RankPermission.INVITE, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.invite.player.1.invite.a.player",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.kick")) {
|
||||
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 (plugin.getPermissionsManager().has(player, RankPermission.KICK, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.kick.player.1.kick.a.player.from.the.clan",player), 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));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.trust.untrust.player.1.set.trust.level1",player), 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));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.trust.untrust.player.1.set.trust.level2",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.create")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.create.1.create.rank",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.assign")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.assign.player.rank.1.assign.rank.to.player",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.unassign")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.unassign.player.1.unassign.player.from.rank",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.delete")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.delete.rank.1.delete.rank",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.RANK_LIST, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.list.1.list.ranks",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.RANK_DISPLAYNAME, PermissionLevel.LEADER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.setdisplayname.rank.displayname.1.set.rank.displayname",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.available")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.permissions.1.list.available.permissions",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.list")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.permissions.rank.1.list.rank.permissions",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.add")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.permissions.rank.add.permission.1.add.a.permission.to.rank",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.remove")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.rank.permissions.rank.remove.permission.1.remove.a.permission.from.rank",player), 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));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.promote.member.1.promote.a.member.to.leader",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.demote")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.demote.leader.1.demote.a.leader.to.member"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.demote.leader.1.demote.a.leader.to.member",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.SETBANNER, false)) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + lang("0.setbanner.1.set.clan.banner", player, clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.ff")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.clanff.allow.block.1.toggle.clan.s.friendly.fire"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.clanff.allow.block.1.toggle.clan.s.friendly.fire",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isLeader && plugin.getPermissionsManager().has(player, "simpleclans.leader.disband")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.disband.1.disband.your.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.disband.1.disband.your.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.ff")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.ff.allow.auto.1.toggle.personal.friendly.fire"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.ff.allow.auto.1.toggle.personal.friendly.fire",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.resign")) {
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(plugin.getLang("0.resign.1.resign.from.the.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.AQUA + " " + MessageFormat.format(lang("0.resign.1.resign.from.the.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
|
||||
for (String item : menuItems) {
|
||||
@@ -183,39 +244,45 @@ public class MenuCommand {
|
||||
}
|
||||
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.verify") && plugin.getSettingsManager().isRequireVerification()) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.verify.tag.1.verify.an.unverified.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.verify.tag.1.verify.an.unverified.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.place")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.place"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.place",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (isVerified && isTrusted && plugin.getPermissionsManager().has(player, "simpleclans.mod.mostkilled")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.mostkilled"), clanCommand, ChatColor.WHITE));
|
||||
if (isVerified && plugin.getPermissionsManager().has(player, RankPermission.MOSTKILLED, PermissionLevel.TRUSTED, false)) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.mostkilled",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.disband")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.disband.tag.1.disband.a.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.disband.tag.1.disband.a.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.ban")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.ban.unban.player.1.ban.unban.a.player"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.ban.unban.player.1.ban.unban.a.player",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.hometp")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.hometp.clan.1.tp.home.a.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.hometp.clan.1.tp.home.a.clan",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.mod.globalff")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.globalff.allow.auto.1.set.global.friendly.fire"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.globalff.allow.auto.1.set.global.friendly.fire",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.demote")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.demote.leader.1.demote.a.leader.to.member",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.purge")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.purge.player.1.purge.a.player",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.resetkdr")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.resetkdr.1.resets.kdr"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.resetkdr.1.resets.kdr",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.admin.reload")) {
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.reload.1.reload.configuration"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.reload.1.reload.configuration",player), clanCommand, ChatColor.WHITE));
|
||||
}
|
||||
if (chatBlock.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("clan.commands") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + lang("clan.commands",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
@@ -223,7 +290,7 @@ public class MenuCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
@@ -244,11 +311,12 @@ public class MenuCommand {
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.verify.tag.1.verify.an.unverified.clan"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(plugin.getLang("0.reload.1.reload.configuration"), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.purge.player.1.purge.a.player",sender), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.verify.tag.1.verify.an.unverified.clan",sender), clanCommand, ChatColor.WHITE));
|
||||
chatBlock.addRow(ChatColor.DARK_RED + " " + MessageFormat.format(lang("0.reload.1.reload.configuration",sender), clanCommand, ChatColor.WHITE));
|
||||
|
||||
ChatBlock.sendBlank(sender);
|
||||
ChatBlock.saySingle(sender, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("clan.commands") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(sender, plugin.getSettingsManager().getServerName() + subColor + " " + lang("clan.commands",sender) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(sender);
|
||||
chatBlock.sendBlock(sender, plugin.getSettingsManager().getPageSize());
|
||||
ChatBlock.sendBlank(sender);
|
||||
|
||||
@@ -4,7 +4,11 @@ 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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.TagValidator;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -27,59 +31,48 @@ public class ModtagCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.modtag")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.modtag.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("example.clan.modtag.4kfo.4l",player));
|
||||
return;
|
||||
}
|
||||
|
||||
String newtag = arg[0];
|
||||
String cleantag = Helper.cleanTag(newtag);
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.coloredtag") && newtag.contains("&")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.tag.cannot.contain.color.codes"));
|
||||
return;
|
||||
}
|
||||
if (Helper.stripColors(newtag).length() > plugin.getSettingsManager().getTagMaxLength()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.clan.tag.cannot.be.longer.than.characters"), plugin.getSettingsManager().getTagMaxLength()));
|
||||
return;
|
||||
}
|
||||
if (plugin.getSettingsManager().hasDisallowedColor(newtag)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("your.tag.cannot.contain.the.following.colors"), plugin.getSettingsManager().getDisallowedColorString()));
|
||||
return;
|
||||
}
|
||||
if (!Helper.stripColors(newtag).matches("[0-9a-zA-Z]*")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clan.tag.can.only.contain.letters.numbers.and.color.codes"));
|
||||
return;
|
||||
}
|
||||
if (!cleantag.equals(clan.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.can.only.modify.the.color.and.case.of.the.tag"));
|
||||
TagValidator validator = new TagValidator(plugin, player, newtag);
|
||||
if (validator.getErrorMessage() != null) {
|
||||
ChatBlock.sendMessage(player, validator.getErrorMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("tag.changed.to.0"), Helper.parseColors(newtag)));
|
||||
if (!cleantag.equals(clan.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.can.only.modify.the.color.and.case.of.the.tag",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("tag.changed.to.0"), Helper.parseColors(newtag)));
|
||||
clan.changeClanTag(newtag);
|
||||
plugin.getClanManager().updateDisplayName(player.getPlayer());
|
||||
plugin.getClanManager().updateDisplayName(player);
|
||||
}
|
||||
}
|
||||
+105
-93
@@ -1,93 +1,105 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class MostKilledCommand {
|
||||
public MostKilledCommand() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.mostkilled")) {
|
||||
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 (!cp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("only.trusted.players.can.access.clan.stats"));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
chatBlock.setFlexibility(true, false, false);
|
||||
chatBlock.setAlignment("l", "c", "l");
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("victim"), headColor + plugin.getLang("killcount"), headColor + plugin.getLang("attacker"));
|
||||
|
||||
Map<String, Integer> killsPerPlayerUnordered = plugin.getStorageManager().getMostKilled();
|
||||
|
||||
if (killsPerPlayerUnordered.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nokillsfound"));
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Integer> killsPerPlayer = Helper.sortByValue(killsPerPlayerUnordered);
|
||||
|
||||
for (Entry<String, Integer> attackerVictim : killsPerPlayer.entrySet()) {
|
||||
String[] split = attackerVictim.getKey().split(" ");
|
||||
|
||||
if (split.length < 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int count = attackerVictim.getValue();
|
||||
String attacker = split[0];
|
||||
String victim = split[1];
|
||||
|
||||
chatBlock.addRow(" " + ChatColor.WHITE + victim, ChatColor.AQUA + "" + count, ChatColor.YELLOW + attacker);
|
||||
}
|
||||
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("mostkilled") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.StorageManager.DataCallback;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class MostKilledCommand {
|
||||
public MostKilledCommand() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.mostkilled")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.MOSTKILLED, PermissionLevel.TRUSTED, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
plugin.getStorageManager().getMostKilled(new DataCallback<Map<String, Integer>>() {
|
||||
|
||||
@Override
|
||||
public void onResultReady(Map<String, Integer> data) {
|
||||
new BukkitRunnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
chatBlock.setFlexibility(true, false, false);
|
||||
chatBlock.setAlignment("l", "c", "l");
|
||||
chatBlock.addRow(" " + headColor + lang("victim",player), headColor + lang("killcount",player), headColor + lang("attacker",player));
|
||||
|
||||
if (data.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nokillsfound",player));
|
||||
return;
|
||||
}
|
||||
Map<String, Integer> killsPerPlayer = Helper.sortByValue(data);
|
||||
|
||||
for (Entry<String, Integer> attackerVictim : killsPerPlayer.entrySet()) {
|
||||
String[] split = attackerVictim.getKey().split(" ");
|
||||
|
||||
if (split.length < 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int count = attackerVictim.getValue();
|
||||
String attacker = split[0];
|
||||
String victim = split[1];
|
||||
|
||||
chatBlock.addRow(" " + ChatColor.WHITE + victim, ChatColor.AQUA + "" + count, ChatColor.YELLOW + attacker);
|
||||
}
|
||||
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + lang("mostkilled",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -25,27 +25,27 @@ public class PlaceCommand {
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.place")) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.place"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(lang("usage.0.place",sender), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = Helper.getPlayer(arg[0]);
|
||||
|
||||
if (player == null) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("no.player.matched",sender));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan newClan = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (newClan == null) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + plugin.getLang("the.clan.does.not.exist"));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("the.clan.does.not.exist", sender));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -54,17 +54,17 @@ public class PlaceCommand {
|
||||
if (oldCp != null) {
|
||||
Clan oldClan = oldCp.getClan();
|
||||
|
||||
if (oldClan.equals(newClan)) {
|
||||
ChatBlock.sendMessage(sender, lang("player.already.in.this.clan", player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (oldClan.isLeader(player) && oldClan.getLeaders().size() <= 1) {
|
||||
oldClan.clanAnnounce(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.has.been.disbanded"), oldClan.getName()));
|
||||
oldClan.clanAnnounce(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("clan.has.been.disbanded",sender), oldClan.getName()));
|
||||
oldClan.disband();
|
||||
} else {
|
||||
oldClan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("0.has.resigned"), Helper.capitalize(player.getName())));
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
oldClan.removePlayerFromClan(player.getUniqueId());
|
||||
} else {
|
||||
oldClan.removePlayerFromClan(player.getName());
|
||||
}
|
||||
oldClan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("0.has.resigned"), player.getName()));
|
||||
oldClan.removePlayerFromClan(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,8 +74,8 @@ public class PlaceCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
newClan.addBb(ChatColor.AQUA + MessageFormat.format(plugin.getLang("joined.the.clan"), player.getName()));
|
||||
plugin.getClanManager().serverAnnounce(MessageFormat.format(plugin.getLang("has.joined"), player.getName(), newClan.getName()));
|
||||
newClan.addBb(ChatColor.AQUA + MessageFormat.format(lang("joined.the.clan", sender), player.getName()));
|
||||
plugin.getClanManager().serverAnnounce(MessageFormat.format(lang("has.joined", sender), player.getName(), newClan.getName()));
|
||||
newClan.addPlayerToClan(cp);
|
||||
|
||||
}
|
||||
|
||||
+107
-101
@@ -1,101 +1,107 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ProfileCommand {
|
||||
public ProfileCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
Clan clan = null;
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.profile")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
} else {
|
||||
if (cp.getClan().isVerified()) {
|
||||
clan = cp.getClan();
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
}
|
||||
} else if (arg.length == 1) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.profile")) {
|
||||
clan = plugin.getClanManager().getClan(arg[0]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.profile.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
|
||||
if (clan != null) {
|
||||
if (clan.isVerified()) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(clan.getName()) + subColor + " " + plugin.getLang("profile") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
String name = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + clan.getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight() + " " + plugin.getSettingsManager().getPageClanNameColor() + clan.getName();
|
||||
String leaders = clan.getLeadersString(plugin.getSettingsManager().getPageLeaderColor(), subColor + ", ");
|
||||
String onlineCount = ChatColor.WHITE + "" + Helper.stripOffLinePlayers(clan.getMembers()).size();
|
||||
String membersOnline = onlineCount + subColor + "/" + ChatColor.WHITE + clan.getSize();
|
||||
String inactive = ChatColor.WHITE + "" + clan.getInactiveDays() + subColor + "/" + ChatColor.WHITE + (clan.isVerified() ? plugin.getSettingsManager().getPurgeClan() : plugin.getSettingsManager().getPurgeUnverified()) + " " + plugin.getLang("days");
|
||||
String founded = ChatColor.WHITE + "" + clan.getFoundedString();
|
||||
String allies = ChatColor.WHITE + "" + clan.getAllyString(subColor + ", ");
|
||||
String rivals = ChatColor.WHITE + "" + clan.getRivalString(subColor + ", ");
|
||||
String kdr = ChatColor.YELLOW + "" + formatter.format(clan.getTotalKDR());
|
||||
String deaths = ChatColor.WHITE + "" + clan.getTotalDeaths();
|
||||
String rival = ChatColor.WHITE + "" + clan.getTotalRival();
|
||||
String neutral = ChatColor.WHITE + "" + clan.getTotalNeutral();
|
||||
String civ = ChatColor.WHITE + "" + clan.getTotalCivilian();
|
||||
String status = ChatColor.WHITE + "" + (clan.isVerified() ? plugin.getSettingsManager().getPageTrustedColor() + plugin.getLang("verified") : plugin.getSettingsManager().getPageUnTrustedColor() + plugin.getLang("unverified"));
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("name.0"), name));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("status.0"), status));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("leaders.0"), leaders));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("members.online.0"), membersOnline));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("kdr.0"), kdr));
|
||||
ChatBlock.sendMessage(player, " " + subColor + plugin.getLang("kill.totals") + " " + headColor + "[" + plugin.getLang("rival") + ":" + rival + " " + headColor + "" + plugin.getLang("neutral") + ":" + neutral + " " + headColor + "" + plugin.getLang("civilian") + ":" + civ + headColor + "]");
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("deaths.0"), deaths));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("allies.0"), allies));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("rivals.0"), rivals));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("founded.0"), founded));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(plugin.getLang("inactive.0"), inactive));
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ProfileCommand {
|
||||
public ProfileCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
String headColor = plugin.getSettingsManager().getPageHeadingsColor();
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
NumberFormat formatter = new DecimalFormat("#.#");
|
||||
|
||||
Clan clan = null;
|
||||
|
||||
if (arg.length == 0) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.profile")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
} else {
|
||||
if (cp.getClan().isVerified()) {
|
||||
clan = cp.getClan();
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
} else if (arg.length == 1) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.profile")) {
|
||||
clan = plugin.getClanManager().getClan(arg[0]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.profile.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
|
||||
if (clan != null) {
|
||||
if (clan.isVerified()) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + clan.getName() + subColor + " " + lang("profile",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
String name = plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketLeft() + plugin.getSettingsManager().getTagDefaultColor() + clan.getColorTag() + plugin.getSettingsManager().getClanChatBracketColor() + plugin.getSettingsManager().getClanChatTagBracketRight() + " " + plugin.getSettingsManager().getPageClanNameColor() + clan.getName();
|
||||
String description = ChatColor.WHITE + (clan.getDescription() != null && !clan.getDescription().isEmpty() ? clan.getDescription() : lang("no.description",player));
|
||||
String leaders = clan.getLeadersString(plugin.getSettingsManager().getPageLeaderColor(), subColor + ", ");
|
||||
String onlineCount = ChatColor.WHITE + "" + Helper.stripOffLinePlayers(clan.getMembers()).size();
|
||||
String membersOnline = onlineCount + subColor + "/" + ChatColor.WHITE + clan.getSize();
|
||||
String inactive = ChatColor.WHITE + "" + clan.getInactiveDays() + subColor + "/" + ChatColor.WHITE + (clan.isVerified() ? plugin.getSettingsManager().getPurgeClan() : plugin.getSettingsManager().getPurgeUnverified()) + " " + lang("days",player);
|
||||
String founded = ChatColor.WHITE + "" + clan.getFoundedString();
|
||||
String allies = ChatColor.WHITE + "" + clan.getAllyString(subColor + ", ");
|
||||
String rivals = ChatColor.WHITE + "" + clan.getRivalString(subColor + ", ");
|
||||
String kdr = ChatColor.YELLOW + "" + formatter.format(clan.getTotalKDR());
|
||||
String deaths = ChatColor.WHITE + "" + clan.getTotalDeaths();
|
||||
String rival = ChatColor.WHITE + "" + clan.getTotalRival();
|
||||
String neutral = ChatColor.WHITE + "" + clan.getTotalNeutral();
|
||||
String civ = ChatColor.WHITE + "" + clan.getTotalCivilian();
|
||||
String status = ChatColor.WHITE + "" + (clan.isVerified() ? plugin.getSettingsManager().getPageTrustedColor() + lang("verified",player) : plugin.getSettingsManager().getPageUnTrustedColor() + lang("unverified",player));
|
||||
String feeEnabled = ChatColor.WHITE + (clan.isMemberFeeEnabled() ? lang("fee.enabled",player) : lang("fee.disabled",player));
|
||||
String feeValue = ChatColor.WHITE + "" + clan.getMemberFee();
|
||||
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("name.0",player), name));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("description.0",player), description));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("status.0",player), status));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("leaders.0",player), leaders));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("members.online.0",player), membersOnline));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("kdr.0",player), kdr));
|
||||
ChatBlock.sendMessage(player, " " + subColor + lang("kill.totals",player) + " " + headColor + "[" + lang("rival",player) + ":" + rival + " " + headColor + "" + lang("neutral",player) + ":" + neutral + " " + headColor + "" + lang("civilian",player) + ":" + civ + headColor + "]");
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("deaths.0",player), deaths));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("fee.0.value.1",player), feeEnabled, feeValue));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("allies.0",player), allies));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("rivals.0",player), rivals));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("founded.0",player), founded));
|
||||
ChatBlock.sendMessage(player, " " + subColor + MessageFormat.format(lang("inactive.0",player), inactive));
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.PermissionsManager;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -23,58 +24,64 @@ public class PromoteCommand {
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.promote")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
PermissionsManager pm = plugin.getPermissionsManager();
|
||||
boolean isAdmin = pm.has(player, "simpleclans.admin.promote");
|
||||
|
||||
if (!pm.has(player, "simpleclans.leader.promote") && !isAdmin) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions", player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
if (!clan.isLeader(player) && !isAdmin) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.promote.member"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.promote.member",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
Player promoted = Helper.getPlayer(arg[0]);
|
||||
|
||||
if (promoted == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.member.to.be.promoted.must.be.online"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.member.to.be.promoted.must.be.online",player));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(promoted, "simpleclans.leader.promotable")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.does.not.have.the.permissions.to.lead.a.clan"));
|
||||
if (!pm.has(promoted, "simpleclans.leader.promotable")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.does.not.have.the.permissions.to.lead.a.clan",player));
|
||||
return;
|
||||
}
|
||||
if (promoted.getName().equals(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.promote.yourself"));
|
||||
if (promoted.getName().equals(player.getName()) && !isAdmin) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.promote.yourself",player));
|
||||
return;
|
||||
}
|
||||
if (!clan.isMember(promoted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.not.a.member.of.your.clan"));
|
||||
if (!clan.isMember(promoted) && !isAdmin) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.not.a.member.of.your.clan",player));
|
||||
return;
|
||||
}
|
||||
if (clan.isLeader(promoted) && plugin.getSettingsManager().isConfirmationForPromote()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.already.a.leader"));
|
||||
if (clan.isLeader(promoted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.already.a.leader",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isConfirmationForPromote() && clan.getLeaders().size() > 1 && !isAdmin) {
|
||||
plugin.getRequestManager().addPromoteRequest(cp, promoted.getName(), clan);
|
||||
ChatBlock.sendMessage(player,
|
||||
ChatColor.AQUA + lang("promotion.vote.has.been.requested.from.all.leaders",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("promoted.to.leader"), Helper.capitalize(promoted.getName())));
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.promote(promoted.getUniqueId());
|
||||
} else {
|
||||
clan.promote(promoted.getName());
|
||||
}
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("promoted.to.leader"), promoted.getName()));
|
||||
clan.promote(promoted.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryController;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class PurgeCommand {
|
||||
|
||||
/**
|
||||
* Executes the command
|
||||
*
|
||||
* @param sender
|
||||
* @param args
|
||||
*/
|
||||
public void execute(CommandSender sender, String args[]) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
if (sender instanceof Player) {
|
||||
if (!plugin.getPermissionsManager().has((Player) sender, "simpleclans.admin.purge")) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("insufficient.permissions",sender));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(args[0]);
|
||||
if (uuid == null || plugin.getClanManager().getAnyClanPlayer(uuid) == null) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("no.player.matched",sender));
|
||||
return;
|
||||
}
|
||||
Player player = plugin.getServer().getPlayer(uuid);
|
||||
if (player != null && InventoryController.isRegistered(player)) {
|
||||
player.closeInventory();
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(uuid);
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
if (clan != null && clan.getMembers().size() == 1) {
|
||||
clan.disband();
|
||||
}
|
||||
plugin.getClanManager().deleteClanPlayer(cp);
|
||||
ChatBlock.sendMessage(sender, ChatColor.AQUA + lang("player.purged",sender));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED
|
||||
+ MessageFormat.format(lang("usage.purge",sender), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,307 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.conversation.CreateClanTagPrompt;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.conversation.CreateRankNamePrompt;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.Conversation;
|
||||
import org.bukkit.conversations.ConversationFactory;
|
||||
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;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*/
|
||||
public class RankCommand {
|
||||
private SimpleClans plugin;
|
||||
private Player player;
|
||||
private ClanPlayer clanPlayer;
|
||||
private Clan clan;
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param args
|
||||
*/
|
||||
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 + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan = clanPlayer.getClan();
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clanPlayer.isLeader()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
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(lang("usage.0.rank",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
|
||||
private void assignRank(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.assign")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.assign",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(args[0]);
|
||||
if (uuid == null || (!clan.isMember(uuid) && !clan.isLeader(uuid))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
String rank = args[1].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("rank.0.does.not.exist",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpTarget = Objects.requireNonNull(plugin.getClanManager().getClanPlayer(uuid));
|
||||
if (cpTarget.getRankId().equals(rank)) {
|
||||
ChatBlock.sendMessage(player, lang("player.already.has.that.rank",player));
|
||||
return;
|
||||
}
|
||||
cpTarget.setRank(rank);
|
||||
plugin.getStorageManager().updateClanPlayer(cpTarget);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("player.rank.changed",player));
|
||||
}
|
||||
|
||||
private void unassign(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.unassign")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.unassign",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(args[0]);
|
||||
if (uuid == null || (!clan.isMember(uuid) && !clan.isLeader(uuid))) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpTarget = plugin.getClanManager().getClanPlayer(uuid);
|
||||
Objects.requireNonNull(cpTarget).setRank(null);
|
||||
plugin.getStorageManager().updateClanPlayer(cpTarget);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("player.unassigned.from.rank",player));
|
||||
}
|
||||
|
||||
private void createRank(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.create")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.create.noargs",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
Conversation conversation = new ConversationFactory(plugin).withFirstPrompt(new CreateRankNamePrompt())
|
||||
.withLocalEcho(true).buildConversation(player);
|
||||
conversation.getContext().setSessionData("clan", clan);
|
||||
conversation.begin();
|
||||
}
|
||||
|
||||
private void listRanks() {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.list")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
List<Rank> ranks = clan.getRanks();
|
||||
|
||||
if (ranks.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.ranks",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ranks.sort(Comparator.reverseOrder());
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("clans.ranks",player));
|
||||
int count = 1;
|
||||
for (Rank rank : ranks) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("ranks.list.item",player), 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 + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.delete",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
String rank = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("rank.0.does.not.exist",player));
|
||||
return;
|
||||
}
|
||||
clan.deleteRank(rank);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("rank.0.deleted",player), rank));
|
||||
}
|
||||
|
||||
private void setDisplayName(String[] args) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.setdisplayname")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (args.length < 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.setdisplayname",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String rankName = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rankName)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("rank.0.does.not.exist",player), 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 + lang("you.cannot.set.colored.ranks",player));
|
||||
return;
|
||||
}
|
||||
rank.setDisplayName(dn);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("rank.displayname.updated",player));
|
||||
}
|
||||
|
||||
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 + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("available.rank.permissions",player));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + validPermissionsToMessage);
|
||||
return;
|
||||
}
|
||||
String rank = args[0].toLowerCase();
|
||||
if (!clan.hasRank(rank)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("rank.0.does.not.exist",player), 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 + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (permissions.isEmpty()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("rank.no.permissions",player));
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("rank.0.permissions",player), 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 + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (!RankPermission.isValid(permission)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("invalid.permission",player), permission, validPermissionsToMessage));
|
||||
return;
|
||||
}
|
||||
permissions.add(permission);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("permission.0.added.to.rank.1",player), permission, rank));
|
||||
changed = true;
|
||||
break;
|
||||
case "remove":
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rank.permissions.remove")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
permissions.remove(permission);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("permission.0.removed.from.rank.1",player), permission, rank));
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.permissions",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,9 @@ package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.language.LanguageResource;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -31,9 +34,11 @@ public class ReloadCommand
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + "Does not match a clan command");
|
||||
return;
|
||||
}
|
||||
|
||||
plugin.getStorageManager().saveModified();
|
||||
plugin.reloadConfig();
|
||||
LanguageResource.clearCache();
|
||||
plugin.getSettingsManager().load();
|
||||
plugin.getLanguageManager().load();
|
||||
plugin.getStorageManager().importFromDatabase();
|
||||
SimpleClans.getInstance().getPermissionsManager().loadPermissions();
|
||||
|
||||
@@ -41,7 +46,7 @@ public class ReloadCommand
|
||||
{
|
||||
SimpleClans.getInstance().getPermissionsManager().updateClanPermissions(clan);
|
||||
}
|
||||
ChatBlock.sendMessage(sender, ChatColor.AQUA + plugin.getLang("configuration.reloaded"));
|
||||
ChatBlock.sendMessage(sender, ChatColor.AQUA + lang("configuration.reloaded",sender));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@@ -26,22 +29,22 @@ public class ResetKDRCommand {
|
||||
if (arg == null || arg.length == 0) {
|
||||
if (!plugin.getSettingsManager().isAllowResetKdr()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED
|
||||
+ MessageFormat.format(plugin.getLang("usage.resetkdr"),
|
||||
+ MessageFormat.format(lang("usage.resetkdr",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.resetkdr")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.vip.resetkdr")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
if (plugin.getClanManager().purchaseResetKdr(player)) {
|
||||
plugin.getClanManager().resetKdr(cp);
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.have.reseted.your.kdr"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.have.reseted.your.kdr",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -50,23 +53,23 @@ public class ResetKDRCommand {
|
||||
for (ClanPlayer cp : SimpleClans.getInstance().getClanManager().getAllClanPlayers()) {
|
||||
plugin.getClanManager().resetKdr(cp);
|
||||
}
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.have.reseted.kdr.of.all.players"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.have.reseted.kdr.of.all.players",player));
|
||||
} else {
|
||||
OfflinePlayer toReset = Bukkit.getOfflinePlayer(arg[0]);
|
||||
if (toReset == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (uuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer trcp = plugin.getClanManager().getClanPlayer(toReset);
|
||||
ClanPlayer trcp = plugin.getClanManager().getClanPlayer(uuid);
|
||||
if (trcp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.data.found"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.data.found",player));
|
||||
return;
|
||||
}
|
||||
plugin.getClanManager().resetKdr(trcp);
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("you.have.reseted.0.kdr"), toReset.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("you.have.reseted.0.kdr",player), trcp.getName()));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
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
|
||||
@@ -27,29 +27,20 @@ public class ResignCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.resign")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
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())
|
||||
.withLocalEcho(true)
|
||||
.withTimeout(10)
|
||||
.buildConversation(player).begin();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -23,38 +24,34 @@ public class RivalCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.rival")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
if (clan.isUnrivable()) {
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("your.clan.cannot.create.rivals",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.rival"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.rival",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (clan.getSize() < plugin.getSettingsManager().getClanMinSizeToRival()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("min.players.rivalries"), plugin.getSettingsManager().getClanMinSizeToRival()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("min.players.rivalries",player), plugin.getSettingsManager().getClanMinSizeToRival()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -62,50 +59,56 @@ public class RivalCommand {
|
||||
Clan rival = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (rival == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
return;
|
||||
}
|
||||
if (clan.getTag().equals(rival.getTag()))
|
||||
{
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.rival.your.own.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.rival.your.own.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isUnrivable(rival.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.cannot.be.rivaled"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.cannot.be.rivaled",player));
|
||||
return;
|
||||
}
|
||||
if (!rival.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("cannot.rival.an.unverified.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("cannot.rival.an.unverified.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("add"))) {
|
||||
if (action.equals(lang("add",player))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.RIVAL_ADD, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!clan.reachedRivalLimit()) {
|
||||
if (!clan.isRival(rival.getTag())) {
|
||||
clan.addRival(rival);
|
||||
rival.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.initiated.a.rivalry"), Helper.capitalize(clan.getName()), rival.getName()), false);
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.initiated.a.rivalry"), Helper.capitalize(player.getName()), Helper.capitalize(rival.getName())));
|
||||
rival.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.initiated.a.rivalry"), clan.getName(), rival.getName()), false);
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.initiated.a.rivalry"), player.getName(), rival.getName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clans.are.already.rivals"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("your.clans.are.already.rivals",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("rival.limit.reached"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("rival.limit.reached",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("remove"))) {
|
||||
if (action.equals(lang("remove",player))) {
|
||||
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())));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("leaders.asked.to.end.rivalry",player), rival.getName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("your.clans.are.not.rivals"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("your.clans.are.not.rivals",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.rival"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.rival",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -29,11 +30,11 @@ public class RivalriesCommand {
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (arg.length != 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.rivalries"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rivalries",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.anyone.rivalries")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
List<Clan> clans = plugin.getClanManager().getClans();
|
||||
@@ -42,13 +43,13 @@ public class RivalriesCommand {
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + plugin.getLang("rivalries") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getServerName() + subColor + " " + lang("rivalries",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("legend") + ChatColor.DARK_RED + " [" + plugin.getLang("war") + "]");
|
||||
ChatBlock.sendMessage(player, headColor + lang("legend",player) + ChatColor.DARK_RED + " [" + lang("war",player) + "]");
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setAlignment("l", "l");
|
||||
chatBlock.addRow(plugin.getLang("clan"), plugin.getLang("rivals"));
|
||||
chatBlock.addRow(lang("clan",player), lang("rivals",player));
|
||||
|
||||
for (Clan clan : clans) {
|
||||
if (!clan.isVerified()) {
|
||||
@@ -63,7 +64,7 @@ public class RivalriesCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -33,25 +34,25 @@ public class RosterCommand {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
} else {
|
||||
clan = cp.getClan();
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
} else if (arg.length == 1) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.anyone.roster")) {
|
||||
clan = plugin.getClanManager().getClan(arg[0]);
|
||||
|
||||
if (clan == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.roster.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.roster.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
|
||||
if (clan != null) {
|
||||
@@ -59,13 +60,13 @@ public class RosterCommand {
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(clan.getName()) + subColor + " " + plugin.getLang("roster") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + clan.getName() + subColor + " " + lang("roster",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("legend") + " " + plugin.getSettingsManager().getPageLeaderColor() + plugin.getLang("leader") + headColor + ", " + plugin.getSettingsManager().getPageTrustedColor() + plugin.getLang("trusted") + headColor + ", " + plugin.getSettingsManager().getPageUnTrustedColor() + plugin.getLang("untrusted"));
|
||||
ChatBlock.sendMessage(player, headColor + lang("legend",player) + " " + plugin.getSettingsManager().getPageLeaderColor() + lang("leader",player) + headColor + ", " + plugin.getSettingsManager().getPageTrustedColor() + lang("trusted",player) + headColor + ", " + plugin.getSettingsManager().getPageUnTrustedColor() + lang("untrusted",player));
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setFlexibility(false, true, false, true);
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("player"), plugin.getLang("rank"), plugin.getLang("seen"));
|
||||
chatBlock.addRow(" " + headColor + lang("player",player), lang("rank",player), lang("seen",player));
|
||||
|
||||
List<ClanPlayer> leaders = clan.getLeaders();
|
||||
plugin.getClanManager().sortClanPlayersByLastSeen(leaders);
|
||||
@@ -78,9 +79,9 @@ public class RosterCommand {
|
||||
Player p = cp.toPlayer();
|
||||
|
||||
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();
|
||||
String lastSeen = p != null && p.isOnline() && !Helper.isVanished(p) ? ChatColor.GREEN + lang("online",player) : ChatColor.WHITE + cp.getLastSeenDaysString(player);
|
||||
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRank()), lastSeen);
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRankDisplayName()) + ChatColor.RESET, lastSeen);
|
||||
|
||||
}
|
||||
|
||||
@@ -88,9 +89,9 @@ public class RosterCommand {
|
||||
Player p = cp.toPlayer();
|
||||
|
||||
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();
|
||||
String lastSeen = p != null && p.isOnline() && !Helper.isVanished(p) ? ChatColor.GREEN + lang("online",player) : ChatColor.WHITE + cp.getLastSeenDaysString(player);
|
||||
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRank()), lastSeen);
|
||||
chatBlock.addRow(" " + name, ChatColor.YELLOW + Helper.parseColors(cp.getRankDisplayName()) + ChatColor.RESET, lastSeen);
|
||||
}
|
||||
|
||||
boolean more = chatBlock.sendBlock(player, plugin.getSettingsManager().getPageSize());
|
||||
@@ -98,15 +99,15 @@ public class RosterCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.roster.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.roster.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class SetBannerCommand {
|
||||
private final SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
public void execute(@NotNull Player player) {
|
||||
ClanPlayer cp = plugin.getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
|
||||
if (cp == null || cp.getClan() == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan", player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified", player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.SETBANNER, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ItemStack hand = player.getInventory().getItemInMainHand();
|
||||
if (!hand.getType().toString().contains("BANNER")) {
|
||||
ChatBlock.sendMessage(player, lang("you.must.hold.a.banner", player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.setBanner(hand);
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
ChatBlock.sendMessage(player, lang("you.changed.clan.banner", player));
|
||||
}
|
||||
}
|
||||
@@ -1,68 +1,36 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
public class SetRankCommand {
|
||||
public SetRankCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
String playerName = arg[0];
|
||||
String rank = Helper.toMessage(Helper.removeFirst(arg));
|
||||
|
||||
if (!clan.isMember(playerName) && !clan.isLeader(playerName)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cpm = plugin.getClanManager().getClanPlayer(playerName);
|
||||
cpm.setRank(rank);
|
||||
plugin.getStorageManager().updateClanPlayer(cpm);
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.rank.changed"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
public class SetRankCommand {
|
||||
public SetRankCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.create",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.assign",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.rank.setdisplayname",player),
|
||||
plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.text.NumberFormat;
|
||||
import java.util.List;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -28,44 +29,43 @@ public class StatsCommand {
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.stats")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.stats"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.stats",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(clan.getName()) + subColor + " " + plugin.getLang("stats") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + clan.getName() + subColor + " " + lang("stats",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("kdr") + " = " + subColor + plugin.getLang("kill.death.ratio"));
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("weights") + " = " + plugin.getLang("rival") + ": " + subColor + plugin.getSettingsManager().getKwRival() + headColor + " " + plugin.getLang("neutral") + ": " + subColor + plugin.getSettingsManager().getKwNeutral() + headColor + " " + plugin.getLang("civilian") + ": " + subColor + plugin.getSettingsManager().getKwCivilian());
|
||||
ChatBlock.sendMessage(player, headColor + lang("kdr",player) + " = " + subColor + lang("kill.death.ratio",player));
|
||||
ChatBlock.sendMessage(player, headColor + lang("weights",player) + " = " + lang("rival",player) + ": " + subColor + plugin.getSettingsManager().getKwRival() + headColor + " " + lang("neutral",player) + ": " + subColor + plugin.getSettingsManager().getKwNeutral() + headColor + " " + lang("civilian",player) + ": " + subColor + plugin.getSettingsManager().getKwCivilian());
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setFlexibility(true, false, false, false, false, false, false);
|
||||
chatBlock.setAlignment("l", "c", "c", "c", "c", "c", "c");
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("name"), plugin.getLang("kdr"), plugin.getLang("rival"), plugin.getLang("neutral"), plugin.getLang("civilian.abbreviation"), plugin.getLang("deaths"));
|
||||
chatBlock.addRow(" " + headColor + lang("name", player), lang("kdr", player), lang("rival",player), lang("neutral",player), lang("civilian.abbreviation",player), lang("deaths",player));
|
||||
|
||||
List<ClanPlayer> leaders = clan.getLeaders();
|
||||
plugin.getClanManager().sortClanPlayersByKDR(leaders);
|
||||
@@ -81,7 +81,7 @@ public class StatsCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,138 +1,173 @@
|
||||
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.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ToggleCommand {
|
||||
|
||||
public ToggleCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (arg.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
String cmd = arg[0];
|
||||
|
||||
if (cmd.equalsIgnoreCase("cape")) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.cape-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isCapeEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("capeoff"));
|
||||
cp.setCapeEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("capeon"));
|
||||
cp.setCapeEnabled(true);
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("bb") && plugin.getPermissionsManager().has(player, "simpleclans.member.bb-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isBbEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("bboff"));
|
||||
cp.setBbEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("bbon"));
|
||||
cp.setBbEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("tag") && plugin.getPermissionsManager().has(player, "simpleclans.member.tag-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isTagEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("tagoff"));
|
||||
cp.setTagEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("tagon"));
|
||||
cp.setTagEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("deposit") && plugin.getPermissionsManager().has(player, "simpleclans.leader.deposit-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isLeader(player)) {
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isAllowDeposit()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("depositoff"));
|
||||
clan.setAllowDeposit(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("depositon"));
|
||||
clan.setAllowDeposit(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("withdraw") && plugin.getPermissionsManager().has(player, "simpleclans.leader.withdraw-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isLeader(player)) {
|
||||
if (clan.isAllowWithdraw()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("withdrawoff"));
|
||||
clan.setAllowWithdraw(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("withdrawon"));
|
||||
clan.setAllowWithdraw(true);
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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.RankPermission;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public class ToggleCommand {
|
||||
|
||||
public ToggleCommand() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the command
|
||||
*
|
||||
* @param player
|
||||
* @param arg
|
||||
*/
|
||||
public void execute(Player player, String[] arg) {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (arg.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
String cmd = arg[0];
|
||||
|
||||
if (cmd.equalsIgnoreCase("cape")) {
|
||||
if (plugin.getPermissionsManager().has(player, "simpleclans.member.cape-toggle")) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isCapeEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("capeoff",player));
|
||||
cp.setCapeEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("capeon",player));
|
||||
cp.setCapeEnabled(true);
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("bb")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.bb-toggle")) {
|
||||
lang(ChatColor.RED + "insufficient.permissions",player);
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isBbEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("bboff",player));
|
||||
cp.setBbEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("bbon",player));
|
||||
cp.setBbEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("tag")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.tag-toggle")) {
|
||||
lang(ChatColor.RED + "insufficient.permissions",player);
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (clan.isVerified()) {
|
||||
if (cp.isTagEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("tagoff",player));
|
||||
cp.setTagEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("tagon",player));
|
||||
cp.setTagEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClanPlayer(cp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("deposit")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.deposit-toggle")) {
|
||||
lang(ChatColor.RED + "insufficient.permissions",player);
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isLeader(player)) {
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isAllowDeposit()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("depositoff",player));
|
||||
clan.setAllowDeposit(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("depositon",player));
|
||||
clan.setAllowDeposit(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("fee") && plugin.getPermissionsManager().has(player, RankPermission.FEE_ENABLE,true)) {
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isMemberFeeEnabled()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("feeoff",player));
|
||||
clan.setMemberFeeEnabled(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("feeon",player));
|
||||
clan.setMemberFeeEnabled(true);
|
||||
}
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd.equalsIgnoreCase("withdraw")) {
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.withdraw-toggle")) {
|
||||
lang(ChatColor.RED + "insufficient.permissions",player);
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
if (cp != null) {
|
||||
Clan clan = cp.getClan();
|
||||
if (clan.isVerified()) {
|
||||
if (clan.isLeader(player)) {
|
||||
if (clan.isAllowWithdraw()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("withdrawoff",player));
|
||||
clan.setAllowWithdraw(false);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("withdrawon",player));
|
||||
clan.setAllowWithdraw(true);
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,15 @@ 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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -27,60 +30,59 @@ public class TrustCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.settrust")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.trust.player"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.trust.player",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String trusted = arg[0];
|
||||
|
||||
UUID trusted = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (trusted == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
if (trusted.equals(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.trust.yourself"));
|
||||
if (trusted.equals(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.trust.yourself",player));
|
||||
return;
|
||||
}
|
||||
if (!clan.isMember(trusted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.not.a.member.of.your.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.not.a.member.of.your.clan",player));
|
||||
return;
|
||||
}
|
||||
if (clan.isLeader(trusted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("leaders.are.already.trusted"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("leaders.are.already.trusted",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer tcp = plugin.getClanManager().getClanPlayer(trusted);
|
||||
|
||||
if (tcp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (tcp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.already.trusted"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("this.player.is.already.trusted",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.been.given.trusted.status.by"), Helper.capitalize(trusted), player.getName()));
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.been.given.trusted.status.by"), arg[0], player.getName()));
|
||||
tcp.setTrusted(true);
|
||||
plugin.getStorageManager().updateClanPlayer(tcp);
|
||||
}
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -26,29 +29,32 @@ public class UnbanCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.mod.ban")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.ban.unban"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.ban.unban",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String banned = arg[0];
|
||||
|
||||
if (!plugin.getSettingsManager().isBanned(banned)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.not.banned"));
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (uuid == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Player pl = Helper.getPlayer(banned);
|
||||
if (!plugin.getSettingsManager().isBanned(uuid)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("this.player.is.not.banned",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Player pl = Bukkit.getPlayer(uuid);
|
||||
if (pl != null) {
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + plugin.getLang("you.have.been.unbanned.from.clan.commands"));
|
||||
ChatBlock.sendMessage(pl, ChatColor.AQUA + lang("you.have.been.unbanned.from.clan.commands",player));
|
||||
}
|
||||
|
||||
plugin.getSettingsManager().removeBanned(banned);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("player.removed.from.the.banned.list"));
|
||||
plugin.getSettingsManager().removeBanned(uuid);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("player.removed.from.the.banned.list",player));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,12 +3,15 @@ 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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -27,59 +30,58 @@ public class UntrustCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.settrust")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.untrust.player"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.untrust.player",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
String trusted = arg[0];
|
||||
|
||||
if (trusted == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
UUID trustedId = UUIDMigration.getForcedPlayerUUID(arg[0]);
|
||||
if (trustedId == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
if (trusted.equals(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.cannot.untrust.yourself"));
|
||||
if (trustedId.equals(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.cannot.untrust.yourself",player));
|
||||
return;
|
||||
}
|
||||
if (!clan.isMember(trusted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.player.is.not.a.member.of.your.clan"));
|
||||
if (!clan.isMember(trustedId)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.player.is.not.a.member.of.your.clan",player));
|
||||
return;
|
||||
}
|
||||
if (clan.isLeader(trusted)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("leaders.cannot.be.untrusted"));
|
||||
if (clan.isLeader(trustedId)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("leaders.cannot.be.untrusted",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer tcp = plugin.getClanManager().getClanPlayer(trusted);
|
||||
ClanPlayer tcp = plugin.getClanManager().getClanPlayer(trustedId);
|
||||
|
||||
if (tcp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.player.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.player.matched",player));
|
||||
return;
|
||||
}
|
||||
if (!tcp.isTrusted()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("this.player.is.already.untrusted"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("this.player.is.already.untrusted",player));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.been.given.untrusted.status.by"), Helper.capitalize(trusted), player.getName()));
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("has.been.given.untrusted.status.by"), arg[0], player.getName()));
|
||||
tcp.setTrusted(false);
|
||||
plugin.getStorageManager().updateClanPlayer(tcp);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -40,26 +41,33 @@ public class VerifyCommand {
|
||||
//if the player does specify a tag, but does not have mod permission to verify
|
||||
//if the player does not specify a tag, but does not have leader permission to verify
|
||||
if (arg.length != 0 || !plugin.getPermissionsManager().has(player, "simpleclans.leader.verify")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
if (isBuyer) {
|
||||
if (arg.length == 0 && plugin.getClanManager().purchaseVerification(player)) {
|
||||
clan.verifyClan();
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.0.has.been.verified"), clan.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("the.clan.has.been.verified"));
|
||||
int minToVerify = plugin.getSettingsManager().getMinToVerify();
|
||||
if (minToVerify > clan.getAllMembers().size()) {
|
||||
ChatBlock.sendMessage(player, lang("your.clan.must.have.members.to.verify", player, minToVerify));
|
||||
return;
|
||||
}
|
||||
if (plugin.getClanManager().purchaseVerification(player)) {
|
||||
clan.verifyClan();
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("clan.0.has.been.verified"), clan.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("the.clan.has.been.verified", player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
ChatBlock.sendMessage(player, lang("staff.member.verify.clan", player));
|
||||
} else {
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.verify.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(lang("usage.0.verify.tag",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
verify(player, arg[0]);
|
||||
}
|
||||
} else {
|
||||
if (arg.length != 1) {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.0.verify.tag"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + MessageFormat.format(lang("usage.0.verify.tag",sender), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
verify(sender, arg[0]);
|
||||
@@ -73,13 +81,13 @@ public class VerifyCommand {
|
||||
if (clan != null) {
|
||||
if (!clan.isVerified()) {
|
||||
clan.verifyClan();
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("clan.0.has.been.verified"), clan.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + plugin.getLang("the.clan.has.been.verified"));
|
||||
clan.addBb(player.getName(), ChatColor.AQUA + MessageFormat.format(lang("clan.0.has.been.verified"), clan.getName()));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("the.clan.has.been.verified",player));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.is.already.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.is.already.verified",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("the.clan.does.not.exist"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("the.clan.does.not.exist",player));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -28,42 +28,43 @@ public class VitalsCommand {
|
||||
String subColor = plugin.getSettingsManager().getPageSubTitleColor();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.member.vitals")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
return;
|
||||
}
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isVerified()) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clan.is.not.verified"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
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()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.0.vitals",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
ChatBlock chatBlock = new ChatBlock();
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + Helper.capitalize(clan.getName()) + subColor + " " + plugin.getLang("vitals") + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.saySingle(player, plugin.getSettingsManager().getPageClanNameColor() + clan.getName() + subColor + " " + lang("vitals",player) + " " + headColor + Helper.generatePageSeparator(plugin.getSettingsManager().getPageSep()));
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("weapons") + ": " + MessageFormat.format(plugin.getLang("0.s.sword.1.2.b.bow.3.4.a.arrow"), ChatColor.WHITE, ChatColor.DARK_GRAY, ChatColor.WHITE, ChatColor.DARK_GRAY, ChatColor.WHITE));
|
||||
ChatBlock.sendMessage(player, headColor + plugin.getLang("materials") + ": " + ChatColor.AQUA + plugin.getLang("diamond") + ChatColor.DARK_GRAY + ", " + ChatColor.YELLOW + plugin.getLang("gold") + ChatColor.DARK_GRAY + ", " + ChatColor.GRAY + plugin.getLang("stone") + ChatColor.DARK_GRAY + ", " + ChatColor.WHITE + plugin.getLang("iron") + ChatColor.DARK_GRAY + ", " + ChatColor.GOLD + plugin.getLang("wood"));
|
||||
ChatBlock.sendMessage(player, headColor + lang("weapons",player) + ": " + MessageFormat.format(lang("0.s.sword.1.2.b.bow.3.4.a.arrow",player), ChatColor.WHITE, ChatColor.DARK_GRAY, ChatColor.WHITE, ChatColor.DARK_GRAY, ChatColor.WHITE));
|
||||
ChatBlock.sendMessage(player, headColor + lang("materials",player) + ": " + ChatColor.AQUA + lang("diamond",player) + ChatColor.DARK_GRAY + ", " + ChatColor.YELLOW + lang("gold",player) + ChatColor.DARK_GRAY + ", " + ChatColor.GRAY + lang("stone",player) + ChatColor.DARK_GRAY + ", " + ChatColor.WHITE + lang("iron",player) + ChatColor.DARK_GRAY + ", " + ChatColor.GOLD + lang("wood",player));
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
chatBlock.setFlexibility(true, false, false, false, false, false);
|
||||
chatBlock.setAlignment("l", "l", "l", "c", "c", "c");
|
||||
|
||||
chatBlock.addRow(" " + headColor + plugin.getLang("name"), plugin.getLang("health"), plugin.getLang("hunger"), plugin.getLang("food"), plugin.getLang("armor"), plugin.getLang("weapons"));
|
||||
chatBlock.addRow(" " + headColor + lang("name",player), lang("health",player), lang("hunger",player), lang("food",player), lang("armor",player), lang("weapons",player));
|
||||
|
||||
List<ClanPlayer> members = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
members.addAll(Helper.stripOffLinePlayers(clan.getNonLeaders()));
|
||||
@@ -79,7 +80,7 @@ public class VitalsCommand {
|
||||
if (more) {
|
||||
plugin.getStorageManager().addChatBlock(player, chatBlock);
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, headColor + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.commands;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -24,29 +25,25 @@ public class WarCommand {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
if (!plugin.getPermissionsManager().has(player, "simpleclans.leader.war")) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("insufficient.permissions",player));
|
||||
return;
|
||||
}
|
||||
|
||||
ClanPlayer cp = plugin.getClanManager().getClanPlayer(player);
|
||||
|
||||
if (cp == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("not.a.member.of.any.clan"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("not.a.member.of.any.clan",player));
|
||||
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"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clan.is.not.verified",player));
|
||||
return;
|
||||
}
|
||||
if (arg.length != 2) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.war"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.war",player), plugin.getSettingsManager().getCommandClan()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -54,41 +51,47 @@ public class WarCommand {
|
||||
Clan war = plugin.getClanManager().getClan(arg[1]);
|
||||
|
||||
if (war == null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.clan.matched"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.clan.matched",player));
|
||||
return;
|
||||
}
|
||||
if (!clan.isRival(war.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.can.only.start.war.with.rivals"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.can.only.start.war.with.rivals",player));
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("start"))) {
|
||||
if (action.equals(lang("start",player))) {
|
||||
if (!plugin.getPermissionsManager().has(player, RankPermission.WAR_START, PermissionLevel.LEADER, true)) {
|
||||
return;
|
||||
}
|
||||
if (!clan.isWarring(war.getTag())) {
|
||||
List<ClanPlayer> onlineLeaders = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
|
||||
if (!onlineLeaders.isEmpty()) {
|
||||
plugin.getRequestManager().addWarStartRequest(cp, war, clan);
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("leaders.have.been.asked.to.accept.the.war.request"), Helper.capitalize(war.getName())));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("leaders.have.been.asked.to.accept.the.war.request",player), war.getName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("at.least.one.leader.accept.the.alliance"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("at.least.one.leader.accept.the.alliance",player));
|
||||
}
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clans.already.at.war"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clans.already.at.war",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (action.equals(plugin.getLang("end"))) {
|
||||
if (action.equals(lang("end",player))) {
|
||||
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())));
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(lang("leaders.asked.to.end.rivalry",player), war.getName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("clans.not.at.war"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("clans.not.at.war",player));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(plugin.getLang("usage.war"), plugin.getSettingsManager().getCommandClan()));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + MessageFormat.format(lang("usage.war",player), plugin.getSettingsManager().getCommandClan()));
|
||||
}
|
||||
}
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class CreateClanNamePrompt extends StringPrompt {
|
||||
@Override
|
||||
public @NotNull String getPromptText(@NotNull ConversationContext context) {
|
||||
return lang("insert.clan.name", (Player) context.getForWhom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Prompt acceptInput(@NotNull ConversationContext context, @Nullable String clanName) {
|
||||
SimpleClans plugin = (SimpleClans) context.getPlugin();
|
||||
Player player = (Player) context.getForWhom();
|
||||
if (plugin == null || clanName == null) return this;
|
||||
|
||||
Prompt errorPrompt = validateName(plugin, player, clanName);
|
||||
if (errorPrompt != null) return errorPrompt;
|
||||
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
//noinspection ConstantConditions
|
||||
processClanCreation(plugin, player, (String) context.getSessionData("tag"), clanName);
|
||||
});
|
||||
|
||||
return END_OF_CONVERSATION;
|
||||
}
|
||||
|
||||
private void processClanCreation(@NotNull SimpleClans plugin, @NotNull Player player, @NotNull String tag,
|
||||
@NotNull String name) {
|
||||
if (plugin.getClanManager().purchaseCreation(player)) {
|
||||
plugin.getClanManager().createClan(player, tag, name);
|
||||
|
||||
Clan clan = plugin.getClanManager().getClan(tag);
|
||||
clan.addBb(player.getName(), ChatColor.AQUA +
|
||||
lang("clan.created", name));
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
|
||||
if (plugin.getSettingsManager().isRequireVerification()) {
|
||||
boolean verified = !plugin.getSettingsManager().isRequireVerification()
|
||||
|| plugin.getPermissionsManager().has(player, "simpleclans.mod.verify");
|
||||
|
||||
if (!verified) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA +
|
||||
lang("get.your.clan.verified.to.access.advanced.features", player));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Prompt validateName(@NotNull SimpleClans plugin, @NotNull Player player, @NotNull String input) {
|
||||
boolean bypass = plugin.getPermissionsManager().has(player, "simpleclans.mod.bypass");
|
||||
if (bypass) {
|
||||
if (Helper.stripColors(input).length() > plugin.getSettingsManager().getClanMaxLength()) {
|
||||
return new MessagePromptImpl(ChatColor.RED +
|
||||
lang("your.clan.name.cannot.be.longer.than.characters", player,
|
||||
plugin.getSettingsManager().getClanMaxLength()), this);
|
||||
}
|
||||
if (Helper.stripColors(input).length() <= plugin.getSettingsManager().getClanMinLength()) {
|
||||
return new MessagePromptImpl(ChatColor.RED +
|
||||
lang("your.clan.name.must.be.longer.than.characters", player,
|
||||
plugin.getSettingsManager().getClanMinLength()), this);
|
||||
}
|
||||
}
|
||||
if (input.contains("&")) {
|
||||
return new MessagePromptImpl(ChatColor.RED +
|
||||
lang("your.clan.name.cannot.contain.color.codes", player), this);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.TagValidator;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class CreateClanTagPrompt extends StringPrompt {
|
||||
@Override
|
||||
public @NotNull String getPromptText(@NotNull ConversationContext context) {
|
||||
return lang("insert.clan.tag", (Player) context.getForWhom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Prompt acceptInput(@NotNull ConversationContext context, @Nullable String input) {
|
||||
Player player = (Player) context.getForWhom();
|
||||
SimpleClans plugin = (SimpleClans) context.getPlugin();
|
||||
if (input == null || plugin == null) return this;
|
||||
|
||||
Prompt errorPrompt = validateTag(plugin, player, input);
|
||||
if (errorPrompt != null) return errorPrompt;
|
||||
|
||||
context.setSessionData("tag", input);
|
||||
return new CreateClanNamePrompt();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Prompt validateTag(SimpleClans plugin, Player player, @NotNull String clanTag) {
|
||||
String cleanTag = Helper.stripColors(clanTag);
|
||||
if (plugin.getClanManager().isClan(cleanTag)) {
|
||||
return new MessagePromptImpl(ChatColor.RED +
|
||||
lang("clan.with.this.tag.already.exists", player), this);
|
||||
}
|
||||
|
||||
TagValidator validator = new TagValidator(plugin, player, clanTag);
|
||||
String errorMessage = validator.getErrorMessage();
|
||||
if (errorMessage == null) {
|
||||
return null;
|
||||
} else {
|
||||
return new MessagePromptImpl(errorMessage, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
public class CreateRankNamePrompt extends StringPrompt {
|
||||
@Override
|
||||
public @NotNull String getPromptText(@NotNull ConversationContext context) {
|
||||
return lang("insert.rank.name", (Player) context.getForWhom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Prompt acceptInput(@NotNull ConversationContext context, @Nullable String input) {
|
||||
SimpleClans plugin = (SimpleClans) context.getPlugin();
|
||||
Player player = (Player) context.getForWhom();
|
||||
Clan clan = (Clan) context.getSessionData("clan");
|
||||
if (clan == null || plugin == null) return END_OF_CONVERSATION;
|
||||
if (input == null) return this;
|
||||
|
||||
String rank = input.toLowerCase();
|
||||
if (clan.hasRank(rank)) {
|
||||
return new MessagePromptImpl(ChatColor.RED + lang("rank.already.exists", player), this);
|
||||
}
|
||||
|
||||
clan.createRank(rank);
|
||||
plugin.getStorageManager().updateClan(clan, true);
|
||||
return new MessagePromptImpl(ChatColor.AQUA + lang("rank.created", player));
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class MessagePromptImpl extends org.bukkit.conversations.MessagePrompt {
|
||||
|
||||
private final String message;
|
||||
private Prompt nextPrompt;
|
||||
|
||||
public MessagePromptImpl(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public MessagePromptImpl(String message, Prompt nextPrompt) {
|
||||
this(message);
|
||||
this.nextPrompt = nextPrompt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Prompt getNextPrompt(@NotNull ConversationContext cc) {
|
||||
return nextPrompt != null ? nextPrompt : END_OF_CONVERSATION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getPromptText(@NotNull ConversationContext cc) {
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.conversation;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
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.command.ConsoleCommandSender;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author roinujnosde
|
||||
*/
|
||||
public class ResignPrompt extends StringPrompt {
|
||||
|
||||
@Override
|
||||
public Prompt acceptInput(ConversationContext cc, String input) {
|
||||
final SimpleClans plugin = (SimpleClans) cc.getPlugin();
|
||||
|
||||
Player player = (Player) cc.getForWhom();
|
||||
String yes = lang("resign.yes", player);
|
||||
ClanManager cm = Objects.requireNonNull(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 + lang("0.has.resigned", player.getName()));
|
||||
cp.addResignTime(clan.getTag());
|
||||
clan.removePlayerFromClan(player.getUniqueId());
|
||||
|
||||
return new MessagePromptImpl(ChatColor.AQUA + lang("resign.success", player));
|
||||
} else if (clan.isLeader(player) && clan.getLeaders().size() == 1) {
|
||||
clan.disband();
|
||||
String msgKey = "clan.has.been.disbanded";
|
||||
//message for the server
|
||||
plugin.getClanManager().serverAnnounce(ChatColor.AQUA + lang(msgKey, clan.getName()));
|
||||
//message for the player
|
||||
return new MessagePromptImpl(ChatColor.AQUA + lang(msgKey, player, clan.getName()));
|
||||
} else {
|
||||
return new MessagePromptImpl(ChatColor.RED + lang("last.leader.cannot.resign.you.must.appoint.another.leader.or.disband.the.clan", player));
|
||||
}
|
||||
} else {
|
||||
return new MessagePromptImpl(ChatColor.RED + lang("resign.request.cancelled", player));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getPromptText(@NotNull ConversationContext cc) {
|
||||
Player player = (Player) cc.getForWhom();
|
||||
return ChatColor.RED + MessageFormat.format(
|
||||
lang("resign.confirmation", player), Arrays.asList(
|
||||
lang("resign.yes", player), lang("resign.no", player)));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.events;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AddKillEvent extends Event implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancelled = false;
|
||||
private ClanPlayer victim;
|
||||
private ClanPlayer attacker;
|
||||
public AddKillEvent(ClanPlayer attacker, ClanPlayer victim){
|
||||
this.attacker = attacker;
|
||||
this.victim = victim;
|
||||
}
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
public ClanPlayer getAttacker() {
|
||||
return attacker;
|
||||
}
|
||||
|
||||
public ClanPlayer getVictim() {
|
||||
return victim;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean value) {
|
||||
cancelled = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -15,12 +16,12 @@ import org.bukkit.event.HandlerList;
|
||||
*/
|
||||
public class ChatEvent extends Event implements Cancellable {
|
||||
|
||||
private final HandlerList handlers = new HandlerList();
|
||||
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||
private String message;
|
||||
private ClanPlayer sender;
|
||||
private List<ClanPlayer> receivers;
|
||||
private Map<String, String> placeholders = new HashMap<>();
|
||||
private Type type;
|
||||
private final ClanPlayer sender;
|
||||
private final List<ClanPlayer> receivers;
|
||||
private final Map<String, String> placeholders = new HashMap<>();
|
||||
private final Type type;
|
||||
private boolean cancelled;
|
||||
|
||||
public ChatEvent(String message, ClanPlayer sender, List<ClanPlayer> receivers, Type type) {
|
||||
@@ -134,8 +135,12 @@ public class ChatEvent extends Event implements Cancellable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
public @NotNull HandlerList getHandlers() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
|
||||
}
|
||||
+12
-14
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -20,8 +21,8 @@ public class AcceptCommandExecutor implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
|
||||
Player player = (Player) commandSender;
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("banned"));
|
||||
if (plugin.getSettingsManager().isBanned(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("banned",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -31,30 +32,27 @@ public class AcceptCommandExecutor implements CommandExecutor {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return false;
|
||||
}
|
||||
if (!plugin.getRequestManager().hasRequest(clan.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nothing.to.accept"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nothing.to.accept",player));
|
||||
return false;
|
||||
}
|
||||
if (cp.getVote() != null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.have.already.voted"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.have.already.voted",player));
|
||||
return false;
|
||||
}
|
||||
plugin.getRequestManager().accept(cp);
|
||||
clan.leaderAnnounce(ChatColor.GREEN + MessageFormat.format(plugin.getLang("voted.to.accept"), Helper.capitalize(player.getName())));
|
||||
|
||||
clan.leaderAnnounce(ChatColor.GREEN + MessageFormat.format(lang("voted.to.accept",player), player.getName()));
|
||||
plugin.getRequestManager().accept(cp);
|
||||
} else {
|
||||
if (!plugin.getRequestManager().hasRequest(player.getName().toLowerCase())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nothing.to.accept"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nothing.to.accept",player));
|
||||
return false;
|
||||
}
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getUniqueId());
|
||||
cp.setName(player.getName());
|
||||
} else {
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getName());
|
||||
}
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getUniqueId());
|
||||
cp.setName(player.getName());
|
||||
plugin.getRequestManager().accept(cp);
|
||||
}
|
||||
|
||||
|
||||
+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;
|
||||
}
|
||||
|
||||
|
||||
+132
-97
@@ -1,58 +1,72 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import java.text.MessageFormat;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.commands.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.*;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.InventoryDrawer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ui.frames.MainFrame;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public final class ClanCommandExecutor implements CommandExecutor {
|
||||
private SimpleClans plugin;
|
||||
private CreateCommand createCommand;
|
||||
private ListCommand listCommand;
|
||||
private ProfileCommand profileCommand;
|
||||
private RosterCommand rosterCommand;
|
||||
private LookupCommand lookupCommand;
|
||||
private LeaderboardCommand leaderboardCommand;
|
||||
private AlliancesCommand alliancesCommand;
|
||||
private RivalriesCommand rivalriesCommand;
|
||||
private VitalsCommand vitalsCommand;
|
||||
private CoordsCommand coordsCommand;
|
||||
private StatsCommand statsCommand;
|
||||
private AllyCommand allyCommand;
|
||||
private RivalCommand rivalCommand;
|
||||
private BbCommand bbCommand;
|
||||
private ModtagCommand modtagCommand;
|
||||
private ToggleCommand toggleCommand;
|
||||
private InviteCommand inviteCommand;
|
||||
private KickCommand kickCommand;
|
||||
private TrustCommand trustCommand;
|
||||
private UntrustCommand untrustCommand;
|
||||
private PromoteCommand promoteCommand;
|
||||
private DemoteCommand demoteCommand;
|
||||
private ClanffCommand clanffCommand;
|
||||
private FfCommand ffCommand;
|
||||
private ResignCommand resignCommand;
|
||||
private DisbandCommand disbandCommand;
|
||||
private VerifyCommand verifyCommand;
|
||||
private BanCommand banCommand;
|
||||
private UnbanCommand unbanCommand;
|
||||
private ReloadCommand reloadCommand;
|
||||
private GlobalffCommand globalffCommand;
|
||||
private MenuCommand menuCommand;
|
||||
private WarCommand warCommand;
|
||||
private HomeCommand homeCommand;
|
||||
private KillsCommand killsCommand;
|
||||
private MostKilledCommand mostKilledCommand;
|
||||
private SetRankCommand setRankCommand;
|
||||
private BankCommand bankCommand;
|
||||
private PlaceCommand placeCommand;
|
||||
private ResetKDRCommand resetKDRCommand;
|
||||
private final SimpleClans plugin;
|
||||
private final CreateCommand createCommand;
|
||||
private final ListCommand listCommand;
|
||||
private final ProfileCommand profileCommand;
|
||||
private final RosterCommand rosterCommand;
|
||||
private final LookupCommand lookupCommand;
|
||||
private final LeaderboardCommand leaderboardCommand;
|
||||
private final AlliancesCommand alliancesCommand;
|
||||
private final RivalriesCommand rivalriesCommand;
|
||||
private final VitalsCommand vitalsCommand;
|
||||
private final CoordsCommand coordsCommand;
|
||||
private final StatsCommand statsCommand;
|
||||
private final AllyCommand allyCommand;
|
||||
private final RivalCommand rivalCommand;
|
||||
private final BbCommand bbCommand;
|
||||
private final ModtagCommand modtagCommand;
|
||||
private final ToggleCommand toggleCommand;
|
||||
private final InviteCommand inviteCommand;
|
||||
private final KickCommand kickCommand;
|
||||
private final TrustCommand trustCommand;
|
||||
private final UntrustCommand untrustCommand;
|
||||
private final PromoteCommand promoteCommand;
|
||||
private final DemoteCommand demoteCommand;
|
||||
private final ClanffCommand clanffCommand;
|
||||
private final FfCommand ffCommand;
|
||||
private final ResignCommand resignCommand;
|
||||
private final DisbandCommand disbandCommand;
|
||||
private final VerifyCommand verifyCommand;
|
||||
private final BanCommand banCommand;
|
||||
private final FeeCommand feeCommand;
|
||||
private final UnbanCommand unbanCommand;
|
||||
private final ReloadCommand reloadCommand;
|
||||
private final GlobalffCommand globalffCommand;
|
||||
private final MenuCommand menuCommand;
|
||||
private final WarCommand warCommand;
|
||||
private final HomeCommand homeCommand;
|
||||
private final KillsCommand killsCommand;
|
||||
private final MostKilledCommand mostKilledCommand;
|
||||
private final SetRankCommand setRankCommand;
|
||||
private final BankCommand bankCommand;
|
||||
private final PlaceCommand placeCommand;
|
||||
private final ResetKDRCommand resetKDRCommand;
|
||||
private final PurgeCommand purgeCommand;
|
||||
private final DescriptionCommand descriptionCommand;
|
||||
private final RankCommand rankCommand;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -99,10 +113,14 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
bankCommand = new BankCommand();
|
||||
placeCommand = new PlaceCommand();
|
||||
resetKDRCommand = new ResetKDRCommand();
|
||||
feeCommand = new FeeCommand();
|
||||
purgeCommand = new PurgeCommand();
|
||||
descriptionCommand = new DescriptionCommand();
|
||||
rankCommand = new RankCommand();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, Command command, String s, String[] args) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
@@ -111,97 +129,113 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("banned"));
|
||||
if (plugin.getSettingsManager().isBanned(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("banned",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
menuCommand.execute(player);
|
||||
if (plugin.getSettingsManager().isEnableGUI()) {
|
||||
InventoryDrawer.open(new MainFrame(player));
|
||||
} else {
|
||||
menuCommand.execute(player);
|
||||
}
|
||||
} else {
|
||||
String subcommand = args[0];
|
||||
String[] subargs = Helper.removeFirst(args);
|
||||
|
||||
if (subcommand.equalsIgnoreCase(plugin.getLang("create.command"))) {
|
||||
|
||||
if (subcommand.equalsIgnoreCase(lang("create.command",player)) || subcommand.equalsIgnoreCase("create")) {
|
||||
createCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("list.command")) || subcommand.equalsIgnoreCase("list")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("list.command",player)) || subcommand.equalsIgnoreCase("list")) {
|
||||
listCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("bank.command")) || subcommand.equalsIgnoreCase("bank")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("bank.command",player)) || subcommand.equalsIgnoreCase("bank")) {
|
||||
bankCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("profile.command")) || subcommand.equalsIgnoreCase("profile")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("profile.command",player)) || subcommand.equalsIgnoreCase("profile")) {
|
||||
profileCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("roster.command")) || subcommand.equalsIgnoreCase("roster")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("roster.command",player)) || subcommand.equalsIgnoreCase("roster")) {
|
||||
rosterCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("lookup.command")) || subcommand.equalsIgnoreCase("lookup")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("lookup.command",player)) || subcommand.equalsIgnoreCase("lookup")) {
|
||||
lookupCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("home.command")) || subcommand.equalsIgnoreCase("home")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("home.command",player)) || subcommand.equalsIgnoreCase("home")) {
|
||||
homeCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("leaderboard.command")) || subcommand.equalsIgnoreCase("leaderboard")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("leaderboard.command",player)) || subcommand.equalsIgnoreCase("leaderboard")) {
|
||||
leaderboardCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("alliances.command")) || subcommand.equalsIgnoreCase("alliances")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("alliances.command",player)) || subcommand.equalsIgnoreCase("alliances")) {
|
||||
alliancesCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("rivalries.command")) || subcommand.equalsIgnoreCase("rivalries")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("rivalries.command",player)) || subcommand.equalsIgnoreCase("rivalries")) {
|
||||
rivalriesCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("vitals.command")) || subcommand.equalsIgnoreCase("vitals")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("vitals.command",player)) || subcommand.equalsIgnoreCase("vitals")) {
|
||||
vitalsCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("coords.command")) || subcommand.equalsIgnoreCase("coords")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("coords.command",player)) || subcommand.equalsIgnoreCase("coords")) {
|
||||
coordsCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("stats.command")) || subcommand.equalsIgnoreCase("stats")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("stats.command",player)) || subcommand.equalsIgnoreCase("stats")) {
|
||||
statsCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("ally.command")) || subcommand.equalsIgnoreCase("ally")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("ally.command",player)) || subcommand.equalsIgnoreCase("ally")) {
|
||||
allyCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("rival.command")) || subcommand.equalsIgnoreCase("rival")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("rival.command",player)) || subcommand.equalsIgnoreCase("rival")) {
|
||||
rivalCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("bb.command")) || subcommand.equalsIgnoreCase("bb")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("bb.command",player)) || subcommand.equalsIgnoreCase("bb")) {
|
||||
bbCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("modtag.command")) || subcommand.equalsIgnoreCase("modtag")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("modtag.command",player)) || subcommand.equalsIgnoreCase("modtag")) {
|
||||
modtagCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("toggle.command")) || subcommand.equalsIgnoreCase("toggle")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("toggle.command",player)) || subcommand.equalsIgnoreCase("toggle")) {
|
||||
toggleCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("invite.command")) || subcommand.equalsIgnoreCase("invite")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("invite.command",player)) || subcommand.equalsIgnoreCase("invite")) {
|
||||
inviteCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("kick.command")) || subcommand.equalsIgnoreCase("kick")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("kick.command",player)) || subcommand.equalsIgnoreCase("kick")) {
|
||||
kickCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("trust.command")) || subcommand.equalsIgnoreCase("trust")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("trust.command",player)) || subcommand.equalsIgnoreCase("trust")) {
|
||||
trustCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("untrust.command")) || subcommand.equalsIgnoreCase("unstrust")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("untrust.command",player)) || subcommand.equalsIgnoreCase("unstrust")) {
|
||||
untrustCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("promote.command")) || subcommand.equalsIgnoreCase("promote")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("promote.command",player)) || subcommand.equalsIgnoreCase("promote")) {
|
||||
promoteCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("demote.command")) || subcommand.equalsIgnoreCase("demote")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("demote.command",player)) || subcommand.equalsIgnoreCase("demote")) {
|
||||
demoteCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("clanff.command")) || subcommand.equalsIgnoreCase("canff")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("clanff.command",player)) || subcommand.equalsIgnoreCase("canff")) {
|
||||
clanffCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("ff.command")) || subcommand.equalsIgnoreCase("ff")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("ff.command",player)) || subcommand.equalsIgnoreCase("ff")) {
|
||||
ffCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("resign.command")) || subcommand.equalsIgnoreCase("resign")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("resign.command",player)) || subcommand.equalsIgnoreCase("resign")) {
|
||||
resignCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("disband.command")) || subcommand.equalsIgnoreCase("disband")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("disband.command",player)) || subcommand.equalsIgnoreCase("disband")) {
|
||||
disbandCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("verify.command")) || subcommand.equalsIgnoreCase("verify")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("verify.command",player)) || subcommand.equalsIgnoreCase("verify")) {
|
||||
verifyCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("ban.command")) || subcommand.equalsIgnoreCase("ban")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("ban.command",player)) || subcommand.equalsIgnoreCase("ban")) {
|
||||
banCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("unban.command")) || subcommand.equalsIgnoreCase("unban")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("unban.command",player)) || subcommand.equalsIgnoreCase("unban")) {
|
||||
unbanCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("reload.command")) || subcommand.equalsIgnoreCase("reload")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("reload.command",player)) || subcommand.equalsIgnoreCase("reload")) {
|
||||
reloadCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("globalff.command")) || subcommand.equalsIgnoreCase("globalff")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("globalff.command",player)) || subcommand.equalsIgnoreCase("globalff")) {
|
||||
globalffCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("war.command")) || subcommand.equalsIgnoreCase("war")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("war.command",player)) || subcommand.equalsIgnoreCase("war")) {
|
||||
warCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("kills.command")) || subcommand.equalsIgnoreCase("kills")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("kills.command",player)) || subcommand.equalsIgnoreCase("kills")) {
|
||||
killsCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("mostkilled.command")) || subcommand.equalsIgnoreCase("mostkilled")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("mostkilled.command",player)) || subcommand.equalsIgnoreCase("mostkilled")) {
|
||||
mostKilledCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("setrank.command")) || subcommand.equalsIgnoreCase("setrank")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("setrank.command",player)) || subcommand.equalsIgnoreCase("setrank")) {
|
||||
setRankCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("place.command")) || subcommand.equalsIgnoreCase("place")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("place.command",player)) || subcommand.equalsIgnoreCase("place")) {
|
||||
placeCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("resetkdr.command")) || subcommand.equalsIgnoreCase("resetkdr")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("resetkdr.command",player)) || subcommand.equalsIgnoreCase("resetkdr")) {
|
||||
resetKDRCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("fee.command",player)) || subcommand.equalsIgnoreCase("fee")) {
|
||||
feeCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("purge.command",player)) || subcommand.equalsIgnoreCase("purge")){
|
||||
purgeCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("description.command",player)) || subcommand.equalsIgnoreCase("description")) {
|
||||
descriptionCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("rank.command",player)) || subcommand.equalsIgnoreCase("rank")) {
|
||||
rankCommand.execute(player, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("help.command",player)) || subcommand.equalsIgnoreCase("help")) {
|
||||
menuCommand.execute(player);
|
||||
} else if (subcommand.equalsIgnoreCase(lang("setbanner.command", player)) || subcommand.equalsIgnoreCase("setbanner")) {
|
||||
new SetBannerCommand().execute(player);
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("does.not.match"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("does.not.match",player));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -211,22 +245,23 @@ public final class ClanCommandExecutor implements CommandExecutor {
|
||||
String subcommand = args[0];
|
||||
String[] subargs = Helper.removeFirst(args);
|
||||
|
||||
if (subcommand.equalsIgnoreCase(plugin.getLang("verify.command")) || subcommand.equalsIgnoreCase("verify")) {
|
||||
if (subcommand.equalsIgnoreCase(lang("verify.command", sender)) || subcommand.equalsIgnoreCase("verify")) {
|
||||
verifyCommand.execute(sender, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("reload.command")) || subcommand.equalsIgnoreCase("reload")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("reload.command", sender)) || subcommand.equalsIgnoreCase("reload")) {
|
||||
reloadCommand.execute(sender, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("place.command")) || subcommand.equalsIgnoreCase("place")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("place.command", sender)) || subcommand.equalsIgnoreCase("place")) {
|
||||
placeCommand.execute(sender, subargs);
|
||||
} else if (subcommand.equalsIgnoreCase(plugin.getLang("globalff.command")) || subcommand.equalsIgnoreCase("globalff")) {
|
||||
} else if (subcommand.equalsIgnoreCase(lang("globalff.command", sender)) || subcommand.equalsIgnoreCase("globalff")) {
|
||||
globalffCommand.execute(sender, subargs);
|
||||
}
|
||||
else {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + plugin.getLang("does.not.match"));
|
||||
} else if (subcommand.equalsIgnoreCase(lang("purge.command", sender)) || subcommand.equalsIgnoreCase("purge")) {
|
||||
purgeCommand.execute(sender, subargs);
|
||||
} else {
|
||||
ChatBlock.sendMessage(sender, ChatColor.RED + lang("does.not.match", sender));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.RED + MessageFormat.format(plugin.getLang("simpleclans.command.failure"), ex.getMessage()));
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage(ChatColor.RED + MessageFormat.format(lang("simpleclans.command.failure"), ex.getMessage()));
|
||||
for (StackTraceElement el : ex.getStackTrace()) {
|
||||
System.out.print(el.toString());
|
||||
}
|
||||
|
||||
+11
-13
@@ -1,6 +1,7 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -20,8 +21,8 @@ public class DenyCommandExecutor implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
|
||||
Player player = (Player) commandSender;
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("banned"));
|
||||
if (plugin.getSettingsManager().isBanned(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("banned",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -31,30 +32,27 @@ public class DenyCommandExecutor implements CommandExecutor {
|
||||
Clan clan = cp.getClan();
|
||||
|
||||
if (!clan.isLeader(player)) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("no.leader.permissions"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("no.leader.permissions",player));
|
||||
return false;
|
||||
}
|
||||
if (!plugin.getRequestManager().hasRequest(clan.getTag())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nothing.to.deny"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nothing.to.deny",player));
|
||||
return false;
|
||||
}
|
||||
if (cp.getVote() != null) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.have.already.voted"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.have.already.voted",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
plugin.getRequestManager().deny(cp);
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(plugin.getLang("has.voted.to.deny"), Helper.capitalize(player.getName())));
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(lang("has.voted.to.deny",player), player.getName()));
|
||||
plugin.getRequestManager().deny(cp);
|
||||
} else {
|
||||
if (!plugin.getRequestManager().hasRequest(player.getName().toLowerCase())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nothing.to.deny"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nothing.to.deny",player));
|
||||
return false;
|
||||
}
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getUniqueId());
|
||||
} else {
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getName());
|
||||
}
|
||||
cp = plugin.getClanManager().getCreateClanPlayer(player.getUniqueId());
|
||||
|
||||
plugin.getRequestManager().deny(cp);
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -1,9 +1,6 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
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;
|
||||
|
||||
+5
-4
@@ -2,6 +2,7 @@ package net.sacredlabyrinth.phaed.simpleclans.executors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -21,15 +22,15 @@ public class MoreCommandExecutor implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
|
||||
Player player = (Player) commandSender;
|
||||
|
||||
if (plugin.getSettingsManager().isBanned(player.getName())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("banned"));
|
||||
if (plugin.getSettingsManager().isBanned(player.getUniqueId())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("banned",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
ChatBlock chatBlock = plugin.getStorageManager().getChatBlock(player);
|
||||
|
||||
if (chatBlock == null || chatBlock.size() <= 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("nothing.more.to.see"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("nothing.more.to.see",player));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -37,7 +38,7 @@ public class MoreCommandExecutor implements CommandExecutor {
|
||||
|
||||
if (chatBlock.size() > 0) {
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, plugin.getSettingsManager().getPageHeadingsColor() + MessageFormat.format(plugin.getLang("view.next.page"), plugin.getSettingsManager().getCommandMore()));
|
||||
ChatBlock.sendMessage(player, plugin.getSettingsManager().getPageHeadingsColor() + MessageFormat.format(lang("view.next.page",player), plugin.getSettingsManager().getCommandMore()));
|
||||
}
|
||||
ChatBlock.sendBlank(player);
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.language;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
/**
|
||||
* Utility class that migrates old language files (yaml) to the new format (properties)
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*
|
||||
*/
|
||||
public class LanguageMigration {
|
||||
|
||||
private SimpleClans plugin;
|
||||
|
||||
public LanguageMigration(SimpleClans plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Migrates all language files in the plugin's data folder
|
||||
*/
|
||||
public void migrate() {
|
||||
File dataFolder = plugin.getDataFolder();
|
||||
if (!dataFolder.exists()) {
|
||||
return;
|
||||
}
|
||||
File[] languageFiles = dataFolder.listFiles(f -> {
|
||||
return f.getName().startsWith("language") && f.getName().endsWith(".yml");
|
||||
});
|
||||
|
||||
for (File file : languageFiles) {
|
||||
convert(file);
|
||||
backup(file);
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the file to the backup folder
|
||||
*
|
||||
* @param file the file to backup
|
||||
*/
|
||||
private void backup(File file) {
|
||||
File backupFolder = new File(plugin.getDataFolder(), "language_backup");
|
||||
if (!backupFolder.exists()) {
|
||||
backupFolder.mkdir();
|
||||
}
|
||||
|
||||
file.renameTo(new File(backupFolder, file.getName()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the yaml file to properties
|
||||
*
|
||||
* @param file
|
||||
*/
|
||||
private void convert(File file) {
|
||||
List<String> lines = null;
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) {
|
||||
lines = reader.lines().collect(Collectors.toList());
|
||||
} catch (IOException e) {
|
||||
plugin.getLogger().severe("Error converting language file " + file.getName());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (lines == null || lines.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> convertedLines = new ArrayList<>();
|
||||
for (String line : lines) {
|
||||
line = line.replaceFirst(":", "=")
|
||||
.replaceAll("''''", "''")
|
||||
.replaceAll("^'", "")
|
||||
.replaceAll("= \'", "=")
|
||||
.replaceAll("'$", "")
|
||||
.replaceAll("^\"", "")
|
||||
.replaceAll("\"$", "")
|
||||
.replaceAll("= \"", "=");
|
||||
convertedLines.add(line);
|
||||
}
|
||||
|
||||
File converted = new File(file.getParentFile(), file.getName().replace("language", "messages").replace("yml", "properties").replace("-", "_"));
|
||||
try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(converted), StandardCharsets.UTF_8))) {
|
||||
for (String line : convertedLines) {
|
||||
writer.append(line);
|
||||
writer.append(System.lineSeparator());
|
||||
}
|
||||
|
||||
writer.flush();
|
||||
} catch (IOException e) {
|
||||
plugin.getLogger().severe("Error converting language file " + file.getName());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.language;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
*
|
||||
*/
|
||||
public class LanguageResource {
|
||||
|
||||
private static final ResourceLoader LOADER = new ResourceLoader(SimpleClans.getInstance().getDataFolder());
|
||||
private final Locale defaultLocale;
|
||||
private static List<Locale> availableLocales;
|
||||
private static final Map<Locale, Integer> TRANSLATION_STATUS = new HashMap<>();
|
||||
|
||||
public LanguageResource() {
|
||||
this.defaultLocale = SimpleClans.getInstance().getSettingsManager().getLanguage();
|
||||
}
|
||||
|
||||
public String getLang(@NotNull String key, @NotNull Locale locale) {
|
||||
try {
|
||||
ResourceBundle bundle = ResourceBundle.getBundle("messages", locale, LOADER,
|
||||
new ResourceControl(defaultLocale, false));
|
||||
return bundle.getString(key);
|
||||
} catch (MissingResourceException ignored) {}
|
||||
if (locale.equals(Locale.ENGLISH)) {
|
||||
// English is the root messages.properties inside the jar
|
||||
locale = Locale.ROOT;
|
||||
}
|
||||
try {
|
||||
ResourceBundle bundle = ResourceBundle.getBundle("messages", locale,
|
||||
SimpleClans.getInstance().getClass().getClassLoader(), new ResourceControl(defaultLocale));
|
||||
|
||||
return bundle.getString(key);
|
||||
} catch (MissingResourceException ignored) {}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
public static int getTranslationStatus(@NotNull Locale locale) {
|
||||
if (locale.equals(Locale.ENGLISH)) {
|
||||
return 100;
|
||||
}
|
||||
Integer lines = TRANSLATION_STATUS.get(locale);
|
||||
Integer englishLines = TRANSLATION_STATUS.get(Locale.ENGLISH);
|
||||
if (lines == null || englishLines == null) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return Math.round((lines / englishLines.floatValue()) * 100);
|
||||
}
|
||||
|
||||
public static void clearCache() {
|
||||
ResourceBundle.clearCache(LOADER);
|
||||
}
|
||||
|
||||
public static List<Locale> getAvailableLocales() {
|
||||
if (availableLocales != null) {
|
||||
return availableLocales;
|
||||
}
|
||||
loadAvailableLocales();
|
||||
return availableLocales;
|
||||
}
|
||||
|
||||
private static void loadAvailableLocales() {
|
||||
ArrayList<Locale> locales = new ArrayList<>();
|
||||
try {
|
||||
URI uri = LanguageResource.class.getProtectionDomain().getCodeSource().getLocation().toURI();
|
||||
FileSystem fileSystem = FileSystems.newFileSystem(URI.create("jar:" + uri.toString()), Collections.emptyMap());
|
||||
Files.walk(fileSystem.getPath("/")).forEach(p -> {
|
||||
String name = p.getFileName() == null ? "" : p.getFileName().toString();
|
||||
if (name.startsWith("messages") && name.endsWith(".properties")) {
|
||||
Locale locale = getLocaleByFileName(name);
|
||||
locales.add(locale);
|
||||
loadTranslationStatus(locale, name);
|
||||
}
|
||||
});
|
||||
fileSystem.close();
|
||||
} catch (URISyntaxException | IOException e) {
|
||||
SimpleClans.getInstance().getLogger().log(Level.WARNING, "An error occurred while getting the available languages", e);
|
||||
}
|
||||
locales.sort(Comparator.comparing(Locale::toLanguageTag));
|
||||
availableLocales = locales;
|
||||
}
|
||||
|
||||
private static @NotNull Locale getLocaleByFileName(@NotNull String name) {
|
||||
Locale locale;
|
||||
if (name.equalsIgnoreCase("messages.properties")) {
|
||||
locale = Locale.ENGLISH;
|
||||
} else {
|
||||
String[] extensionSplit = name.split(".properties");
|
||||
String[] split = extensionSplit[0].split("_");
|
||||
if (split.length == 2) {
|
||||
locale = new Locale(split[1]);
|
||||
} else {
|
||||
locale = new Locale(split[1], split[2]);
|
||||
}
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
|
||||
private static void loadTranslationStatus(@NotNull Locale locale, @NotNull String fileName) {
|
||||
InputStream stream = SimpleClans.getInstance().getClass().getResourceAsStream("/" + fileName);
|
||||
if (stream == null) return;
|
||||
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
|
||||
int lineCount = 0;
|
||||
try {
|
||||
while (reader.readLine() != null) {
|
||||
lineCount++;
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
lineCount = -1;
|
||||
}
|
||||
TRANSLATION_STATUS.put(locale, lineCount);
|
||||
}
|
||||
|
||||
static class ResourceLoader extends ClassLoader {
|
||||
|
||||
private final File dataFolder;
|
||||
|
||||
public ResourceLoader(File dataFolder) {
|
||||
this.dataFolder = dataFolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public URL getResource(String name) {
|
||||
File file = new File(dataFolder, name);
|
||||
if (file.exists()) {
|
||||
try {
|
||||
return file.toURI().toURL();
|
||||
} catch (MalformedURLException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static class ResourceControl extends ResourceBundle.Control {
|
||||
|
||||
private final Locale defaultLocale;
|
||||
private final boolean defaultAsFallback;
|
||||
|
||||
public ResourceControl(@NotNull Locale defaultLocale) {
|
||||
this.defaultLocale = defaultLocale;
|
||||
this.defaultAsFallback = true;
|
||||
}
|
||||
|
||||
public ResourceControl(@NotNull Locale defaultLocale, boolean defaultAsFallback) {
|
||||
this.defaultLocale = defaultLocale;
|
||||
this.defaultAsFallback = defaultAsFallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getFormats(String baseName) {
|
||||
if (baseName == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
|
||||
return Collections.singletonList("java.properties");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Locale> getCandidateLocales(String baseName, Locale locale) {
|
||||
List<Locale> candidateLocales = new ArrayList<>(super.getCandidateLocales(baseName, locale));
|
||||
if (!defaultAsFallback && candidateLocales.size() != 1) {
|
||||
candidateLocales.remove(Locale.ROOT);
|
||||
}
|
||||
return candidateLocales;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader,
|
||||
boolean reload) throws IOException {
|
||||
String bundleName = toBundleName(baseName, locale);
|
||||
|
||||
ResourceBundle bundle;
|
||||
if (format.equals("java.properties")) {
|
||||
|
||||
String resourceName = toResourceName(bundleName, "properties");
|
||||
|
||||
URL url = loader.getResource(resourceName);
|
||||
if (url == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
URLConnection connection = url.openConnection();
|
||||
if (reload) {
|
||||
connection.setUseCaches(false);
|
||||
}
|
||||
|
||||
InputStreamReader reader = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8);
|
||||
bundle = new PropertyResourceBundle(reader);
|
||||
reader.close();
|
||||
} else {
|
||||
throw new IllegalArgumentException("unknown format: " + format);
|
||||
}
|
||||
|
||||
return bundle;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Locale getFallbackLocale(String baseName, Locale locale) {
|
||||
if (!defaultAsFallback) {
|
||||
return null;
|
||||
}
|
||||
if (!locale.equals(defaultLocale) && !locale.equals(Locale.ROOT)) {
|
||||
return defaultLocale;
|
||||
}
|
||||
if (locale.equals(defaultLocale) && !defaultLocale.equals(Locale.ROOT)) {
|
||||
return Locale.ROOT;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
-37
@@ -2,7 +2,13 @@ package net.sacredlabyrinth.phaed.simpleclans.listeners;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Kill;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.AddKillEvent;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.PermissionsManager;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.StorageManager.DataCallback;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@@ -15,6 +21,9 @@ import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -65,77 +74,122 @@ public class SCEntityListener implements Listener
|
||||
if (entityEvent.getDamager() instanceof Player)
|
||||
{
|
||||
attacker = (Player) entityEvent.getDamager();
|
||||
} else if (entityEvent.getDamager() instanceof Arrow)
|
||||
} else if (entityEvent.getDamager() instanceof Projectile)
|
||||
{
|
||||
Arrow arrow = (Arrow) entityEvent.getDamager();
|
||||
Projectile projectile = (Projectile) entityEvent.getDamager();
|
||||
|
||||
if (arrow.getShooter() instanceof Player)
|
||||
if (projectile.getShooter() instanceof Player)
|
||||
{
|
||||
attacker = (Player) arrow.getShooter();
|
||||
attacker = (Player) projectile.getShooter();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (attacker != null && victim != null)
|
||||
if (attacker != null)
|
||||
{
|
||||
ClanPlayer acp;
|
||||
ClanPlayer vcp;
|
||||
if (SimpleClans.getInstance().hasUUID())
|
||||
{
|
||||
acp = plugin.getClanManager().getCreateClanPlayer(attacker.getUniqueId());
|
||||
vcp = plugin.getClanManager().getCreateClanPlayer(victim.getUniqueId());
|
||||
} else
|
||||
{
|
||||
acp = plugin.getClanManager().getCreateClanPlayer(attacker.getName());
|
||||
vcp = plugin.getClanManager().getCreateClanPlayer(victim.getName());
|
||||
}
|
||||
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;
|
||||
|
||||
}
|
||||
}
|
||||
String kdrExempt = "simpleclans.other.kdr-exempt";
|
||||
PermissionsManager pm = plugin.getPermissionsManager();
|
||||
if (pm.has(attacker, kdrExempt) || pm.has(victim, kdrExempt)) {
|
||||
return;
|
||||
}
|
||||
|
||||
AddKillEvent addKillEvent = new AddKillEvent(plugin.getClanManager().getCreateClanPlayer(
|
||||
attacker.getUniqueId()),plugin.getClanManager().getCreateClanPlayer(victim.getUniqueId()));
|
||||
Bukkit.getServer().getPluginManager().callEvent(addKillEvent);
|
||||
if(addKillEvent.isCancelled()) return;
|
||||
|
||||
ClanPlayer victimCp = addKillEvent.getVictim();
|
||||
ClanPlayer attackerCp = addKillEvent.getAttacker();
|
||||
double reward = 0;
|
||||
double multipier = plugin.getSettingsManager().getKDRMultipliesPerKill();
|
||||
float kdr = acp.getKDR();
|
||||
float kdr = attackerCp.getKDR();
|
||||
|
||||
if (vcp.getClan() == null || acp.getClan() == null || !vcp.getClan().isVerified() || !acp.getClan().isVerified())
|
||||
if (victimCp.getClan() == null || attackerCp.getClan() == null || !victimCp.getClan().isVerified() || !attackerCp.getClan().isVerified())
|
||||
{
|
||||
acp.addCivilianKill();
|
||||
plugin.getStorageManager().insertKill(attacker, acp.getTag(), victim, "", "c");
|
||||
} else if (acp.getClan().isRival(vcp.getTag()))
|
||||
addKill(Kill.Type.CIVILIAN, attackerCp, victimCp);
|
||||
} else if (attackerCp.getClan().isRival(victimCp.getTag()))
|
||||
{
|
||||
if (acp.getClan().isWarring(vcp.getClan()))
|
||||
if (attackerCp.getClan().isWarring(victimCp.getClan()))
|
||||
{
|
||||
reward = (double) kdr * multipier * 4;
|
||||
} else
|
||||
{
|
||||
reward = (double) kdr * multipier * 2;
|
||||
}
|
||||
acp.addRivalKill();
|
||||
plugin.getStorageManager().insertKill(attacker, acp.getTag(), victim, vcp.getTag(), "r");
|
||||
} else if (acp.getClan().isAlly(vcp.getTag()))
|
||||
addKill(Kill.Type.RIVAL, attackerCp, victimCp);
|
||||
} else if (attackerCp.getClan().isAlly(victimCp.getTag()))
|
||||
{
|
||||
reward = (double) kdr * multipier * -1;
|
||||
} else
|
||||
{
|
||||
reward = (double) kdr * multipier;
|
||||
acp.addNeutralKill();
|
||||
plugin.getStorageManager().insertKill(attacker, acp.getTag(), victim, vcp.getTag(), "n");
|
||||
addKill(Kill.Type.NEUTRAL, attackerCp, victimCp);
|
||||
}
|
||||
|
||||
if (reward != 0 && plugin.getSettingsManager().isMoneyPerKill())
|
||||
{
|
||||
for (ClanPlayer cp : acp.getClan().getOnlineMembers())
|
||||
for (ClanPlayer cp : attackerCp.getClan().getOnlineMembers())
|
||||
{
|
||||
double money = Math.round((reward / acp.getClan().getOnlineMembers().size()) * 100D) / 100D;
|
||||
cp.toPlayer().sendMessage(ChatColor.AQUA + MessageFormat.format(plugin.getLang("player.got.money"), money, victim.getName(), kdr));
|
||||
plugin.getPermissionsManager().playerGrantMoney(cp.getName(), money);
|
||||
double money = Math.round((reward / attackerCp.getClan().getOnlineMembers().size()) * 100D) / 100D;
|
||||
cp.toPlayer().sendMessage(ChatColor.AQUA + MessageFormat.format(lang("player.got.money",cp.toPlayer()), money, victim.getName(), kdr));
|
||||
plugin.getPermissionsManager().playerGrantMoney(cp.toPlayer(), money);
|
||||
}
|
||||
}
|
||||
|
||||
// record death for victim
|
||||
vcp.addDeath();
|
||||
plugin.getStorageManager().updateClanPlayerAsync(vcp);
|
||||
victimCp.addDeath();
|
||||
plugin.getStorageManager().updateClanPlayer(victimCp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addKill(Kill.Type type, ClanPlayer attacker, ClanPlayer victim) {
|
||||
if (type == null || attacker == null || victim == null) {
|
||||
return;
|
||||
}
|
||||
final Kill kill = new Kill(attacker, victim, LocalDateTime.now());
|
||||
if (plugin.getSettingsManager().isDelayBetweenKills() && plugin.getClanManager().isKillBeforeDelay(kill)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getSettingsManager().isMaxKillsPerVictim()) {
|
||||
plugin.getStorageManager().getKillsPerPlayer(attacker.getName(), new DataCallback<Map<String,Integer>>() {
|
||||
|
||||
@Override
|
||||
public void onResultReady(Map<String, Integer> data) {
|
||||
final int max = plugin.getSettingsManager().getMaxKillsPerVictim();
|
||||
Integer kills = data.get(kill.getVictim().getName());
|
||||
if (kills != null) {
|
||||
if (kills < max) {
|
||||
saveKill(kill, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
saveKill(kill, type);
|
||||
}
|
||||
|
||||
private void saveKill(Kill kill, Kill.Type type) {
|
||||
plugin.getClanManager().addKill(kill);
|
||||
ClanPlayer killer = kill.getKiller();
|
||||
ClanPlayer victim = kill.getVictim();
|
||||
killer.addKill(type);
|
||||
plugin.getStorageManager().insertKill(killer, victim, type.getShortname());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param event
|
||||
*/
|
||||
@@ -230,13 +284,13 @@ public class SCEntityListener implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
if (sub.getEntity() instanceof Player && sub.getDamager() instanceof Arrow)
|
||||
if (sub.getEntity() instanceof Player && sub.getDamager() instanceof Projectile)
|
||||
{
|
||||
Arrow arrow = (Arrow) sub.getDamager();
|
||||
Projectile projectile = (Projectile) sub.getDamager();
|
||||
|
||||
if (arrow.getShooter() instanceof Player)
|
||||
if (projectile.getShooter() instanceof Player)
|
||||
{
|
||||
attacker = (Player) arrow.getShooter();
|
||||
attacker = (Player) projectile.getShooter();
|
||||
victim = (Player) sub.getEntity();
|
||||
}
|
||||
}
|
||||
|
||||
+11
-11
@@ -3,6 +3,7 @@ package net.sacredlabyrinth.phaed.simpleclans.listeners;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.executors.*;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@@ -74,7 +75,7 @@ public class SCPlayerListener implements Listener {
|
||||
if (cp.getTag().equalsIgnoreCase(command)) {
|
||||
event.setCancelled(true);
|
||||
if (!plugin.getPermissionsManager().has(cp.toPlayer(), "simpleclans.member.chat")) {
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + lang("insufficient.permissions",cp.toPlayer()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -97,7 +98,7 @@ public class SCPlayerListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
|
||||
if (!plugin.getPermissionsManager().has(cp.toPlayer(), "simpleclans.member.chat")) {
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + lang("insufficient.permissions",cp.toPlayer()));
|
||||
return;
|
||||
}
|
||||
if (split.length > 1) {
|
||||
@@ -156,12 +157,11 @@ 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"));
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + lang("insufficient.permissions",cp.toPlayer()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public class SCPlayerListener implements Listener {
|
||||
} else if (cp.getChannel().equals(ClanPlayer.Channel.ALLY)) {
|
||||
event.setCancelled(true);
|
||||
if (!plugin.getPermissionsManager().has(cp.toPlayer(), "simpleclans.member.ally")) {
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + plugin.getLang("insufficient.permissions"));
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.RED + lang("insufficient.permissions",cp.toPlayer()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -181,8 +181,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);
|
||||
|
||||
@@ -244,7 +244,7 @@ public class SCPlayerListener implements Listener {
|
||||
if (SimpleClans.getInstance().getSettingsManager().getUseBungeeCord()) {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayerJoinEvent(player);
|
||||
} else {
|
||||
cp = SimpleClans.getInstance().getClanManager().getClanPlayer(player);
|
||||
cp = SimpleClans.getInstance().getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
}
|
||||
|
||||
SimpleClans.getInstance().getStorageManager().updatePlayerNameAsync(player);
|
||||
@@ -258,8 +258,8 @@ public class SCPlayerListener implements Listener {
|
||||
|
||||
SimpleClans.getInstance().getPermissionsManager().addPlayerPermissions(cp);
|
||||
|
||||
if (plugin.getSettingsManager().isBbShowOnLogin() && cp.isBbEnabled()) {
|
||||
cp.getClan().displayBb(player);
|
||||
if (plugin.getSettingsManager().isBbShowOnLogin() && cp.isBbEnabled() && cp.getClan() != null) {
|
||||
cp.getClan().displayBb(player, plugin.getSettingsManager().getBbLoginSize());
|
||||
}
|
||||
|
||||
SimpleClans.getInstance().getPermissionsManager().addClanPermissions(cp);
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -7,16 +7,16 @@ import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Deprecated
|
||||
public class LanguageManager {
|
||||
private File file;
|
||||
private HashMap<String, String> language;
|
||||
private String[] comments = new String[]{};
|
||||
|
||||
public LanguageManager() {
|
||||
load();
|
||||
//load();
|
||||
}
|
||||
|
||||
public void load() {
|
||||
@@ -85,6 +85,6 @@ public class LanguageManager {
|
||||
return o.toString();
|
||||
}
|
||||
|
||||
return null;
|
||||
return "Missing language for "+key;
|
||||
}
|
||||
}
|
||||
+205
-39
@@ -3,18 +3,27 @@ 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;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -24,14 +33,14 @@ public final class PermissionsManager {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private SimpleClans plugin;
|
||||
private final SimpleClans plugin;
|
||||
|
||||
private static Permission permission = null;
|
||||
private static Economy economy = null;
|
||||
private static Chat chat = null;
|
||||
|
||||
private HashMap<String, List<String>> permissions = new HashMap<>();
|
||||
private HashMap<Player, PermissionAttachment> permAttaches = new HashMap<>();
|
||||
private final HashMap<String, List<String>> permissions = new HashMap<>();
|
||||
private final HashMap<Player, PermissionAttachment> permAttaches = new HashMap<>();
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -46,12 +55,12 @@ public final class PermissionsManager {
|
||||
setupEconomy();
|
||||
setupPermissions();
|
||||
} catch (ClassNotFoundException e) {
|
||||
SimpleClans.log("[SimpleClans] Vault not found. No economy or extended Permissions support.");
|
||||
SimpleClans.getInstance().getLogger().info("Vault not found. No economy or extended Permissions support.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether exonomy plugin exists and is enabled
|
||||
* Whether economy plugin exists and is enabled
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@@ -71,7 +80,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 +88,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
|
||||
*/
|
||||
@@ -98,19 +108,26 @@ public final class PermissionsManager {
|
||||
*
|
||||
* @param cp
|
||||
*/
|
||||
public void addPlayerPermissions(ClanPlayer cp) {
|
||||
if (cp != null && cp.toPlayer() != null) {
|
||||
Player player = cp.toPlayer();
|
||||
if (permissions.containsKey(cp.getClan().getTag())) {
|
||||
if (!permAttaches.containsKey(cp.toPlayer())) {
|
||||
permAttaches.put(cp.toPlayer(), cp.toPlayer().addAttachment(SimpleClans.getInstance()));
|
||||
public void addPlayerPermissions(@Nullable ClanPlayer cp) {
|
||||
if (cp == null) {
|
||||
return;
|
||||
}
|
||||
Clan clan = cp.getClan();
|
||||
if (clan == null) {
|
||||
return;
|
||||
}
|
||||
Player player = cp.toPlayer();
|
||||
if (player != null) {
|
||||
if (permissions.containsKey(clan.getTag())) {
|
||||
if (!permAttaches.containsKey(player)) {
|
||||
permAttaches.put(player, player.addAttachment(SimpleClans.getInstance()));
|
||||
}
|
||||
//Adds all permisisons from his clan
|
||||
for (String perm : getPermissions(cp.getClan())) {
|
||||
permAttaches.get(cp.toPlayer()).setPermission(perm, true);
|
||||
//Adds all permissions from his clan
|
||||
for (String perm : getPermissions(clan)) {
|
||||
permAttaches.get(player).setPermission(perm, true);
|
||||
}
|
||||
if (plugin.getSettingsManager().isAutoGroupGroupName()) {
|
||||
permAttaches.get(cp.toPlayer()).setPermission("group." + cp.getClan().getTag(), true);
|
||||
permAttaches.get(player).setPermission("group." + clan.getTag(), true);
|
||||
}
|
||||
player.recalculatePermissions();
|
||||
}
|
||||
@@ -157,6 +174,29 @@ public final class PermissionsManager {
|
||||
public Map<Player, PermissionAttachment> getPermAttaches() {
|
||||
return permAttaches;
|
||||
}
|
||||
|
||||
/**
|
||||
* Charge a player some money
|
||||
*
|
||||
* @param player
|
||||
* @param money
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean playerChargeMoney(String player, double money) {
|
||||
return economy.withdrawPlayer(player, money).transactionSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* Charge a player some money
|
||||
*
|
||||
* @param player
|
||||
* @param money
|
||||
* @return
|
||||
*/
|
||||
public boolean playerChargeMoney(OfflinePlayer player, double money) {
|
||||
return economy.withdrawPlayer(player, money).transactionSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* Charge a player some money
|
||||
@@ -166,7 +206,7 @@ public final class PermissionsManager {
|
||||
* @return
|
||||
*/
|
||||
public boolean playerChargeMoney(Player player, double money) {
|
||||
return economy.withdrawPlayer(player, money).transactionSuccess();
|
||||
return playerChargeMoney((OfflinePlayer) player, money);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -224,6 +264,22 @@ public final class PermissionsManager {
|
||||
return economy.getBalance(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a player has permissions
|
||||
*
|
||||
* @param world the world
|
||||
* @param player the player
|
||||
* @param perm the permission
|
||||
* @return whether he has the permission
|
||||
*/
|
||||
public boolean has(String world, OfflinePlayer player, String perm) {
|
||||
if (player != null && permission != null) {
|
||||
return permission.playerHas(world, player, perm);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a player has permissions
|
||||
*
|
||||
@@ -242,6 +298,116 @@ 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
|
||||
*/
|
||||
@Deprecated
|
||||
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(lang("you.must.be.0.or.have.the.permission.1.to.use.this", player),
|
||||
level == PermissionLevel.LEADER ? lang("leader", player) : lang("trusted", player), permission.toString()));
|
||||
}
|
||||
|
||||
return hasLevel || hasRankPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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, 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) {
|
||||
if (notify) {
|
||||
ChatBlock.sendMessage(player,ChatColor.RED + lang("insufficient.permissions", player));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean hasLevel = false;
|
||||
switch (permission.getPermissionLevel()) {
|
||||
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(lang("you.must.be.0.or.have.the.permission.1.to.use.this",player),
|
||||
permission.getPermissionLevel() == PermissionLevel.LEADER ? lang("leader",player) : lang("trusted",player), permission.toString()));
|
||||
}
|
||||
|
||||
return hasLevel || hasRankPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the player permissions linked to a clan
|
||||
@@ -256,37 +422,37 @@ public final class PermissionsManager {
|
||||
if (permission != null) {
|
||||
if (cp != null && cp.toPlayer() != null) {
|
||||
if (cp.getClan() != null) {
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "clan." + cp.getTag())) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "clan." + cp.getTag());
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "clan_" + cp.getTag())) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "clan_" + cp.getTag());
|
||||
}
|
||||
|
||||
if (cp.isLeader()) {
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc.leader")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc.leader");
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc_leader")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc_leader");
|
||||
}
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_trusted");
|
||||
return;
|
||||
}
|
||||
|
||||
if (cp.isTrusted()) {
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc.trusted")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc.trusted");
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc_trusted")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc_trusted");
|
||||
}
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.leader");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_leader");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc.untrusted")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc.untrusted");
|
||||
if (!permission.playerInGroup(cp.toPlayer(), "sc_untrusted")) {
|
||||
permission.playerAddGroup(cp.toPlayer(), "sc_untrusted");
|
||||
}
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.leader");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_leader");
|
||||
} else {
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.leader");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_leader");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,10 +469,10 @@ public final class PermissionsManager {
|
||||
}
|
||||
|
||||
if (permission != null && cp.toPlayer() != null) {
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "clan." + cp.getTag());
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc.leader");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "clan_" + cp.getTag());
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_untrusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_trusted");
|
||||
permission.playerRemoveGroup(cp.toPlayer(), "sc_leader");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+440
@@ -0,0 +1,440 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Clan;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ClanPlayer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static me.clip.placeholderapi.PlaceholderAPIPlugin.booleanFalse;
|
||||
import static me.clip.placeholderapi.PlaceholderAPIPlugin.booleanTrue;
|
||||
|
||||
/**
|
||||
* {@link Class} to manage and hook {@link SimpleClans} into {@link PlaceholderAPI}
|
||||
*
|
||||
* @since 2.10.1
|
||||
*
|
||||
* @author Peng1104
|
||||
*/
|
||||
|
||||
public final class PlaceholdersManager extends PlaceholderExpansion {
|
||||
|
||||
/**
|
||||
* The {@link Pattern} that identifies the top {@link Clan}s placeholder
|
||||
*
|
||||
* @since 1.12.3
|
||||
*/
|
||||
private static final Pattern TOP_CLANS_PATTERN = Pattern.compile("^topclans_\\d+_clan_");
|
||||
|
||||
/**
|
||||
* The {@link List} containing all the placeholders of the {@link SimpleClans} {@link Plugin}
|
||||
*
|
||||
* @since 1.12.3
|
||||
*/
|
||||
private static final List<String> PLACEHOLDERS_LIST = new ArrayList<>();
|
||||
|
||||
static {
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_neutral_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_rival_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_civilian_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_total_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_weighted_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_deaths%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_kdr%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_in_clan%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_leader%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_trusted%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_member%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_bb_enabled%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_usechatshortcut%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_allychat%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_clanchat%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_globalchat%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_cape_enabled%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_tag_enabled%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_friendlyfire_on%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_muted%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_is_mutedally%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_join_date%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_inactive_days%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_lastseen%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_lastseendays%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_tag%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_tag_label%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_rank%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_rank_displayname%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clanchat_player_color%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_allychat_player_color%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_neutral%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_civilian%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_rival%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_deaths%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_total_kdr%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_average_wk%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_leader_size%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_balance%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_allow_withdraw%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_allow_deposit%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_size%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_name%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_color_tag%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_tag%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_founded%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_friendly_fire%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_is_unrivable%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_is_anyonline%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_is_verified%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_capeurl%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_inactivedays%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_onlinemembers_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_allies_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_rivals_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_clan_topclans_position%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_neutral%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_civilian%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_rival%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_kills%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_deaths%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_total_kdr%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_average_wk%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_leader_size%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_balance%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_allow_withdraw%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_allow_deposit%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_size%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_name%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_color_tag%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_tag%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_founded%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_friendly_fire%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_is_unrivable%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_is_anyonline%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_is_verified%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_capeurl%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_inactivedays%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_onlinemembers_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_allies_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_rivals_count%");
|
||||
PLACEHOLDERS_LIST.add("%simpleclans_topclans_<Number>_clan_topclans_position%");
|
||||
}
|
||||
|
||||
/**
|
||||
* The {@link SimpleClans} {@link Plugin} instance
|
||||
*
|
||||
* @since 2.10.1
|
||||
*/
|
||||
private final SimpleClans simpleClans;
|
||||
|
||||
/**
|
||||
* The {@link PlaceholdersManager} constructor
|
||||
*
|
||||
* @param simpleClans The {@link SimpleClans} {@link Plugin}
|
||||
*
|
||||
* @since 2.10.1
|
||||
*/
|
||||
public PlaceholdersManager(@NotNull SimpleClans simpleClans) {
|
||||
this.simpleClans = simpleClans;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a value for the requested {@link ClanPlayer} and identifier
|
||||
*
|
||||
* @param player The {@link ClanPlayer} to request the placeholders value for
|
||||
* @param identifier String that determine what value to return
|
||||
*
|
||||
* @return value for the requested {@link ClanPlayer} and params
|
||||
*
|
||||
* @since 2.10.1
|
||||
*/
|
||||
@NotNull
|
||||
public String getPlaceholderValue(@Nullable ClanPlayer player, @NotNull String identifier) {
|
||||
Clan clan = null;
|
||||
|
||||
if (TOP_CLANS_PATTERN.matcher(identifier).find()) {
|
||||
// getting the position
|
||||
int position = Integer.parseInt(identifier.substring(9, identifier.indexOf('_', 9)));
|
||||
|
||||
List<Clan> clans = simpleClans.getClanManager().getClans();
|
||||
|
||||
// validating position
|
||||
if (position < 1 || position > clans.size()) {
|
||||
return "";
|
||||
}
|
||||
simpleClans.getClanManager().sortClansByKDR(clans);
|
||||
|
||||
clan = clans.get(position - 1);
|
||||
identifier = identifier.substring(identifier.indexOf('_', 9) + 1);
|
||||
}
|
||||
if (clan == null) {
|
||||
if (player == null) {
|
||||
return "";
|
||||
}
|
||||
clan = player.getClan();
|
||||
|
||||
switch (identifier) {
|
||||
case "neutral_kills": {
|
||||
return String.valueOf(player.getNeutralKills());
|
||||
}
|
||||
case "rival_kills": {
|
||||
return String.valueOf(player.getRivalKills());
|
||||
}
|
||||
case "civilian_kills": {
|
||||
return String.valueOf(player.getCivilianKills());
|
||||
}
|
||||
case "total_kills": {
|
||||
return String.valueOf(player.getNeutralKills() + player.getRivalKills()
|
||||
+ player.getCivilianKills());
|
||||
}
|
||||
case "weighted_kills": {
|
||||
return String.valueOf(player.getWeightedKills());
|
||||
}
|
||||
case "deaths": {
|
||||
return String.valueOf(player.getDeaths());
|
||||
}
|
||||
case "kdr": {
|
||||
return String.valueOf(player.getKDR());
|
||||
}
|
||||
case "in_clan": {
|
||||
return (clan != null) ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_leader": {
|
||||
return player.isLeader() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_trusted": {
|
||||
return (!player.isLeader() && player.isTrusted()) ? booleanTrue()
|
||||
: booleanFalse();
|
||||
}
|
||||
case "is_member": {
|
||||
return (!player.isTrusted() && !player.isLeader() && clan != null)
|
||||
? booleanTrue()
|
||||
: booleanFalse();
|
||||
}
|
||||
case "is_bb_enabled": {
|
||||
return player.isBbEnabled() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_usechatshortcut": {
|
||||
return player.isUseChatShortcut() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_allychat": {
|
||||
return player.isAllyChat() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_clanchat": {
|
||||
return player.isClanChat() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_globalchat": {
|
||||
return player.isGlobalChat() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_cape_enabled": {
|
||||
return player.isCapeEnabled() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_tag_enabled": {
|
||||
return player.isTagEnabled() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_friendlyfire_on": {
|
||||
return player.isFriendlyFire() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_muted": {
|
||||
return player.isMuted() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "is_mutedally": {
|
||||
return player.isMutedAlly() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "join_date": {
|
||||
return player.getJoinDateString();
|
||||
}
|
||||
case "inactive_days": {
|
||||
return String.valueOf(player.getInactiveDays());
|
||||
}
|
||||
case "lastseen": {
|
||||
return player.getLastSeenString();
|
||||
}
|
||||
case "lastseendays": {
|
||||
return player.getLastSeenDaysString();
|
||||
}
|
||||
case "tag": {
|
||||
return player.getTag();
|
||||
}
|
||||
case "tag_label": {
|
||||
return player.getTagLabel();
|
||||
}
|
||||
case "rank": {
|
||||
return player.getRankId();
|
||||
}
|
||||
case "rank_displayname": {
|
||||
return player.getRankDisplayName();
|
||||
}
|
||||
case "clanchat_player_color": {
|
||||
if (player.isLeader()) {
|
||||
return simpleClans.getSettingsManager().getClanChatLeaderColor();
|
||||
}
|
||||
if (player.isTrusted()) {
|
||||
return simpleClans.getSettingsManager().getClanChatTrustedColor();
|
||||
}
|
||||
if (clan != null) {
|
||||
return simpleClans.getSettingsManager().getClanChatMemberColor();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
case "allychat_player_color": {
|
||||
if (player.isLeader()) {
|
||||
return simpleClans.getSettingsManager().getAllyChatLeaderColor();
|
||||
}
|
||||
if (player.isTrusted()) {
|
||||
return simpleClans.getSettingsManager().getAllyChatTrustedColor();
|
||||
}
|
||||
if (clan != null) {
|
||||
return simpleClans.getSettingsManager().getAllyChatMemberColor();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (clan == null) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
switch (identifier) {
|
||||
case "clan_total_neutral": {
|
||||
return String.valueOf(clan.getTotalNeutral());
|
||||
}
|
||||
case "clan_total_civilian": {
|
||||
return String.valueOf(clan.getTotalCivilian());
|
||||
}
|
||||
case "clan_total_rival": {
|
||||
return String.valueOf(clan.getTotalRival());
|
||||
}
|
||||
case "clan_total_kills": {
|
||||
return String.valueOf(
|
||||
clan.getTotalRival() + clan.getTotalNeutral() + clan.getTotalCivilian());
|
||||
}
|
||||
case "clan_total_deaths": {
|
||||
return String.valueOf(clan.getTotalDeaths());
|
||||
}
|
||||
case "clan_total_kdr": {
|
||||
return String.valueOf(clan.getTotalKDR());
|
||||
}
|
||||
case "clan_average_wk": {
|
||||
return String.valueOf(clan.getAverageWK());
|
||||
}
|
||||
case "clan_leader_size": {
|
||||
return String.valueOf(clan.getLeaders().size());
|
||||
}
|
||||
case "clan_balance": {
|
||||
return String.valueOf(clan.getBalance());
|
||||
}
|
||||
case "clan_allow_withdraw": {
|
||||
return clan.isAllowWithdraw() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_allow_deposit": {
|
||||
return clan.isAllowDeposit() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_size": {
|
||||
return String.valueOf(clan.getSize());
|
||||
}
|
||||
case "clan_name": {
|
||||
return clan.getName();
|
||||
}
|
||||
case "clan_color_tag": {
|
||||
return clan.getColorTag();
|
||||
}
|
||||
case "clan_tag": {
|
||||
return clan.getTag();
|
||||
}
|
||||
case "clan_founded": {
|
||||
return clan.getFoundedString();
|
||||
}
|
||||
case "clan_friendly_fire": {
|
||||
return clan.isFriendlyFire() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_is_unrivable": {
|
||||
return clan.isUnrivable() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_is_anyonline": {
|
||||
return clan.isAnyOnline() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_is_verified": {
|
||||
return clan.isVerified() ? booleanTrue() : booleanFalse();
|
||||
}
|
||||
case "clan_capeurl": {
|
||||
return clan.getCapeUrl();
|
||||
}
|
||||
case "clan_inactivedays": {
|
||||
return String.valueOf(clan.getInactiveDays());
|
||||
}
|
||||
case "clan_onlinemembers_count": {
|
||||
return String.valueOf(clan.getOnlineMembers().size());
|
||||
}
|
||||
case "clan_allies_count": {
|
||||
return String.valueOf(clan.getAllies().size());
|
||||
}
|
||||
case "clan_rivals_count": {
|
||||
return String.valueOf(clan.getRivals().size());
|
||||
}
|
||||
case "clan_topclans_position": {
|
||||
List<Clan> clans = simpleClans.getClanManager().getClans();
|
||||
simpleClans.getClanManager().sortClansByKDR(clans);
|
||||
|
||||
return String.valueOf(clans.indexOf(clan) + 1);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifier() {
|
||||
return getName().toLowerCase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getAuthor() {
|
||||
List<String> authors = new ArrayList<>(simpleClans.getDescription().getAuthors());
|
||||
authors.add("Peng1104");
|
||||
return authors.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion() {
|
||||
return simpleClans.getDescription().getVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onRequest(@Nullable OfflinePlayer player, @NotNull String params) {
|
||||
ClanPlayer clanPlayer = null;
|
||||
if (player != null) {
|
||||
clanPlayer = simpleClans.getClanManager().getAnyClanPlayer(player.getUniqueId());
|
||||
}
|
||||
return getPlaceholderValue(clanPlayer, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return simpleClans.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull List<String> getPlaceholders() {
|
||||
return PLACEHOLDERS_LIST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean persist() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRegister() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
+228
-177
@@ -4,11 +4,15 @@ import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.RequestEvent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.events.RequestFinishedEvent;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
@@ -43,15 +47,19 @@ public final class RequestManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void addDemoteRequest(ClanPlayer requester, String demotedName, Clan clan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("asking.for.the.demotion"), Helper.capitalize(requester.getName()), demotedName);
|
||||
if (requests.containsKey(clan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("asking.for.the.demotion"), 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);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.DEMOTE, acceptors, requester, demotedName, clan, msg);
|
||||
requests.put(clan.getTag(), req);
|
||||
req.vote(requester.getName(), VoteResult.ACCEPT);
|
||||
requests.put(req.getClan().getTag(), req);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -63,13 +71,16 @@ public final class RequestManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void addPromoteRequest(ClanPlayer requester, String promotedName, Clan clan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("asking.for.the.promotion"), Helper.capitalize(requester.getName()), promotedName);
|
||||
if (requests.containsKey(clan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("asking.for.the.promotion"), requester.getName(), promotedName);
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.PROMOTE, acceptors, requester, promotedName, clan, msg);
|
||||
requests.put(clan.getTag(), req);
|
||||
requests.put(req.getClan().getTag(), req);
|
||||
req.vote(requester.getName(), VoteResult.ACCEPT);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -80,25 +91,36 @@ public final class RequestManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void addDisbandRequest(ClanPlayer requester, Clan clan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("asking.for.the.deletion"), Helper.capitalize(requester.getName()));
|
||||
if (requests.containsKey(clan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("asking.for.the.deletion"), requester.getName());
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(clan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.DISBAND, acceptors, requester, clan.getTag(), clan, msg);
|
||||
requests.put(clan.getTag(), req);
|
||||
requests.put(req.getTarget(), req);
|
||||
req.vote(requester.getName(), VoteResult.ACCEPT);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a member invite request
|
||||
*
|
||||
* @param requester
|
||||
* @param invitedName
|
||||
* @param clan
|
||||
* @param requester the requester
|
||||
* @param invitedName the invited Player
|
||||
* @param clan the Clan
|
||||
*/
|
||||
public void addInviteRequest(ClanPlayer requester, String invitedName, Clan clan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("inviting.you.to.join"), Helper.capitalize(requester.getName()), clan.getName());
|
||||
if (requests.containsKey(invitedName.toLowerCase())) {
|
||||
return;
|
||||
}
|
||||
Player player = Bukkit.getPlayer(invitedName);
|
||||
if (player == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String msg = lang("inviting.you.to.join", player, requester.getName(), clan.getName());
|
||||
Request req = new Request(plugin, ClanRequest.INVITE, null, requester, invitedName, clan, msg);
|
||||
requests.put(invitedName.toLowerCase(), req);
|
||||
ask(req);
|
||||
@@ -112,13 +134,16 @@ public final class RequestManager {
|
||||
* @param requestingClan
|
||||
*/
|
||||
public void addWarStartRequest(ClanPlayer requester, Clan warClan, Clan requestingClan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("proposing.war"), Helper.capitalize(requestingClan.getName()), Helper.stripColors(warClan.getColorTag()));
|
||||
if (requests.containsKey(warClan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("proposing.war"), requestingClan.getName(), Helper.stripColors(warClan.getColorTag()));
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(warClan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.START_WAR, acceptors, requester, warClan.getTag(), requestingClan, msg);
|
||||
requests.put(warClan.getTag(), req);
|
||||
requests.put(req.getTarget(), req);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -130,13 +155,16 @@ public final class RequestManager {
|
||||
* @param requestingClan
|
||||
*/
|
||||
public void addWarEndRequest(ClanPlayer requester, Clan warClan, Clan requestingClan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("proposing.to.end.the.war"), Helper.capitalize(requestingClan.getName()), Helper.stripColors(warClan.getColorTag()));
|
||||
if (requests.containsKey(warClan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("proposing.to.end.the.war"), requestingClan.getName(), Helper.stripColors(warClan.getColorTag()));
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(warClan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.END_WAR, acceptors, requester, warClan.getTag(), requestingClan, msg);
|
||||
requests.put(warClan.getTag(), req);
|
||||
requests.put(req.getTarget(), req);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -148,13 +176,16 @@ public final class RequestManager {
|
||||
* @param requestingClan
|
||||
*/
|
||||
public void addAllyRequest(ClanPlayer requester, Clan allyClan, Clan requestingClan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("proposing.an.alliance"), Helper.capitalize(requestingClan.getName()), Helper.stripColors(allyClan.getColorTag()));
|
||||
if (requests.containsKey(allyClan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("proposing.an.alliance"), requestingClan.getName(), Helper.stripColors(allyClan.getColorTag()));
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(allyClan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.CREATE_ALLY, acceptors, requester, allyClan.getTag(), requestingClan, msg);
|
||||
requests.put(allyClan.getTag(), req);
|
||||
requests.put(req.getTarget(), req);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -166,13 +197,16 @@ public final class RequestManager {
|
||||
* @param requestingClan
|
||||
*/
|
||||
public void addRivalryBreakRequest(ClanPlayer requester, Clan rivalClan, Clan requestingClan) {
|
||||
String msg = MessageFormat.format(plugin.getLang("proposing.to.end.the.rivalry"), Helper.capitalize(requestingClan.getName()), Helper.stripColors(rivalClan.getColorTag()));
|
||||
if (requests.containsKey(rivalClan.getTag())) {
|
||||
return;
|
||||
}
|
||||
String msg = MessageFormat.format(lang("proposing.to.end.the.rivalry"), requestingClan.getName(), Helper.stripColors(rivalClan.getColorTag()));
|
||||
|
||||
List<ClanPlayer> acceptors = Helper.stripOffLinePlayers(rivalClan.getLeaders());
|
||||
acceptors.remove(requester);
|
||||
|
||||
Request req = new Request(plugin, ClanRequest.BREAK_RIVALRY, acceptors, requester, rivalClan.getTag(), requestingClan, msg);
|
||||
requests.put(rivalClan.getTag(), req);
|
||||
requests.put(req.getTarget(), req);
|
||||
ask(req);
|
||||
}
|
||||
|
||||
@@ -232,187 +266,197 @@ public final class RequestManager {
|
||||
return;
|
||||
}
|
||||
|
||||
clan.addBb(ChatColor.AQUA + MessageFormat.format(plugin.getLang("joined.the.clan"), Helper.capitalize(invited)));
|
||||
plugin.getClanManager().serverAnnounce(MessageFormat.format(plugin.getLang("has.joined"), Helper.capitalize(invited), clan.getName()));
|
||||
clan.addBb(ChatColor.AQUA + lang("joined.the.clan", invited));
|
||||
plugin.getClanManager().serverAnnounce(lang("has.joined", invited, clan.getName()));
|
||||
clan.addPlayerToClan(cp);
|
||||
} else {
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(plugin.getLang("membership.invitation"), Helper.capitalize(invited)));
|
||||
clan.leaderAnnounce(ChatColor.RED + lang("membership.invitation", invited));
|
||||
}
|
||||
|
||||
requests.remove(req.getTarget().toLowerCase());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check to see if votes are complete and process the result
|
||||
*
|
||||
* @param req
|
||||
*/
|
||||
public void processResults(Request req) {
|
||||
if (req.getType().equals(ClanRequest.START_WAR)) {
|
||||
Clan clan = req.getClan();
|
||||
Clan war = plugin.getClanManager().getClan(req.getTarget());
|
||||
ClanPlayer cp = req.getRequester();
|
||||
|
||||
if (war != null && clan != null) {
|
||||
List<String> accepts = req.getAccepts();
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
if (!accepts.isEmpty()) {
|
||||
clan.addWarringClan(war);
|
||||
war.addWarringClan(clan);
|
||||
|
||||
war.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("you.are.at.war"), Helper.capitalize(war.getName()), clan.getColorTag()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("you.are.at.war"), Helper.capitalize(clan.getName()), war.getColorTag()));
|
||||
} else {
|
||||
war.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("denied.war.req"), Helper.capitalize(denies.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("end.war.denied"), Helper.capitalize(war.getName())));
|
||||
}
|
||||
}
|
||||
} else if (req.getType().equals(ClanRequest.END_WAR)) {
|
||||
Clan clan = req.getClan();
|
||||
Clan war = plugin.getClanManager().getClan(req.getTarget());
|
||||
ClanPlayer cp = req.getRequester();
|
||||
|
||||
if (war != null && clan != null) {
|
||||
List<String> accepts = req.getAccepts();
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
if (!accepts.isEmpty()) {
|
||||
clan.removeWarringClan(war);
|
||||
war.removeWarringClan(clan);
|
||||
|
||||
war.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("you.are.no.longer.at.war"), Helper.capitalize(accepts.get(0)), clan.getColorTag()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("you.are.no.longer.at.war"), Helper.capitalize(clan.getName()), Helper.capitalize(war.getColorTag())));
|
||||
} else {
|
||||
war.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("denied.war.end"), Helper.capitalize(denies.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("end.war.denied"), Helper.capitalize(war.getName())));
|
||||
}
|
||||
}
|
||||
} else if (req.getType().equals(ClanRequest.CREATE_ALLY)) {
|
||||
Clan clan = req.getClan();
|
||||
Clan ally = plugin.getClanManager().getClan(req.getTarget());
|
||||
ClanPlayer cp = req.getRequester();
|
||||
|
||||
if (ally != null && clan != null) {
|
||||
List<String> accepts = req.getAccepts();
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
if (!accepts.isEmpty()) {
|
||||
clan.addAlly(ally);
|
||||
|
||||
ally.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("accepted.an.alliance"), Helper.capitalize(accepts.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("created.an.alliance"), Helper.capitalize(cp.getName()), Helper.capitalize(ally.getName())));
|
||||
} else {
|
||||
ally.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("denied.an.alliance"), Helper.capitalize(denies.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("the.alliance.was.denied"), Helper.capitalize(ally.getName())));
|
||||
}
|
||||
}
|
||||
} else if (req.getType().equals(ClanRequest.BREAK_RIVALRY)) {
|
||||
Clan clan = req.getClan();
|
||||
Clan rival = plugin.getClanManager().getClan(req.getTarget());
|
||||
ClanPlayer cp = req.getRequester();
|
||||
|
||||
if (rival != null && clan != null) {
|
||||
List<String> accepts = req.getAccepts();
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
if (!accepts.isEmpty()) {
|
||||
clan.removeRival(rival);
|
||||
rival.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("broken.the.rivalry"), Helper.capitalize(accepts.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("broken.the.rivalry.with"), Helper.capitalize(cp.getName()), Helper.capitalize(rival.getName())));
|
||||
} else {
|
||||
rival.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("denied.to.make.peace"), Helper.capitalize(denies.get(0)), clan.getName()));
|
||||
clan.addBb(cp.getName(), ChatColor.AQUA + MessageFormat.format(plugin.getLang("peace.agreement.denied"), Helper.capitalize(rival.getName())));
|
||||
}
|
||||
}
|
||||
} else if (req.votingFinished()) {
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
if (req.getType().equals(ClanRequest.DEMOTE)) {
|
||||
Clan clan = req.getClan();
|
||||
String demoted = req.getTarget();
|
||||
UUID demotedUniqueId = UUIDMigration.getForcedPlayerUUID(demoted);
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID() && demotedUniqueId != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (denies.isEmpty()) {
|
||||
clan.addBb(plugin.getLang("leaders"), ChatColor.AQUA + MessageFormat.format(plugin.getLang("demoted.back.to.member"), Helper.capitalize(demoted)));
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.demote(demotedUniqueId);
|
||||
} else {
|
||||
clan.demote(demoted);
|
||||
}
|
||||
} else {
|
||||
String deniers = Helper.capitalize(Helper.toMessage(Helper.toArray(denies), ", "));
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(plugin.getLang("denied.demotion"), deniers, demoted));
|
||||
}
|
||||
} else if (req.getType().equals(ClanRequest.PROMOTE)) {
|
||||
Clan clan = req.getClan();
|
||||
String promoted = req.getTarget();
|
||||
UUID promotedUniqueId = UUIDMigration.getForcedPlayerUUID(promoted);
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID() && promotedUniqueId == null) {
|
||||
return;
|
||||
}
|
||||
if (denies.isEmpty()) {
|
||||
clan.addBb(plugin.getLang("leaders"), ChatColor.AQUA + MessageFormat.format(plugin.getLang("promoted.to.leader"), Helper.capitalize(promoted)));
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
clan.promote(promotedUniqueId);
|
||||
} else {
|
||||
clan.promote(promoted);
|
||||
}
|
||||
} else {
|
||||
String deniers = Helper.capitalize(Helper.toMessage(Helper.toArray(denies), ", "));
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(plugin.getLang("denied.the.promotion"), deniers, promoted));
|
||||
}
|
||||
} else if (req.getType().equals(ClanRequest.DISBAND)) {
|
||||
Clan clan = req.getClan();
|
||||
|
||||
if (denies.isEmpty()) {
|
||||
clan.addBb(plugin.getLang("leaders"), ChatColor.AQUA + MessageFormat.format(plugin.getLang("has.been.disbanded"), clan.getName()));
|
||||
clan.disband();
|
||||
} else {
|
||||
String deniers = Helper.capitalize(Helper.toMessage(Helper.toArray(denies), ", "));
|
||||
clan.leaderAnnounce(ChatColor.RED + MessageFormat.format(plugin.getLang("clan.deletion"), deniers));
|
||||
}
|
||||
}
|
||||
|
||||
req.cleanVotes();
|
||||
}
|
||||
|
||||
requests.remove(req.getTarget());
|
||||
Clan requesterClan = req.getClan();
|
||||
ClanPlayer requesterCp = req.getRequester();
|
||||
|
||||
String target = req.getTarget();
|
||||
//may be null
|
||||
Clan targetClan = plugin.getClanManager().getClan(target);
|
||||
//may be null
|
||||
UUID targetPlayer = UUIDMigration.getForcedPlayerUUID(target);
|
||||
|
||||
List<String> accepts = req.getAccepts();
|
||||
List<String> denies = req.getDenies();
|
||||
|
||||
switch (req.getType()) {
|
||||
case START_WAR:
|
||||
processStartWar(requesterClan, requesterCp, targetClan, accepts, denies);
|
||||
break;
|
||||
case END_WAR:
|
||||
processEndWar(requesterClan, requesterCp, targetClan, accepts, denies);
|
||||
break;
|
||||
case CREATE_ALLY:
|
||||
processCreateAlly(requesterClan, requesterCp, targetClan, accepts, denies);
|
||||
break;
|
||||
case BREAK_RIVALRY:
|
||||
processBreakRivalry(requesterClan, requesterCp, targetClan, accepts, denies);
|
||||
break;
|
||||
case DEMOTE: case PROMOTE:
|
||||
if (!req.votingFinished() || targetPlayer == null) {
|
||||
return;
|
||||
}
|
||||
target = requesterClan.getTag();
|
||||
|
||||
if (req.getType() == ClanRequest.DEMOTE) {
|
||||
processDemote(req, requesterClan, targetPlayer, denies);
|
||||
}
|
||||
if (req.getType() == ClanRequest.PROMOTE) {
|
||||
processPromote(req, requesterClan, targetPlayer, denies);
|
||||
}
|
||||
break;
|
||||
case DISBAND:
|
||||
if (!req.votingFinished()) {
|
||||
return;
|
||||
}
|
||||
processDisband(requesterClan, denies);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
requests.remove(target);
|
||||
SimpleClans.getInstance().getServer().getPluginManager().callEvent(new RequestFinishedEvent(req));
|
||||
req.cleanVotes();
|
||||
}
|
||||
|
||||
private void processDisband(Clan requesterClan, List<String> denies) {
|
||||
if (denies.isEmpty()) {
|
||||
requesterClan.addBb(lang("leaders"), ChatColor.AQUA + lang("has.been.disbanded", requesterClan.getName()));
|
||||
requesterClan.disband();
|
||||
} else {
|
||||
String deniers = Helper.toMessage(Helper.toArray(denies), ", ");
|
||||
requesterClan.leaderAnnounce(ChatColor.RED + lang("clan.deletion", deniers));
|
||||
}
|
||||
}
|
||||
|
||||
private void processPromote(Request req, Clan requesterClan, UUID targetPlayer, List<String> denies) {
|
||||
String promotedName = req.getTarget();
|
||||
if (denies.isEmpty()) {
|
||||
requesterClan.addBb(lang("leaders"), ChatColor.AQUA + lang("promoted.to.leader", promotedName));
|
||||
requesterClan.promote(targetPlayer);
|
||||
} else {
|
||||
String deniers = Helper.toMessage(Helper.toArray(denies), ", ");
|
||||
requesterClan.leaderAnnounce(ChatColor.RED + lang("denied.the.promotion", deniers, promotedName));
|
||||
}
|
||||
}
|
||||
|
||||
private void processDemote(Request req, Clan requesterClan, UUID targetPlayer, List<String> denies) {
|
||||
String demotedName = req.getTarget();
|
||||
|
||||
if (denies.isEmpty()) {
|
||||
requesterClan.addBb(lang("leaders"), ChatColor.AQUA
|
||||
+ lang("demoted.back.to.member", demotedName));
|
||||
requesterClan.demote(targetPlayer);
|
||||
} else {
|
||||
String deniers = Helper.toMessage(Helper.toArray(denies), ", ");
|
||||
requesterClan.leaderAnnounce(
|
||||
ChatColor.RED + lang("denied.demotion", deniers, demotedName));
|
||||
}
|
||||
}
|
||||
|
||||
private void processBreakRivalry(Clan requesterClan, ClanPlayer requesterCp, Clan targetClan, List<String> accepts,
|
||||
List<String> denies) {
|
||||
if (targetClan != null && requesterClan != null) {
|
||||
if (!accepts.isEmpty()) {
|
||||
requesterClan.removeRival(targetClan);
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("broken.the.rivalry", accepts.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("broken.the.rivalry.with", requesterCp.getName(), targetClan.getName()));
|
||||
} else {
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("denied.to.make.peace", denies.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("peace.agreement.denied", targetClan.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processCreateAlly(Clan requesterClan, ClanPlayer requesterCp, Clan targetClan, List<String> accepts,
|
||||
List<String> denies) {
|
||||
if (targetClan != null && requesterClan != null) {
|
||||
if (!accepts.isEmpty()) {
|
||||
requesterClan.addAlly(targetClan);
|
||||
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("accepted.an.alliance", accepts.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("created.an.alliance", requesterCp.getName(), targetClan.getName()));
|
||||
} else {
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("denied.an.alliance", denies.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("the.alliance.was.denied", targetClan.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processEndWar(Clan requesterClan, ClanPlayer requesterCp, Clan targetClan, List<String> accepts,
|
||||
List<String> denies) {
|
||||
if (requesterClan != null && targetClan != null) {
|
||||
if (!accepts.isEmpty()) {
|
||||
requesterClan.removeWarringClan(targetClan);
|
||||
targetClan.removeWarringClan(requesterClan);
|
||||
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("you.are.no.longer.at.war", accepts.get(0), requesterClan.getColorTag()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("you.are.no.longer.at.war", requesterClan.getName(), targetClan.getColorTag()));
|
||||
} else {
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("denied.war.end", denies.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("end.war.denied", targetClan.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processStartWar(Clan requesterClan, ClanPlayer requesterCp, Clan targetClan, List<String> accepts,
|
||||
List<String> denies) {
|
||||
if (requesterClan != null && targetClan != null) {
|
||||
if (!accepts.isEmpty()) {
|
||||
requesterClan.addWarringClan(targetClan);
|
||||
targetClan.addWarringClan(requesterClan);
|
||||
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("you.are.at.war", targetClan.getName(), requesterClan.getColorTag()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("you.are.at.war", requesterClan.getName(), targetClan.getColorTag()));
|
||||
} else {
|
||||
targetClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("denied.war.req", denies.get(0), requesterClan.getName()));
|
||||
requesterClan.addBb(requesterCp.getName(), ChatColor.AQUA + lang("end.war.denied", targetClan.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* End a pending request prematurely
|
||||
*
|
||||
* @param playerName
|
||||
* @return
|
||||
* @param playerName the Player signing off
|
||||
*/
|
||||
public boolean endPendingRequest(String playerName) {
|
||||
for (Request req : new LinkedList<Request>(requests.values())) {
|
||||
public void endPendingRequest(String playerName) {
|
||||
for (Request req : new LinkedList<>(requests.values())) {
|
||||
for (ClanPlayer cp : req.getAcceptors()) {
|
||||
if (cp.getName().equalsIgnoreCase(playerName)) {
|
||||
req.getClan().leaderAnnounce(MessageFormat.format(plugin.getLang("signed.off.request.cancelled"), ChatColor.RED + Helper.capitalize(playerName), req.getType()));
|
||||
req.getClan().leaderAnnounce(lang("signed.off.request.cancelled", ChatColor.RED + playerName, req.getType()));
|
||||
requests.remove(req.getClan().getTag());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
||||
@@ -425,26 +469,26 @@ public final class RequestManager {
|
||||
}
|
||||
|
||||
ask(req);
|
||||
req.incrementAskCount();
|
||||
}
|
||||
}
|
||||
}, 0, plugin.getSettingsManager().getRequestFreqencySecs() * 20L);
|
||||
req.incrementAskCount();
|
||||
}
|
||||
}}.runTaskTimerAsynchronously(plugin, 0, plugin.getSettingsManager().getRequestFreqencySecs() * 20L);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asks a request to players for votes
|
||||
*
|
||||
* @param req
|
||||
* @param req the Request
|
||||
*/
|
||||
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());
|
||||
|
||||
if (req.getType().equals(ClanRequest.INVITE)) {
|
||||
Player player = Helper.getPlayer(req.getTarget());
|
||||
|
||||
if (player != null) {
|
||||
String options = lang("accept.or.deny", player, ChatBlock.makeEmpty(Helper.stripColors(tag)) + " " + ChatColor.DARK_GREEN + "/" + plugin.getSettingsManager().getCommandAccept() + plugin.getSettingsManager().getPageHeadingsColor(), ChatColor.DARK_RED + "/" + plugin.getSettingsManager().getCommandDeny());
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, message);
|
||||
ChatBlock.sendMessage(player, options);
|
||||
@@ -456,6 +500,8 @@ public final class RequestManager {
|
||||
Player player = cp.toPlayer();
|
||||
|
||||
if (player != null) {
|
||||
String options = lang("accept.or.deny", player, ChatBlock.makeEmpty(Helper.stripColors(tag)) + " " + ChatColor.DARK_GREEN + "/" + plugin.getSettingsManager().getCommandAccept() + plugin.getSettingsManager().getPageHeadingsColor(), ChatColor.DARK_RED + "/" + plugin.getSettingsManager().getCommandDeny());
|
||||
|
||||
ChatBlock.sendBlank(player);
|
||||
ChatBlock.sendMessage(player, message);
|
||||
ChatBlock.sendMessage(player, options);
|
||||
@@ -465,6 +511,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);
|
||||
}
|
||||
}
|
||||
+453
-83
@@ -1,21 +1,27 @@
|
||||
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.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.RankingNumberResolver.RankingType;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author phaed
|
||||
*/
|
||||
public final class SettingsManager {
|
||||
private boolean onlineMode;
|
||||
private boolean enableGUI;
|
||||
private boolean disableMessages;
|
||||
private String clanChatRankColor;
|
||||
private boolean tagBasedClanChat;
|
||||
@@ -23,18 +29,30 @@ public final class SettingsManager {
|
||||
private boolean dropOnHome;
|
||||
private boolean keepOnHome;
|
||||
private boolean debugging;
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
private SimpleClans plugin;
|
||||
private final SimpleClans plugin;
|
||||
private boolean mChatIntegration;
|
||||
private boolean pvpOnlywhileInWar;
|
||||
private boolean useColorCodeFromPrefix;
|
||||
private boolean confirmationForPromote;
|
||||
private boolean confirmationForDemote;
|
||||
private double percentageOnlineToDemote;
|
||||
private boolean globalff;
|
||||
private boolean allowResetKdr;
|
||||
private boolean showUnverifiedOnList;
|
||||
private boolean requireVerification;
|
||||
private List<Integer> itemsList;
|
||||
private boolean rejoinCooldownEnabled;
|
||||
private boolean acceptOtherAlphabetsLettersOnTag;
|
||||
private int minToVerify;
|
||||
private int rejoinCooldown;
|
||||
private String listDefault;
|
||||
private String listSize;
|
||||
private String listKdr;
|
||||
private String listName;
|
||||
private String listFounded;
|
||||
private String listActive;
|
||||
private String listAsc;
|
||||
private String listDesc;
|
||||
private List<Material> itemsList = new ArrayList<Material>();
|
||||
private List<String> blacklistedWorlds;
|
||||
private List<String> bannedPlayers;
|
||||
private List<String> disallowedWords;
|
||||
@@ -50,6 +68,11 @@ public final class SettingsManager {
|
||||
private boolean eIssuerPaysRegroup;
|
||||
private boolean ePurchaseHomeTeleportSet;
|
||||
private boolean ePurchaseResetKdr;
|
||||
private boolean eMemberFee;
|
||||
private boolean ePurchaseMemberFeeSet;
|
||||
private boolean eClanUpkeepEnabled;
|
||||
private boolean eMultiplyUpkeepBySize;
|
||||
private boolean eChargeUpkeepOnlyIfMemberFeeEnabled;
|
||||
private double eCreationPrice;
|
||||
private double eVerificationPrice;
|
||||
private double eInvitePrice;
|
||||
@@ -57,6 +80,9 @@ public final class SettingsManager {
|
||||
private double eHomeRegroupPrice;
|
||||
private double eHomeTeleportPriceSet;
|
||||
private double eResetKdr;
|
||||
private double eMaxMemberFee;
|
||||
private double eMemberFeeSetPrice;
|
||||
private double eClanUpkeep;
|
||||
private String serverName;
|
||||
private boolean chatTags;
|
||||
private int purgeClan;
|
||||
@@ -73,6 +99,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;
|
||||
@@ -85,7 +112,10 @@ public final class SettingsManager {
|
||||
private int clanMinSizeToAlly;
|
||||
private int clanMinSizeToRival;
|
||||
private int clanMinLength;
|
||||
private int clanMaxAlliances;
|
||||
private int clanMaxLength;
|
||||
private int clanMaxDescriptionLength;
|
||||
private int clanMinDescriptionLength;
|
||||
private String pageClanNameColor;
|
||||
private int tagMinLength;
|
||||
private int tagMaxLength;
|
||||
@@ -102,6 +132,7 @@ public final class SettingsManager {
|
||||
private String allyChatFormat;
|
||||
private String allyChatRank;
|
||||
private String allyChatLeaderColor;
|
||||
private String allyChatTrustedColor;
|
||||
private String allyChatMemberColor;
|
||||
private String allyChatMessageColor;
|
||||
private String allyChatNameColor;
|
||||
@@ -115,6 +146,7 @@ public final class SettingsManager {
|
||||
private String clanChatFormat;
|
||||
private String clanChatRank;
|
||||
private String clanChatLeaderColor;
|
||||
private String clanChatTrustedColor;
|
||||
private String clanChatMemberColor;
|
||||
private String clanChatAnnouncementColor;
|
||||
private String clanChatMessageColor;
|
||||
@@ -124,6 +156,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;
|
||||
@@ -135,14 +173,13 @@ public final class SettingsManager {
|
||||
private String username;
|
||||
private String password;
|
||||
private boolean safeCivilians;
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
private File main;
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
private FileConfiguration config;
|
||||
private final File main;
|
||||
private final FileConfiguration config;
|
||||
private boolean compatMode;
|
||||
private boolean homebaseSetOnce;
|
||||
private int waitSecs;
|
||||
private boolean enableAutoGroups;
|
||||
private boolean denySameIPKills;
|
||||
private boolean moneyperkill;
|
||||
private double KDRMultipliesPerKill;
|
||||
private boolean teleportBlocks;
|
||||
@@ -154,6 +191,15 @@ public final class SettingsManager {
|
||||
private boolean forceCommandPriority;
|
||||
private int maxAsksPerRequest;
|
||||
private int maxMembers;
|
||||
private boolean maxKillsPerVictimEnabled;
|
||||
private int maxKillsPerVictim;
|
||||
private boolean delayBetweenKillsEnabled;
|
||||
private int delayBetweenKills;
|
||||
private String language;
|
||||
private boolean languagePerPlayer;
|
||||
private boolean savePeriodically;
|
||||
private int saveInterval;
|
||||
private String rankingType;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -184,12 +230,19 @@ public final class SettingsManager {
|
||||
getConfig().options().copyDefaults(true);
|
||||
}
|
||||
|
||||
onlineMode = getConfig().getBoolean("settings.online-mode");
|
||||
enableGUI = getConfig().getBoolean("settings.enable-gui");
|
||||
disableMessages = getConfig().getBoolean("settings.disable-messages");
|
||||
teleportOnSpawn = getConfig().getBoolean("settings.teleport-home-on-spawn");
|
||||
dropOnHome = getConfig().getBoolean("settings.drop-items-on-clan-home");
|
||||
keepOnHome = getConfig().getBoolean("settings.keep-items-on-clan-home");
|
||||
itemsList = getConfig().getIntegerList("settings.item-list");
|
||||
for (String material : getConfig().getStringList("settings.item-list")) {
|
||||
Material type = Material.getMaterial(material);
|
||||
if (type != null) {
|
||||
itemsList.add(type);
|
||||
} else {
|
||||
plugin.getLogger().warning("Error with Material: " + material);
|
||||
}
|
||||
}
|
||||
debugging = getConfig().getBoolean("settings.show-debug-info");
|
||||
mChatIntegration = getConfig().getBoolean("settings.mchat-integration");
|
||||
pvpOnlywhileInWar = getConfig().getBoolean("settings.pvp-only-while-at-war");
|
||||
@@ -204,6 +257,19 @@ public final class SettingsManager {
|
||||
unRivableClans = getConfig().getStringList("settings.unrivable-clans");
|
||||
showUnverifiedOnList = getConfig().getBoolean("settings.show-unverified-on-list");
|
||||
requireVerification = getConfig().getBoolean("settings.new-clan-verification-required");
|
||||
rejoinCooldown = getConfig().getInt("settings.rejoin-cooldown");
|
||||
rejoinCooldownEnabled = getConfig().getBoolean("settings.rejoin-cooldown-enabled");
|
||||
acceptOtherAlphabetsLettersOnTag = getConfig().getBoolean("settings.accept-other-alphabets-letters-on-tag");
|
||||
minToVerify = getConfig().getInt("settings.min-to-verify", 1);
|
||||
rankingType = getConfig().getString("settings.ranking-type", "DENSE");
|
||||
listActive = getConfig().getString("list.active", "active");
|
||||
listKdr = getConfig().getString("list.kdr", "kdr");
|
||||
listDefault = getConfig().getString("list.default", listKdr);
|
||||
listSize = getConfig().getString("list.size", "size");
|
||||
listName = getConfig().getString("list.name", "name");
|
||||
listFounded = getConfig().getString("list.founded", "founded");
|
||||
listAsc = getConfig().getString("list.asc", "asc");
|
||||
listDesc = getConfig().getString("list.desc", "desc");
|
||||
serverName = getConfig().getString("settings.server-name");
|
||||
chatTags = getConfig().getBoolean("settings.display-chat-tags");
|
||||
rivalLimitPercent = getConfig().getInt("settings.rival-limit-percent");
|
||||
@@ -214,6 +280,8 @@ public final class SettingsManager {
|
||||
ePurchaseHomeRegroup = getConfig().getBoolean("economy.purchase-home-regroup");
|
||||
ePurchaseHomeTeleportSet = getConfig().getBoolean("economy.purchase-home-teleport-set");
|
||||
ePurchaseResetKdr = getConfig().getBoolean("economy.purchase-reset-kdr");
|
||||
ePurchaseMemberFeeSet = getConfig().getBoolean("economy.purchase-member-fee-set");
|
||||
eMemberFeeSetPrice = getConfig().getDouble("economy.member-fee-set-price");
|
||||
eResetKdr = getConfig().getDouble("economy.reset-kdr-price");
|
||||
eCreationPrice = getConfig().getDouble("economy.creation-price");
|
||||
eVerificationPrice = getConfig().getDouble("economy.verification-price");
|
||||
@@ -223,6 +291,12 @@ public final class SettingsManager {
|
||||
eUniqueTaxOnRegroup = getConfig().getBoolean("economy.unique-tax-on-regroup");
|
||||
eIssuerPaysRegroup = getConfig().getBoolean("economy.issuer-pays-regroup");
|
||||
eHomeTeleportPriceSet = getConfig().getDouble("economy.home-teleport-set-price");
|
||||
eMaxMemberFee = getConfig().getDouble("economy.max-member-fee");
|
||||
eClanUpkeep = getConfig().getDouble("economy.upkeep");
|
||||
eClanUpkeepEnabled = getConfig().getBoolean("economy.upkeep-enabled");
|
||||
eChargeUpkeepOnlyIfMemberFeeEnabled = getConfig().getBoolean("economy.charge-upkeep-only-if-member-fee-enabled");
|
||||
eMultiplyUpkeepBySize = getConfig().getBoolean("economy.multiply-upkeep-by-clan-size");
|
||||
eMemberFee = getConfig().getBoolean("economy.member-fee-enabled");
|
||||
purgeClan = getConfig().getInt("purge.inactive-clan-days");
|
||||
purgeUnverified = getConfig().getInt("purge.unverified-clan-days");
|
||||
purgePlayers = getConfig().getInt("purge.inactive-player-data-days");
|
||||
@@ -239,6 +313,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");
|
||||
@@ -253,11 +328,15 @@ public final class SettingsManager {
|
||||
waitSecs = getConfig().getInt("clan.homebase-teleport-wait-secs");
|
||||
confirmationForPromote = getConfig().getBoolean("clan.confirmation-for-demote");
|
||||
confirmationForDemote = getConfig().getBoolean("clan.confirmation-for-promote");
|
||||
percentageOnlineToDemote = getConfig().getDouble("clan.percentage-online-to-demote");
|
||||
clanTrustByDefault = getConfig().getBoolean("clan.trust-members-by-default");
|
||||
clanMinSizeToAlly = getConfig().getInt("clan.min-size-to-set-ally");
|
||||
clanMinSizeToRival = getConfig().getInt("clan.min-size-to-set-rival");
|
||||
clanMinLength = getConfig().getInt("clan.min-length");
|
||||
clanMaxAlliances = getConfig().getInt("clan.max-alliances");
|
||||
clanMaxLength = getConfig().getInt("clan.max-length");
|
||||
clanMaxDescriptionLength = getConfig().getInt("clan.max-description-length");
|
||||
clanMinDescriptionLength = getConfig().getInt("clan.min-description-length");
|
||||
clanFFOnByDefault = getConfig().getBoolean("clan.ff-on-by-default");
|
||||
tagMinLength = getConfig().getInt("tag.min-length");
|
||||
tagMaxLength = getConfig().getInt("tag.max-length");
|
||||
@@ -273,6 +352,7 @@ public final class SettingsManager {
|
||||
allyChatFormat = getConfig().getString("allychat.format");
|
||||
allyChatRank = getConfig().getString("allychat.rank");
|
||||
allyChatLeaderColor = getConfig().getString("allychat.leader-color");
|
||||
allyChatTrustedColor = getConfig().getString("allychat.trusted-color");
|
||||
allyChatMemberColor = getConfig().getString("allychat.member-color");
|
||||
allyChatMessageColor = getConfig().getString("allychat.message-color");
|
||||
allyChatTagColor = getConfig().getString("allychat.tag-color");
|
||||
@@ -286,6 +366,7 @@ public final class SettingsManager {
|
||||
clanChatFormat = getConfig().getString("clanchat.format");
|
||||
clanChatRank = getConfig().getString("clanchat.rank");
|
||||
clanChatLeaderColor = getConfig().getString("clanchat.leader-color");
|
||||
clanChatTrustedColor = getConfig().getString("clanchat.trusted-color");
|
||||
clanChatMemberColor = getConfig().getString("clanchat.member-color");
|
||||
tagBasedClanChat = getConfig().getBoolean("clanchat.tag-based-clan-chat");
|
||||
clanChatAnnouncementColor = getConfig().getString("clanchat.announcement-color");
|
||||
@@ -297,9 +378,16 @@ 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");
|
||||
denySameIPKills = getConfig().getBoolean("kill-weights.deny-same-ip-kills");
|
||||
useMysql = getConfig().getBoolean("mysql.enable");
|
||||
host = getConfig().getString("mysql.host");
|
||||
port = getConfig().getInt("mysql.port");
|
||||
@@ -311,13 +399,21 @@ public final class SettingsManager {
|
||||
moneyperkill = getConfig().getBoolean("economy.money-per-kill");
|
||||
KDRMultipliesPerKill = getConfig().getDouble("economy.money-per-kill-kdr-multipier");
|
||||
teleportBlocks = getConfig().getBoolean("settings.teleport-blocks");
|
||||
language = getConfig().getString("settings.language", "");
|
||||
languagePerPlayer = getConfig().getBoolean("settings.user-language-selector", true);
|
||||
AutoGroupGroupName = getConfig().getBoolean("permissions.auto-group-groupname");
|
||||
tamableMobsSharing = getConfig().getBoolean("settings.tameable-mobs-sharing");
|
||||
allowReGroupCommand = getConfig().getBoolean("settings.allow-regroup-command");
|
||||
savePeriodically = getConfig().getBoolean("performance.save-periodically");
|
||||
saveInterval = getConfig().getInt("performance.save-interval");
|
||||
useThreads = getConfig().getBoolean("performance.use-threads");
|
||||
useBungeeCord = getConfig().getBoolean("performance.use-bungeecord");
|
||||
maxMembers = getConfig().getInt("clan.max-members");
|
||||
|
||||
maxKillsPerVictim = getConfig().getInt("kdr-grinding-prevention.max-kills-per-victim");
|
||||
maxKillsPerVictimEnabled = getConfig().getBoolean("kdr-grinding-prevention.enable-max-kills");
|
||||
delayBetweenKills = getConfig().getInt("kdr-grinding-prevention.delay-between-kills");
|
||||
delayBetweenKillsEnabled = getConfig().getBoolean("kdr-grinding-prevention.enable-kill-delay");
|
||||
|
||||
// migrate from old way of adding ports
|
||||
if (database.contains(":")) {
|
||||
String[] strings = database.split(":");
|
||||
@@ -336,6 +432,135 @@ public final class SettingsManager {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEnableGUI() {
|
||||
return enableGUI;
|
||||
}
|
||||
|
||||
public void setEnableGUI(boolean enableGUI) {
|
||||
this.enableGUI = enableGUI;
|
||||
getConfig().set("settings.enable-gui", enableGUI);
|
||||
save();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return if the tag can contain letters from other alphabets
|
||||
*/
|
||||
public boolean isAcceptOtherAlphabetsLettersOnTag() {
|
||||
return acceptOtherAlphabetsLettersOnTag;
|
||||
}
|
||||
|
||||
public Locale getLanguage() {
|
||||
String[] split = language.split("_");
|
||||
|
||||
if (split.length == 2) {
|
||||
return new Locale(split[0], split[1]);
|
||||
}
|
||||
|
||||
return new Locale(language);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public RankingType getRankingType() {
|
||||
try {
|
||||
return RankingType.valueOf(rankingType);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return RankingType.DENSE;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isLanguagePerPlayer() {
|
||||
return languagePerPlayer;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public int getMinToVerify() {
|
||||
return minToVerify;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the delay between kills
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getDelayBetweenKills() {
|
||||
return delayBetweenKills;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the delay between kills is enabled
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isDelayBetweenKills() {
|
||||
return delayBetweenKillsEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the max number of kills per victim
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getMaxKillsPerVictim() {
|
||||
return maxKillsPerVictim;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if there is a max number of kills per victim
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isMaxKillsPerVictim() {
|
||||
return maxKillsPerVictimEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether an item is in the list
|
||||
@@ -343,7 +568,7 @@ public final class SettingsManager {
|
||||
* @param typeId the type
|
||||
* @return whether the world is blacklisted
|
||||
*/
|
||||
public boolean isItemInList(int typeId) {
|
||||
public boolean isItemInList(Material typeId) {
|
||||
return itemsList.contains(typeId);
|
||||
}
|
||||
|
||||
@@ -388,6 +613,62 @@ public final class SettingsManager {
|
||||
return word.equalsIgnoreCase("clan") || word.equalsIgnoreCase(commandMore) || word.equalsIgnoreCase(commandDeny) || word.equalsIgnoreCase(commandAccept);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the upkeep is to be charged only from clans with the member fee enabled
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isChargeUpkeepOnlyIfMemberFeeEnabled() {
|
||||
return eChargeUpkeepOnlyIfMemberFeeEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the upkeep should be multiplied by the clan size
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isMultiplyUpkeepBySize() {
|
||||
return eMultiplyUpkeepBySize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the upkeep is enabled
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public boolean isClanUpkeep() {
|
||||
return eClanUpkeepEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the upkeep
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public double getClanUpkeep() {
|
||||
if (eClanUpkeep < 0) {
|
||||
eClanUpkeep = 0;
|
||||
}
|
||||
return eClanUpkeep;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the max member fee allowed
|
||||
* @return
|
||||
*/
|
||||
public double getMaxMemberFee() {
|
||||
return eMaxMemberFee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the member fee is enabled
|
||||
* @return
|
||||
*/
|
||||
public boolean isMemberFee() {
|
||||
return eMemberFee;
|
||||
}
|
||||
|
||||
public boolean isAllowResetKdr() {
|
||||
return allowResetKdr;
|
||||
@@ -396,6 +677,23 @@ public final class SettingsManager {
|
||||
public boolean isePurchaseResetKdr() {
|
||||
return ePurchaseResetKdr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the price to pay for setting the member fee
|
||||
*
|
||||
* @return the price
|
||||
*/
|
||||
public double geteMemberFeeSetPrice() {
|
||||
return eMemberFeeSetPrice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Do leaders need to pay for setting the member fee?
|
||||
* @return true if so
|
||||
*/
|
||||
public boolean isePurchaseMemberFeeSet() {
|
||||
return ePurchaseMemberFeeSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the price to reset the KDR
|
||||
@@ -450,60 +748,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
|
||||
*
|
||||
@@ -529,7 +773,8 @@ public final class SettingsManager {
|
||||
if (!bannedPlayers.contains(playerUniqueId.toString())) {
|
||||
bannedPlayers.add(playerUniqueId.toString());
|
||||
}
|
||||
|
||||
|
||||
getConfig().set("settings.banned-players", bannedPlayers);
|
||||
save();
|
||||
}
|
||||
|
||||
@@ -539,10 +784,9 @@ public final class SettingsManager {
|
||||
* @param playerUniqueId the player's name
|
||||
*/
|
||||
public void removeBanned(UUID playerUniqueId) {
|
||||
if (bannedPlayers.contains(playerUniqueId.toString())) {
|
||||
bannedPlayers.remove(playerUniqueId.toString());
|
||||
}
|
||||
|
||||
bannedPlayers.remove(playerUniqueId.toString());
|
||||
|
||||
getConfig().set("settings.banned-players", bannedPlayers);
|
||||
save();
|
||||
}
|
||||
|
||||
@@ -559,8 +803,48 @@ public final class SettingsManager {
|
||||
public boolean isRequireVerification() {
|
||||
return requireVerification;
|
||||
}
|
||||
|
||||
public boolean isRejoinCooldown() {
|
||||
return rejoinCooldownEnabled;
|
||||
}
|
||||
|
||||
public int getRejoinCooldown() {
|
||||
return rejoinCooldown;
|
||||
}
|
||||
|
||||
public String getListDefault() {
|
||||
return listDefault;
|
||||
}
|
||||
|
||||
/**
|
||||
public String getListSize() {
|
||||
return listSize;
|
||||
}
|
||||
|
||||
public String getListKdr() {
|
||||
return listKdr;
|
||||
}
|
||||
|
||||
public String getListName() {
|
||||
return listName;
|
||||
}
|
||||
|
||||
public String getListFounded() {
|
||||
return listFounded;
|
||||
}
|
||||
|
||||
public String getListActive() {
|
||||
return listActive;
|
||||
}
|
||||
|
||||
public String getListAsc() {
|
||||
return listAsc;
|
||||
}
|
||||
|
||||
public String getListDesc() {
|
||||
return listDesc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the bannedPlayers
|
||||
*/
|
||||
public List<String> getBannedPlayers() {
|
||||
@@ -679,6 +963,13 @@ public final class SettingsManager {
|
||||
return bbSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the bbLoginSize
|
||||
*/
|
||||
public int getBbLoginSize() {
|
||||
return bbLoginSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the bbColor
|
||||
*/
|
||||
@@ -734,14 +1025,46 @@ public final class SettingsManager {
|
||||
public int getClanMinSizeToRival() {
|
||||
return clanMinSizeToRival;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the max length of the clan description
|
||||
*
|
||||
* @return the max length
|
||||
*/
|
||||
public int getClanMaxDescriptionLength() {
|
||||
if (clanMaxDescriptionLength > 255 || clanMaxDescriptionLength < 0) {
|
||||
clanMaxDescriptionLength = 255;
|
||||
}
|
||||
return clanMaxDescriptionLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the min length of the clan description
|
||||
*
|
||||
* @return the min length
|
||||
*/
|
||||
public int getClanMinDescriptionLength() {
|
||||
if (clanMinDescriptionLength < 0 || clanMinDescriptionLength > getClanMaxDescriptionLength()) {
|
||||
clanMinDescriptionLength = 0;
|
||||
}
|
||||
return clanMinDescriptionLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clanMinLength
|
||||
*/
|
||||
public int getClanMinLength() {
|
||||
return clanMinLength;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the max number of alliances a clan can have
|
||||
*/
|
||||
public int getClanMaxAlliances() {
|
||||
return clanMaxAlliances;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clanMaxLength
|
||||
*/
|
||||
@@ -781,14 +1104,14 @@ public final class SettingsManager {
|
||||
* @return the tagSeparator
|
||||
*/
|
||||
public String getTagSeparator() {
|
||||
if (tagSeparator.equals(" .")) {
|
||||
return ".";
|
||||
}
|
||||
|
||||
if (tagSeparator == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (tagSeparator.equals(" .")) {
|
||||
return ".";
|
||||
}
|
||||
|
||||
return tagSeparator;
|
||||
}
|
||||
|
||||
@@ -811,6 +1134,10 @@ public final class SettingsManager {
|
||||
return Helper.toColor(clanChatLeaderColor);
|
||||
}
|
||||
|
||||
public String getClanChatTrustedColor() {
|
||||
return Helper.toColor(clanChatTrustedColor);
|
||||
}
|
||||
|
||||
public String getClanChatMemberColor() {
|
||||
return Helper.toColor(clanChatMemberColor);
|
||||
}
|
||||
@@ -1068,6 +1395,22 @@ public final class SettingsManager {
|
||||
public boolean isConfirmationForDemote() {
|
||||
return confirmationForDemote;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the min percentage of leaders online required to demote someone
|
||||
*
|
||||
* @return the percentage
|
||||
*/
|
||||
public double getPercentageOnlineToDemote() {
|
||||
if (percentageOnlineToDemote <= 0 || percentageOnlineToDemote > 100) {
|
||||
percentageOnlineToDemote = 100;
|
||||
}
|
||||
return percentageOnlineToDemote;
|
||||
}
|
||||
|
||||
public boolean isDenySameIPKills() {
|
||||
return denySameIPKills;
|
||||
}
|
||||
|
||||
public boolean isUseColorCodeFromPrefix() {
|
||||
return useColorCodeFromPrefix;
|
||||
@@ -1098,6 +1441,10 @@ public final class SettingsManager {
|
||||
return Helper.toColor(allyChatLeaderColor);
|
||||
}
|
||||
|
||||
public String getAllyChatTrustedColor() {
|
||||
return Helper.toColor(allyChatTrustedColor);
|
||||
}
|
||||
|
||||
public String getAllyChatMemberColor() {
|
||||
return Helper.toColor(allyChatMemberColor);
|
||||
}
|
||||
@@ -1189,7 +1536,7 @@ public final class SettingsManager {
|
||||
return dropOnHome;
|
||||
}
|
||||
|
||||
public List<Integer> getItemsList() {
|
||||
public List<Material> getItemsList() {
|
||||
return Collections.unmodifiableList(itemsList);
|
||||
}
|
||||
|
||||
@@ -1304,10 +1651,16 @@ public final class SettingsManager {
|
||||
return tamableMobsSharing;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isOnlineMode() {
|
||||
return onlineMode;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if server announcements are disabled
|
||||
*
|
||||
* @return if they are disabled
|
||||
*/
|
||||
public boolean isDisableMessages() {
|
||||
return disableMessages;
|
||||
}
|
||||
@@ -1360,4 +1713,21 @@ public final class SettingsManager {
|
||||
public int getMaxMembers() {
|
||||
return this.maxMembers;
|
||||
}
|
||||
|
||||
public boolean isSavePeriodically() {
|
||||
return savePeriodically;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the interval to save the data
|
||||
*
|
||||
* @return the interval in seconds
|
||||
*/
|
||||
public int getSaveInterval() {
|
||||
if (saveInterval < 1) {
|
||||
saveInterval = 5;
|
||||
}
|
||||
|
||||
return saveInterval * 60;
|
||||
}
|
||||
}
|
||||
+424
-120
@@ -3,18 +3,24 @@ package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
import com.google.common.base.Charsets;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.*;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.storage.DBCore;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.storage.MySQLCore;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.storage.SQLiteCore;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.utils.YAMLSerializer;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDFetcher;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.uuid.UUIDMigration;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
@@ -24,9 +30,11 @@ import java.util.logging.Level;
|
||||
*/
|
||||
public final class StorageManager {
|
||||
|
||||
private SimpleClans plugin;
|
||||
private final SimpleClans plugin;
|
||||
private DBCore core;
|
||||
private HashMap<String, ChatBlock> chatBlocks = new HashMap<>();
|
||||
private final HashMap<String, ChatBlock> chatBlocks = new HashMap<>();
|
||||
private final Set<Clan> modifiedClans = new HashSet<>();
|
||||
private final Set<ClanPlayer> modifiedClanPlayers = new HashSet<>();
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -45,11 +53,7 @@ public final class StorageManager {
|
||||
* @return
|
||||
*/
|
||||
public ChatBlock getChatBlock(Player player) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
return chatBlocks.get(player.getUniqueId().toString());
|
||||
} else {
|
||||
return chatBlocks.get(player.getName());
|
||||
}
|
||||
return chatBlocks.get(player.getUniqueId().toString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,17 +63,13 @@ public final class StorageManager {
|
||||
* @param cb
|
||||
*/
|
||||
public void addChatBlock(CommandSender player, ChatBlock cb) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(player.getName());
|
||||
UUID uuid = UUIDMigration.getForcedPlayerUUID(player.getName());
|
||||
|
||||
if (uuid == null) {
|
||||
return;
|
||||
}
|
||||
if (uuid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
chatBlocks.put(uuid.toString(), cb);
|
||||
} else {
|
||||
chatBlocks.put(player.getName(), cb);
|
||||
}
|
||||
chatBlocks.put(uuid.toString(), cb);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -80,59 +80,152 @@ public final class StorageManager {
|
||||
core = new MySQLCore(plugin.getSettingsManager().getHost(), plugin.getSettingsManager().getDatabase(), plugin.getSettingsManager().getPort(), plugin.getSettingsManager().getUsername(), plugin.getSettingsManager().getPassword());
|
||||
|
||||
if (core.checkConnection()) {
|
||||
SimpleClans.log("[SimpleClans] " + plugin.getLang("mysql.connection.successful"));
|
||||
plugin.getLogger().info(lang("mysql.connection.successful"));
|
||||
|
||||
if (!core.existsTable("sc_clans")) {
|
||||
SimpleClans.log("Creating table: sc_clans");
|
||||
plugin.getLogger().info("Creating table: sc_clans");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_clans` ( `id` bigint(20) NOT NULL auto_increment, `verified` tinyint(1) default '0', `tag` varchar(25) NOT NULL, `color_tag` varchar(25) NOT NULL, `name` varchar(100) NOT NULL, `friendly_fire` tinyint(1) default '0', `founded` bigint NOT NULL, `last_used` bigint NOT NULL, `packed_allies` text NOT NULL, `packed_rivals` text NOT NULL, `packed_bb` mediumtext NOT NULL, `cape_url` varchar(255) NOT NULL, `flags` text NOT NULL, `balance` double(64,2), PRIMARY KEY (`id`), UNIQUE KEY `uq_simpleclans_1` (`tag`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_clans` ("
|
||||
+ " `id` bigint(20) NOT NULL auto_increment,"
|
||||
+ " `verified` tinyint(1) default '0',"
|
||||
+ " `tag` varchar(25) NOT NULL,"
|
||||
+ " `color_tag` varchar(25) NOT NULL,"
|
||||
+ " `name` varchar(100) NOT NULL,"
|
||||
+ " `description` varchar(255),"
|
||||
+ " `friendly_fire` tinyint(1) default '0',"
|
||||
+ " `founded` bigint NOT NULL,"
|
||||
+ " `last_used` bigint NOT NULL,"
|
||||
+ " `packed_allies` text NOT NULL,"
|
||||
+ " `packed_rivals` text NOT NULL,"
|
||||
+ " `packed_bb` mediumtext NOT NULL,"
|
||||
+ " `cape_url` varchar(255) NOT NULL,"
|
||||
+ " `flags` text NOT NULL,"
|
||||
+ " `balance` double(64,2),"
|
||||
+ " `fee_enabled` tinyint(1) default '0',"
|
||||
+ " `fee_value` double(64,2),"
|
||||
+ " `ranks` text NOT NULL,"
|
||||
+ " `banner` text,"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE KEY `uq_simpleclans_1` (`tag`));";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
if (!core.existsTable("sc_players")) {
|
||||
SimpleClans.log("Creating table: sc_players");
|
||||
plugin.getLogger().info("Creating table: sc_players");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_players` ( `id` bigint(20) NOT NULL auto_increment, `name` varchar(16) NOT NULL, `leader` tinyint(1) default '0', `tag` varchar(25) NOT NULL, `friendly_fire` tinyint(1) default '0', `neutral_kills` int(11) default NULL, `rival_kills` int(11) default NULL, `civilian_kills` int(11) default NULL, `deaths` int(11) default NULL, `last_seen` bigint NOT NULL, `join_date` bigint NOT NULL, `trusted` tinyint(1) default '0', `flags` text NOT NULL, `packed_past_clans` text, PRIMARY KEY (`id`), UNIQUE KEY `uq_sc_players_1` (`name`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_players` ("
|
||||
+ " `id` bigint(20) NOT NULL auto_increment,"
|
||||
+ " `name` varchar(16) NOT NULL,"
|
||||
+ " `leader` tinyint(1) default '0',"
|
||||
+ " `tag` varchar(25) NOT NULL,"
|
||||
+ " `friendly_fire` tinyint(1) default '0',"
|
||||
+ " `neutral_kills` int(11) default NULL,"
|
||||
+ " `rival_kills` int(11) default NULL,"
|
||||
+ " `civilian_kills` int(11) default NULL,"
|
||||
+ " `deaths` int(11) default NULL,"
|
||||
+ " `last_seen` bigint NOT NULL,"
|
||||
+ " `join_date` bigint NOT NULL,"
|
||||
+ " `trusted` tinyint(1) default '0',"
|
||||
+ " `flags` text NOT NULL,"
|
||||
+ " `packed_past_clans` text,"
|
||||
+ " `resign_times` text,"
|
||||
+ " `locale` varchar(10),"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE KEY `uq_sc_players_1` (`name`));";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
if (!core.existsTable("sc_kills")) {
|
||||
SimpleClans.log("Creating table: sc_kills");
|
||||
plugin.getLogger().info("Creating table: sc_kills");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_kills` ( `kill_id` bigint(20) NOT NULL auto_increment, `attacker` varchar(16) NOT NULL, `attacker_tag` varchar(16) NOT NULL, `victim` varchar(16) NOT NULL, `victim_tag` varchar(16) NOT NULL, `kill_type` varchar(1) NOT NULL, PRIMARY KEY (`kill_id`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_kills` ("
|
||||
+ " `kill_id` bigint(20) NOT NULL auto_increment,"
|
||||
+ " `attacker` varchar(16) NOT NULL,"
|
||||
+ " `attacker_tag` varchar(16) NOT NULL,"
|
||||
+ " `victim` varchar(16) NOT NULL,"
|
||||
+ " `victim_tag` varchar(16) NOT NULL,"
|
||||
+ " `kill_type` varchar(1) NOT NULL,"
|
||||
+ " PRIMARY KEY (`kill_id`));";
|
||||
core.execute(query);
|
||||
}
|
||||
} else {
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage("[SimpleClans] " + ChatColor.RED + plugin.getLang("mysql.connection.failed"));
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage("[SimpleClans] " + ChatColor.RED + lang("mysql.connection.failed"));
|
||||
}
|
||||
} else {
|
||||
core = new SQLiteCore(plugin.getDataFolder().getPath());
|
||||
|
||||
if (core.checkConnection()) {
|
||||
SimpleClans.log("[SimpleClans] " + plugin.getLang("sqlite.connection.successful"));
|
||||
|
||||
plugin.getLogger().info(lang("sqlite.connection.successful"));
|
||||
|
||||
if (!core.existsTable("sc_clans")) {
|
||||
SimpleClans.log("Creating table: sc_clans");
|
||||
plugin.getLogger().info("Creating table: sc_clans");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_clans` ( `id` bigint(20), `verified` tinyint(1) default '0', `tag` varchar(25) NOT NULL, `color_tag` varchar(25) NOT NULL, `name` varchar(100) NOT NULL, `friendly_fire` tinyint(1) default '0', `founded` bigint NOT NULL, `last_used` bigint NOT NULL, `packed_allies` text NOT NULL, `packed_rivals` text NOT NULL, `packed_bb` mediumtext NOT NULL, `cape_url` varchar(255) NOT NULL, `flags` text NOT NULL, `balance` double(64,2) default 0.0, PRIMARY KEY (`id`), UNIQUE (`tag`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_clans` ("
|
||||
+ " `id` bigint(20),"
|
||||
+ " `verified` tinyint(1) default '0',"
|
||||
+ " `tag` varchar(25) NOT NULL,"
|
||||
+ " `color_tag` varchar(25) NOT NULL,"
|
||||
+ " `name` varchar(100) NOT NULL,"
|
||||
+ " `description` varchar(255),"
|
||||
+ " `friendly_fire` tinyint(1) default '0',"
|
||||
+ " `founded` bigint NOT NULL,"
|
||||
+ " `last_used` bigint NOT NULL,"
|
||||
+ " `packed_allies` text NOT NULL,"
|
||||
+ " `packed_rivals` text NOT NULL,"
|
||||
+ " `packed_bb` mediumtext NOT NULL,"
|
||||
+ " `cape_url` varchar(255) NOT NULL,"
|
||||
+ " `flags` text NOT NULL,"
|
||||
+ " `balance` double(64,2) default 0.0,"
|
||||
+ " `fee_enabled` tinyint(1) default '0',"
|
||||
+ " `fee_value` double(64,2),"
|
||||
+ " `ranks` text NOT NULL,"
|
||||
+ " `banner` text,"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE (`tag`));";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
if (!core.existsTable("sc_players")) {
|
||||
SimpleClans.log("Creating table: sc_players");
|
||||
plugin.getLogger().info("Creating table: sc_players");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_players` ( `id` bigint(20), `name` varchar(16) NOT NULL, `leader` tinyint(1) default '0', `tag` varchar(25) NOT NULL, `friendly_fire` tinyint(1) default '0', `neutral_kills` int(11) default NULL, `rival_kills` int(11) default NULL, `civilian_kills` int(11) default NULL, `deaths` int(11) default NULL, `last_seen` bigint NOT NULL, `join_date` bigint NOT NULL, `trusted` tinyint(1) default '0', `flags` text NOT NULL, `packed_past_clans` text, PRIMARY KEY (`id`), UNIQUE (`name`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_players` ("
|
||||
+ " `id` bigint(20),"
|
||||
+ " `name` varchar(16) NOT NULL,"
|
||||
+ " `leader` tinyint(1) default '0',"
|
||||
+ " `tag` varchar(25) NOT NULL,"
|
||||
+ " `friendly_fire` tinyint(1) default '0',"
|
||||
+ " `neutral_kills` int(11) default NULL,"
|
||||
+ " `rival_kills` int(11) default NULL,"
|
||||
+ " `civilian_kills` int(11) default NULL,"
|
||||
+ " `deaths` int(11) default NULL,"
|
||||
+ " `last_seen` bigint NOT NULL,"
|
||||
+ " `join_date` bigint NOT NULL,"
|
||||
+ " `trusted` tinyint(1) default '0',"
|
||||
+ " `flags` text NOT NULL,"
|
||||
+ " `packed_past_clans` text,"
|
||||
+ " `resign_times` text,"
|
||||
+ " `locale` varchar(10),"
|
||||
+ " PRIMARY KEY (`id`),"
|
||||
+ " UNIQUE (`name`));";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
if (!core.existsTable("sc_kills")) {
|
||||
SimpleClans.log("Creating table: sc_kills");
|
||||
plugin.getLogger().info("Creating table: sc_kills");
|
||||
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_kills` ( `kill_id` bigint(20), `attacker` varchar(16) NOT NULL, `attacker_tag` varchar(16) NOT NULL, `victim` varchar(16) NOT NULL, `victim_tag` varchar(16) NOT NULL, `kill_type` varchar(1) NOT NULL, PRIMARY KEY (`kill_id`));";
|
||||
String query = "CREATE TABLE IF NOT EXISTS `sc_kills` ("
|
||||
+ " `kill_id` bigint(20),"
|
||||
+ " `attacker` varchar(16) NOT NULL,"
|
||||
+ " `attacker_tag` varchar(16) NOT NULL,"
|
||||
+ " `victim` varchar(16) NOT NULL,"
|
||||
+ " `victim_tag` varchar(16) NOT NULL,"
|
||||
+ " `kill_type` varchar(1) NOT NULL,"
|
||||
+ " PRIMARY KEY (`kill_id`));";
|
||||
core.execute(query);
|
||||
}
|
||||
} else {
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage("[SimpleClans] " + ChatColor.RED + plugin.getLang("sqlite.connection.failed"));
|
||||
SimpleClans.getInstance().getServer().getConsoleSender().sendMessage("[SimpleClans] " + ChatColor.RED + lang("sqlite.connection.failed"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -162,7 +255,7 @@ public final class StorageManager {
|
||||
}
|
||||
|
||||
if (!clans.isEmpty()) {
|
||||
SimpleClans.log(MessageFormat.format("[SimpleClans] " + plugin.getLang("clans"), clans.size()));
|
||||
plugin.getLogger().info(MessageFormat.format(lang("clans"), clans.size()));
|
||||
}
|
||||
|
||||
List<ClanPlayer> cps = retrieveClanPlayers();
|
||||
@@ -178,7 +271,7 @@ public final class StorageManager {
|
||||
}
|
||||
|
||||
if (!cps.isEmpty()) {
|
||||
SimpleClans.log(MessageFormat.format("[SimpleClans] " + plugin.getLang("clan.players"), cps.size()));
|
||||
plugin.getLogger().info(MessageFormat.format(lang("clan.players"), cps.size()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,8 +293,8 @@ public final class StorageManager {
|
||||
tm.importMember(cp);
|
||||
}
|
||||
plugin.getClanManager().importClanPlayer(cp);
|
||||
|
||||
SimpleClans.log("[SimpleClans] ClanPlayer Reloaded: " + player.getName() + ", UUID: " + player.getUniqueId().toString());
|
||||
|
||||
plugin.getLogger().info("ClanPlayer Reloaded: " + player.getName() + ", UUID: " + player.getUniqueId().toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,7 +314,7 @@ public final class StorageManager {
|
||||
}
|
||||
|
||||
for (Clan clan : purge) {
|
||||
SimpleClans.log("[SimpleClans] " + MessageFormat.format(plugin.getLang("purging.clan"), clan.getName()));
|
||||
plugin.getLogger().info(MessageFormat.format(lang("purging.clan"), clan.getName()));
|
||||
deleteClan(clan);
|
||||
clans.remove(clan);
|
||||
}
|
||||
@@ -237,7 +330,7 @@ public final class StorageManager {
|
||||
}
|
||||
|
||||
for (ClanPlayer cp : purge) {
|
||||
SimpleClans.log("[SimpleClans] " + MessageFormat.format(plugin.getLang("purging.player.data"), cp.getName()));
|
||||
plugin.getLogger().info(MessageFormat.format(lang("purging.player.data"), cp.getName()));
|
||||
deleteClanPlayer(cp);
|
||||
cps.remove(cp);
|
||||
}
|
||||
@@ -263,14 +356,19 @@ public final class StorageManager {
|
||||
String tag = res.getString("tag");
|
||||
String color_tag = Helper.parseColors(res.getString("color_tag"));
|
||||
String name = res.getString("name");
|
||||
String description = res.getString("description");
|
||||
String packed_allies = res.getString("packed_allies");
|
||||
String packed_rivals = res.getString("packed_rivals");
|
||||
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");
|
||||
double feeValue = res.getDouble("fee_value");
|
||||
boolean feeEnabled = res.getBoolean("fee_enabled");
|
||||
ItemStack banner = YAMLSerializer.deserialize(res.getString("banner"), ItemStack.class);
|
||||
|
||||
if (founded == 0) {
|
||||
founded = (new Date()).getTime();
|
||||
@@ -287,6 +385,7 @@ public final class StorageManager {
|
||||
clan.setTag(tag);
|
||||
clan.setColorTag(color_tag);
|
||||
clan.setName(name);
|
||||
clan.setDescription(description);
|
||||
clan.setPackedAllies(packed_allies);
|
||||
clan.setPackedRivals(packed_rivals);
|
||||
clan.setPackedBb(packed_bb);
|
||||
@@ -294,6 +393,10 @@ public final class StorageManager {
|
||||
clan.setFounded(founded);
|
||||
clan.setLastUsed(last_used);
|
||||
clan.setBalance(balance);
|
||||
clan.setMemberFee(feeValue);
|
||||
clan.setMemberFeeEnabled(feeEnabled);
|
||||
clan.setRanks(Helper.ranksFromJson(ranks));
|
||||
clan.setBanner(banner);
|
||||
|
||||
out.add(clan);
|
||||
} catch (Exception ex) {
|
||||
@@ -303,8 +406,8 @@ public final class StorageManager {
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,14 +436,19 @@ public final class StorageManager {
|
||||
String tag = res.getString("tag");
|
||||
String color_tag = Helper.parseColors(res.getString("color_tag"));
|
||||
String name = res.getString("name");
|
||||
String description = res.getString("description");
|
||||
String packed_allies = res.getString("packed_allies");
|
||||
String packed_rivals = res.getString("packed_rivals");
|
||||
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");
|
||||
double feeValue = res.getDouble("fee_value");
|
||||
boolean feeEnabled = res.getBoolean("fee_enabled");
|
||||
ItemStack banner = YAMLSerializer.deserialize(res.getString("banner"), ItemStack.class);
|
||||
|
||||
if (founded == 0) {
|
||||
founded = (new Date()).getTime();
|
||||
@@ -357,6 +465,7 @@ public final class StorageManager {
|
||||
clan.setTag(tag);
|
||||
clan.setColorTag(color_tag);
|
||||
clan.setName(name);
|
||||
clan.setDescription(description);
|
||||
clan.setPackedAllies(packed_allies);
|
||||
clan.setPackedRivals(packed_rivals);
|
||||
clan.setPackedBb(packed_bb);
|
||||
@@ -364,6 +473,10 @@ public final class StorageManager {
|
||||
clan.setFounded(founded);
|
||||
clan.setLastUsed(last_used);
|
||||
clan.setBalance(balance);
|
||||
clan.setMemberFee(feeValue);
|
||||
clan.setMemberFeeEnabled(feeEnabled);
|
||||
clan.setRanks(Helper.ranksFromJson(ranks));
|
||||
clan.setBanner(banner);
|
||||
|
||||
out = clan;
|
||||
} catch (Exception ex) {
|
||||
@@ -373,8 +486,8 @@ public final class StorageManager {
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,6 +523,8 @@ public final class StorageManager {
|
||||
long join_date = res.getLong("join_date");
|
||||
String flags = res.getString("flags");
|
||||
String packed_past_clans = Helper.parseColors(res.getString("packed_past_clans"));
|
||||
String resign_times = res.getString("resign_times");
|
||||
Locale locale = Helper.forLanguageTag(res.getString("locale"));
|
||||
|
||||
if (last_seen == 0) {
|
||||
last_seen = (new Date()).getTime();
|
||||
@@ -435,6 +550,8 @@ public final class StorageManager {
|
||||
cp.setJoinDate(join_date);
|
||||
cp.setPackedPastClans(packed_past_clans);
|
||||
cp.setTrusted(leader || trusted);
|
||||
cp.setResignTimes(Helper.resignTimesFromJson(resign_times));
|
||||
cp.setLocale(locale);
|
||||
|
||||
if (!tag.isEmpty()) {
|
||||
Clan clan = SimpleClans.getInstance().getClanManager().getClan(tag);
|
||||
@@ -452,8 +569,8 @@ public final class StorageManager {
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,6 +608,8 @@ public final class StorageManager {
|
||||
long join_date = res.getLong("join_date");
|
||||
String flags = res.getString("flags");
|
||||
String packed_past_clans = Helper.parseColors(res.getString("packed_past_clans"));
|
||||
String resign_times = res.getString("resign_times");
|
||||
Locale locale = Helper.forLanguageTag(res.getString("locale"));
|
||||
|
||||
if (last_seen == 0) {
|
||||
last_seen = (new Date()).getTime();
|
||||
@@ -516,6 +635,8 @@ public final class StorageManager {
|
||||
cp.setJoinDate(join_date);
|
||||
cp.setPackedPastClans(packed_past_clans);
|
||||
cp.setTrusted(leader || trusted);
|
||||
cp.setResignTimes(Helper.resignTimesFromJson(resign_times));
|
||||
cp.setLocale(locale);
|
||||
|
||||
if (!tag.isEmpty()) {
|
||||
Clan clanDB = retrieveOneClan(tag);
|
||||
@@ -553,8 +674,8 @@ public final class StorageManager {
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -567,8 +688,28 @@ public final class StorageManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void insertClan(Clan clan) {
|
||||
String query = "INSERT INTO `sc_clans` ( `verified`, `tag`, `color_tag`, `name`, `friendly_fire`, `founded`, `last_used`, `packed_allies`, `packed_rivals`, `packed_bb`, `cape_url`, `flags`, `balance`) ";
|
||||
String values = "VALUES ( " + (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` (`banner`, `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(YAMLSerializer.serialize(clan.getBanner())) + "','"
|
||||
+ 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);
|
||||
}
|
||||
|
||||
@@ -577,14 +718,14 @@ public final class StorageManager {
|
||||
*
|
||||
* @param clan
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
@Deprecated
|
||||
public void updateClanAsync(final Clan clan) {
|
||||
plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateClan(clan);
|
||||
}
|
||||
});
|
||||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -592,18 +733,17 @@ public final class StorageManager {
|
||||
*
|
||||
* @param p to update
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public void updatePlayerNameAsync(final Player p) {
|
||||
plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updatePlayerName(p);
|
||||
}
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the name of a player in the database asynchronously
|
||||
* Change the name of a player in the database
|
||||
*
|
||||
* @param p to update
|
||||
*/
|
||||
@@ -618,9 +758,7 @@ public final class StorageManager {
|
||||
* @param clan
|
||||
*/
|
||||
public void updateClan(Clan clan) {
|
||||
clan.updateLastUsed();
|
||||
String query = "UPDATE `sc_clans` SET 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);
|
||||
updateClan(clan, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -633,9 +771,37 @@ public final class StorageManager {
|
||||
public void updateClan(Clan clan, boolean updateLastUsed) {
|
||||
if (updateLastUsed) {
|
||||
clan.updateLastUsed();
|
||||
}
|
||||
String query = "UPDATE `sc_clans` SET 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);
|
||||
}
|
||||
if (plugin.getSettingsManager().isSavePeriodically()) {
|
||||
modifiedClans.add(clan);
|
||||
return;
|
||||
}
|
||||
core.update(getUpdateClanQuery(clan));
|
||||
}
|
||||
|
||||
private String getUpdateClanQuery(Clan clan) {
|
||||
String query = "UPDATE `sc_clans`" +
|
||||
" SET ranks = '"+ Helper.escapeQuotes(Helper.ranksToJson(clan.getRanks())) +"'," +
|
||||
" banner = '" + Helper.escapeQuotes(YAMLSerializer.serialize(clan.getBanner())) + "'," +
|
||||
" 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()) + "';";
|
||||
return query;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -654,15 +820,9 @@ public final class StorageManager {
|
||||
* @param cp
|
||||
*/
|
||||
public void insertClanPlayer(ClanPlayer cp) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
String query = "INSERT INTO `sc_players` ( `uuid`, `name`, `leader`, `tag`, `friendly_fire`, `neutral_kills`, `rival_kills`, `civilian_kills`, `deaths`, `last_seen`, `join_date`, `packed_past_clans`, `flags`) ";
|
||||
String values = "VALUES ( '" + cp.getUniqueId().toString() + "', '" + cp.getName() + "'," + (cp.isLeader() ? 1 : 0) + ",'" + Helper.escapeQuotes(cp.getTag()) + "'," + (cp.isFriendlyFire() ? 1 : 0) + "," + cp.getNeutralKills() + "," + cp.getRivalKills() + "," + cp.getCivilianKills() + "," + cp.getDeaths() + ",'" + cp.getLastSeen() + "',' " + cp.getJoinDate() + "','" + Helper.escapeQuotes(cp.getPackedPastClans()) + "','" + Helper.escapeQuotes(cp.getFlags()) + "');";
|
||||
core.insert(query + values);
|
||||
} else {
|
||||
String query = "INSERT INTO `sc_players` ( `name`, `leader`, `tag`, `friendly_fire`, `neutral_kills`, `rival_kills`, `civilian_kills`, `deaths`, `last_seen`, `join_date`, `packed_past_clans`, `flags`) ";
|
||||
String values = "VALUES ( '" + cp.getName() + "'," + (cp.isLeader() ? 1 : 0) + ",'" + Helper.escapeQuotes(cp.getTag()) + "'," + (cp.isFriendlyFire() ? 1 : 0) + "," + cp.getNeutralKills() + "," + cp.getRivalKills() + "," + cp.getCivilianKills() + "," + cp.getDeaths() + ",'" + cp.getLastSeen() + "',' " + cp.getJoinDate() + "','" + Helper.escapeQuotes(cp.getPackedPastClans()) + "','" + Helper.escapeQuotes(cp.getFlags()) + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
String query = "INSERT INTO `sc_players` (`locale`, `resign_times`, `uuid`, `name`, `leader`, `tag`, `friendly_fire`, `neutral_kills`, `rival_kills`, `civilian_kills`, `deaths`, `last_seen`, `join_date`, `packed_past_clans`, `flags`) ";
|
||||
String values = "VALUES ('"+cp.getLocale().toLanguageTag()+"', '"+ Helper.escapeQuotes(Helper.resignTimesToJson(cp.getResignTimes()))+ "', '" + cp.getUniqueId().toString() + "', '" + cp.getName() + "'," + (cp.isLeader() ? 1 : 0) + ",'" + Helper.escapeQuotes(cp.getTag()) + "'," + (cp.isFriendlyFire() ? 1 : 0) + "," + cp.getNeutralKills() + "," + cp.getRivalKills() + "," + cp.getCivilianKills() + "," + cp.getDeaths() + ",'" + cp.getLastSeen() + "',' " + cp.getJoinDate() + "','" + Helper.escapeQuotes(cp.getPackedPastClans()) + "','" + Helper.escapeQuotes(cp.getFlags()) + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -670,14 +830,14 @@ public final class StorageManager {
|
||||
*
|
||||
* @param cp
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
@Deprecated
|
||||
public void updateClanPlayerAsync(final ClanPlayer cp) {
|
||||
plugin.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateClanPlayer(cp);
|
||||
}
|
||||
});
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -687,13 +847,24 @@ public final class StorageManager {
|
||||
*/
|
||||
public void updateClanPlayer(ClanPlayer cp) {
|
||||
cp.updateLastSeen();
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
String query = "UPDATE `sc_players` SET leader = " + (cp.isLeader() ? 1 : 0) + ", tag = '" + Helper.escapeQuotes(cp.getTag()) + "' , friendly_fire = " + (cp.isFriendlyFire() ? 1 : 0) + ", neutral_kills = " + cp.getNeutralKills() + ", rival_kills = " + cp.getRivalKills() + ", civilian_kills = " + cp.getCivilianKills() + ", deaths = " + cp.getDeaths() + ", last_seen = '" + cp.getLastSeen() + "', packed_past_clans = '" + Helper.escapeQuotes(cp.getPackedPastClans()) + "', trusted = " + (cp.isTrusted() ? 1 : 0) + ", flags = '" + Helper.escapeQuotes(cp.getFlags()) + "', name = '" + cp.getName() + "' WHERE `uuid` = '" + cp.getUniqueId().toString() + "';";
|
||||
core.update(query);
|
||||
} else {
|
||||
String query = "UPDATE `sc_players` SET leader = " + (cp.isLeader() ? 1 : 0) + ", tag = '" + Helper.escapeQuotes(cp.getTag()) + "' , friendly_fire = " + (cp.isFriendlyFire() ? 1 : 0) + ", neutral_kills = " + cp.getNeutralKills() + ", rival_kills = " + cp.getRivalKills() + ", civilian_kills = " + cp.getCivilianKills() + ", deaths = " + cp.getDeaths() + ", last_seen = '" + cp.getLastSeen() + "', packed_past_clans = '" + Helper.escapeQuotes(cp.getPackedPastClans()) + "', trusted = " + (cp.isTrusted() ? 1 : 0) + ", flags = '" + Helper.escapeQuotes(cp.getFlags()) + "' WHERE name = '" + cp.getName() + "';";
|
||||
core.update(query);
|
||||
if (plugin.getSettingsManager().isSavePeriodically()) {
|
||||
modifiedClanPlayers.add(cp);
|
||||
return;
|
||||
}
|
||||
core.update(getUpdateClanPlayerQuery(cp));
|
||||
}
|
||||
|
||||
private String getUpdateClanPlayerQuery(ClanPlayer cp) {
|
||||
return "UPDATE `sc_players` SET" +
|
||||
" locale = '" + cp.getLocale().toLanguageTag() + "'," +
|
||||
" resign_times = '"+ Helper.escapeQuotes(Helper.resignTimesToJson(cp.getResignTimes())) +"'," +
|
||||
" leader = " + (cp.isLeader() ? 1 : 0) + ", tag = '" + Helper.escapeQuotes(cp.getTag()) + "'," +
|
||||
" friendly_fire = " + (cp.isFriendlyFire() ? 1 : 0) + ", neutral_kills = " + cp.getNeutralKills() + "," +
|
||||
" rival_kills = " + cp.getRivalKills() + ", civilian_kills = " + cp.getCivilianKills() + "," +
|
||||
" deaths = " + cp.getDeaths() + ", last_seen = '" + cp.getLastSeen() + "'," +
|
||||
" packed_past_clans = '" + Helper.escapeQuotes(cp.getPackedPastClans()) + "'," +
|
||||
" trusted = " + (cp.isTrusted() ? 1 : 0) + ", flags = '" + Helper.escapeQuotes(cp.getFlags()) + "'," +
|
||||
" name = '" + cp.getName() + "' WHERE `uuid` = '" + cp.getUniqueId().toString() + "';";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -702,17 +873,16 @@ public final class StorageManager {
|
||||
* @param cp
|
||||
*/
|
||||
public void deleteClanPlayer(ClanPlayer cp) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
String query = "DELETE FROM `sc_players` WHERE uuid = '" + cp.getUniqueId() + "';";
|
||||
core.delete(query);
|
||||
deleteKills(cp.getUniqueId());
|
||||
} else {
|
||||
String query = "DELETE FROM `sc_players` WHERE name = '" + cp.getName() + "';";
|
||||
core.delete(query);
|
||||
deleteKills(cp.getName());
|
||||
final Clan clan = cp.getClan();
|
||||
if (clan != null) {
|
||||
clan.addBbWithoutSaving(ChatColor.AQUA + MessageFormat.format(lang("has.been.purged"), cp.getName()));
|
||||
updateClan(clan, false);
|
||||
}
|
||||
String query = "DELETE FROM `sc_players` WHERE uuid = '" + cp.getUniqueId() + "';";
|
||||
core.delete(query);
|
||||
deleteKills(cp.getUniqueId());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Insert a kill into the database
|
||||
*
|
||||
@@ -722,16 +892,26 @@ public final class StorageManager {
|
||||
* @param victimTag
|
||||
* @param type
|
||||
*/
|
||||
@Deprecated
|
||||
public void insertKill(Player attacker, String attackerTag, Player victim, String victimTag, String type) {
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
String query = "INSERT INTO `sc_kills` ( `attacker_uuid`, `attacker`, `attacker_tag`, `victim_uuid`, `victim`, `victim_tag`, `kill_type`) ";
|
||||
String values = "VALUES ( '" + attacker.getUniqueId() + "','" + attacker.getName() + "','" + attackerTag + "','" + victim.getUniqueId() + "','" + victim.getName() + "','" + victimTag + "','" + type + "');";
|
||||
core.insert(query + values);
|
||||
} else {
|
||||
String query = "INSERT INTO `sc_kills` ( `attacker`, `attacker_tag`, `victim`, `victim_tag`, `kill_type`) ";
|
||||
String values = "VALUES ( '" + attacker.getName() + "','" + attackerTag + "','" + victim.getName() + "','" + victimTag + "','" + type + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
String query = "INSERT INTO `sc_kills` ( `attacker_uuid`, `attacker`, `attacker_tag`, `victim_uuid`, `victim`, `victim_tag`, `kill_type`) ";
|
||||
String values = "VALUES ( '" + attacker.getUniqueId() + "','" + attacker.getName() + "','" + attackerTag + "','" + victim.getUniqueId() + "','" + victim.getName() + "','" + victimTag + "','" + type + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a kill into the database
|
||||
*
|
||||
* @param attacker the attacker
|
||||
* @param victim the victim
|
||||
* @param type the kill type
|
||||
*/
|
||||
public void insertKill(@NotNull ClanPlayer attacker, @NotNull ClanPlayer victim, @NotNull String type) {
|
||||
String query = "INSERT INTO `sc_kills` ( `attacker_uuid`, `attacker`, `attacker_tag`, `victim_uuid`, " +
|
||||
"`victim`, `victim_tag`, `kill_type`) ";
|
||||
String values = "VALUES ( '" + attacker.getUniqueId() + "','" + attacker.getName() + "','" + attacker.getTag()
|
||||
+ "','" + victim.getUniqueId() + "','" + victim.getName() + "','" + victim.getTag() + "','" + type + "');";
|
||||
core.insert(query + values);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -775,14 +955,14 @@ public final class StorageManager {
|
||||
int kills = res.getInt("kills");
|
||||
out.put(victim, kills);
|
||||
} catch (Exception ex) {
|
||||
SimpleClans.getLog().info(ex.getMessage());
|
||||
plugin.getLogger().info(ex.getMessage());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -809,20 +989,65 @@ public final class StorageManager {
|
||||
int kills = res.getInt("kills");
|
||||
out.put(attacker + " " + victim, kills);
|
||||
} catch (Exception ex) {
|
||||
SimpleClans.getLog().info(ex.getMessage());
|
||||
plugin.getLogger().info(ex.getMessage());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
SimpleClans.getLog().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
SimpleClans.getLog().log(Level.SEVERE, null, ex);
|
||||
plugin.getLogger().severe(String.format("An Error occurred: %s", ex.getErrorCode()));
|
||||
plugin.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets, asynchronously, a map of tag->count of all kills and notifies via callback when it's ready
|
||||
*
|
||||
* @param callback
|
||||
*/
|
||||
public void getMostKilled(DataCallback<Map<String, Integer>> callback) {
|
||||
new BukkitRunnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onResultReady(getMostKilled());
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets, asynchronously, a map of victim->count of all kills that specific player did and notifies via callback when it's ready
|
||||
*
|
||||
* @param playerName
|
||||
* @param callback
|
||||
*/
|
||||
public void getKillsPerPlayer(final String playerName, final DataCallback<Map<String, Integer>> callback) {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
callback.onResultReady(getKillsPerPlayer(playerName));
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback that returns some data
|
||||
*
|
||||
* @author roinujnosde
|
||||
*
|
||||
*/
|
||||
public interface DataCallback<T> {
|
||||
/**
|
||||
* Notifies when the result is ready
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
void onResultReady(T data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the database to the latest version
|
||||
*
|
||||
@@ -838,6 +1063,51 @@ public final class StorageManager {
|
||||
query = "ALTER TABLE sc_clans ADD COLUMN `balance` double(64,2);";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* From 2.7.16 to 2.7.17
|
||||
*/
|
||||
if (!core.existsColumn("sc_clans", "fee_enabled")) {
|
||||
query = "ALTER TABLE sc_clans ADD COLUMN `fee_enabled` tinyint(1) default '0';";
|
||||
core.execute(query);
|
||||
}
|
||||
if (!core.existsColumn("sc_clans", "fee_value")) {
|
||||
query = "ALTER TABLE sc_clans ADD COLUMN `fee_value` double(64,2);";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* From 2.7.21 to 2.7.22
|
||||
*/
|
||||
if (!core.existsColumn("sc_clans", "description")) {
|
||||
query = "ALTER TABLE sc_clans ADD COLUMN `description` varchar(255);";
|
||||
core.execute(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* From 2.7.22 to 2.7.23
|
||||
*/
|
||||
if (!core.existsColumn("sc_players", "resign_times")) {
|
||||
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);
|
||||
}
|
||||
|
||||
// From 2.12.1 to 2.13.0
|
||||
if (!core.existsColumn("sc_players", "locale")) {
|
||||
query = "ALTER TABLE sc_players ADD COLUMN `locale` varchar(10);";
|
||||
core.execute(query);
|
||||
}
|
||||
if (!core.existsColumn("sc_clans", "banner")) {
|
||||
core.execute("ALTER TABLE sc_clans ADD COLUMN `banner` text;");
|
||||
}
|
||||
|
||||
/**
|
||||
* Bukkit 1.7.5+ UUID Migration
|
||||
@@ -876,11 +1146,12 @@ public final class StorageManager {
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
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 ! ==================== ");
|
||||
SimpleClans.log("[SimpleClans] ==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
|
||||
private void updatePlayersToUUID() {
|
||||
plugin.getLogger().log(Level.WARNING, "Starting Migration to UUID Players !");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== ATTENTION DONT STOP BUKKIT ! ==================== ");
|
||||
SimpleClans.getInstance().setUUID(false);
|
||||
List<ClanPlayer> cps = retrieveClanPlayers();
|
||||
|
||||
@@ -901,20 +1172,53 @@ public final class StorageManager {
|
||||
|
||||
String query3 = "UPDATE `sc_kills` SET victim_uuid = '" + uuidPlayer.toString() + "' WHERE victim = '" + cp.getName() + "';";
|
||||
core.update(query3);
|
||||
SimpleClans.log("[" + i + " / " + cps.size() + "] Success: " + cp.getName() + "; UUID: " + uuidPlayer.toString());
|
||||
plugin.getLogger().info("[" + i + " / " + cps.size() + "] Success: " + cp.getName() + "; UUID: " + uuidPlayer.toString());
|
||||
} catch (Exception ex) {
|
||||
SimpleClans.log("[" + i + " / " + cps.size() + "] Failed [ERRO]: " + cp.getName() + "; UUID: ???");
|
||||
plugin.getLogger().log(Level.WARNING, "[" + i + " / " + cps.size() + "] Failed [ERRO]: " + cp.getName() + "; UUID: ???");
|
||||
}
|
||||
i++;
|
||||
}
|
||||
SimpleClans.log("[SimpleClans] ==================== END OF MIGRATION ====================");
|
||||
SimpleClans.log("[SimpleClans] ==================== END OF MIGRATION ====================");
|
||||
SimpleClans.log("[SimpleClans] ==================== END OF MIGRATION ====================");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== END OF MIGRATION ====================");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== END OF MIGRATION ====================");
|
||||
plugin.getLogger().log(Level.WARNING, "==================== END OF MIGRATION ====================");
|
||||
|
||||
|
||||
if (!cps.isEmpty()) {
|
||||
SimpleClans.log(MessageFormat.format("[SimpleClans] " + plugin.getLang("clan.players"), cps.size()));
|
||||
plugin.getLogger().info(MessageFormat.format(lang("clan.players"), cps.size()));
|
||||
}
|
||||
SimpleClans.getInstance().setUUID(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Saves modified Clans and ClanPlayers to the database
|
||||
*
|
||||
* @author RoinujNosde
|
||||
* @since 2.10.2
|
||||
*/
|
||||
public void saveModified() {
|
||||
try (Statement statement = core.getConnection().createStatement()) {
|
||||
List<Clan> allClans = plugin.getClanManager().getClans();
|
||||
for (Clan clan : modifiedClans) {
|
||||
if (!allClans.contains(clan)) {
|
||||
continue;
|
||||
}
|
||||
statement.addBatch(getUpdateClanQuery(clan));
|
||||
}
|
||||
List<ClanPlayer> allClanPlayers = plugin.getClanManager().getAllClanPlayers();
|
||||
for (ClanPlayer cp : modifiedClanPlayers) {
|
||||
if (!allClanPlayers.contains(cp)) {
|
||||
continue;
|
||||
}
|
||||
statement.addBatch(getUpdateClanPlayerQuery(cp));
|
||||
}
|
||||
statement.executeBatch();
|
||||
|
||||
modifiedClans.clear();
|
||||
modifiedClanPlayers.clear();
|
||||
} catch (SQLException e) {
|
||||
plugin.getLogger().severe("Error saving modified Clans and ClanPlayers:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,16 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.managers;
|
||||
|
||||
import io.papermc.lib.PaperLib;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.ChatBlock;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.TeleportState;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
@@ -15,6 +18,7 @@ import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public final class TeleportManager {
|
||||
private SimpleClans plugin;
|
||||
@@ -36,17 +40,13 @@ public final class TeleportManager {
|
||||
* @param clanName
|
||||
*/
|
||||
public void addPlayer(Player player, Location dest, String clanName) {
|
||||
int secs = SimpleClans.getInstance().getSettingsManager().getWaitSecs();
|
||||
int secs = SimpleClans.getInstance().getSettingsManager().getWaitSecs();
|
||||
waitingPlayers.put(player.getUniqueId().toString(), new TeleportState(player, dest, clanName));
|
||||
|
||||
if (SimpleClans.getInstance().hasUUID()) {
|
||||
waitingPlayers.put(player.getUniqueId().toString(), new TeleportState(player, dest, clanName));
|
||||
} else {
|
||||
waitingPlayers.put(player.getName(), new TeleportState(player, dest, clanName));
|
||||
}
|
||||
|
||||
if (secs > 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("waiting.for.teleport.stand.still.for.0.seconds"), secs));
|
||||
}
|
||||
if (secs > 0) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA
|
||||
+ MessageFormat.format(lang("waiting.for.teleport.stand.still.for.0.seconds",player), secs));
|
||||
}
|
||||
}
|
||||
|
||||
private void dropItems(Player player) {
|
||||
@@ -59,9 +59,9 @@ public final class TeleportManager {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<Integer> itemsList = plugin.getSettingsManager().getItemsList();
|
||||
List<Material> itemsList = plugin.getSettingsManager().getItemsList();
|
||||
|
||||
if (itemsList.contains(item.getTypeId())) {
|
||||
if (itemsList.contains(item.getType())) {
|
||||
player.getWorld().dropItemNaturally(player.getLocation(), item);
|
||||
inv.remove(item);
|
||||
}
|
||||
@@ -76,9 +76,9 @@ public final class TeleportManager {
|
||||
continue;
|
||||
}
|
||||
|
||||
List<Integer> itemsList = plugin.getSettingsManager().getItemsList();
|
||||
List<Material> itemsList = plugin.getSettingsManager().getItemsList();
|
||||
|
||||
if (!itemsList.contains(item.getTypeId())) {
|
||||
if (!itemsList.contains(item.getType())) {
|
||||
player.getWorld().dropItemNaturally(player.getLocation(), item);
|
||||
inv.remove(item);
|
||||
}
|
||||
@@ -124,17 +124,23 @@ public final class TeleportManager {
|
||||
|
||||
SimpleClans.debug("teleporting");
|
||||
|
||||
player.teleport(new Location(loc.getWorld(), loc.getBlockX() + .5, loc.getBlockY(), loc.getBlockZ() + .5));
|
||||
Location location = new Location(loc.getWorld(), loc.getBlockX() + .5, loc.getBlockY(), loc.getBlockZ() + .5);
|
||||
PaperLib.teleportAsync(player, location, PlayerTeleportEvent.TeleportCause.COMMAND).thenAccept(result -> {
|
||||
if (result) {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + lang("now.at.homebase", player, state.getClanName()));
|
||||
} else {
|
||||
plugin.getLogger().log(Level.WARNING, "An error occurred while teleporting a player");
|
||||
}
|
||||
});
|
||||
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + MessageFormat.format(plugin.getLang("now.at.homebase"), state.getClanName()));
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.moved.teleport.cancelled"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.moved.teleport.cancelled",player));
|
||||
}
|
||||
|
||||
iter.remove();
|
||||
} else {
|
||||
if (!Helper.isSameBlock(player.getLocation(), state.getLocation())) {
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + plugin.getLang("you.moved.teleport.cancelled"));
|
||||
ChatBlock.sendMessage(player, ChatColor.RED + lang("you.moved.teleport.cancelled",player));
|
||||
iter.remove();
|
||||
} else {
|
||||
ChatBlock.sendMessage(player, ChatColor.AQUA + "" + state.getCounter());
|
||||
|
||||
@@ -34,7 +34,7 @@ public class MySQLCore implements DBCore {
|
||||
this.host = host;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.log = SimpleClans.getLog();
|
||||
this.log = SimpleClans.getInstance().getLogger();
|
||||
initialize();
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
/**
|
||||
@@ -25,29 +27,33 @@ public class SQLiteCore implements DBCore {
|
||||
public SQLiteCore(String dbLocation) {
|
||||
this.dbName = "SimpleClans";
|
||||
this.dbLocation = dbLocation;
|
||||
this.log = SimpleClans.getLog();
|
||||
|
||||
this.log = SimpleClans.getInstance().getLogger();
|
||||
initialize();
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
if (file == null) {
|
||||
|
||||
File dbFolder = new File(dbLocation);
|
||||
|
||||
if (dbName.contains("/") || dbName.contains("\\") || dbName.endsWith(".db")) {
|
||||
log.severe("The database name can not contain: /, \\, or .db");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dbFolder.exists()) {
|
||||
dbFolder.mkdir();
|
||||
}
|
||||
|
||||
file = new File(dbFolder.getAbsolutePath() + File.separator + dbName + ".db");
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
Class.forName("org.sqlite.JDBC");
|
||||
|
||||
connection = DriverManager.getConnection("jdbc:sqlite:" + file.getAbsolutePath());
|
||||
|
||||
} catch (SQLException ex) {
|
||||
log.severe("SQLite exception on initialize " + ex);
|
||||
} catch (ClassNotFoundException ex) {
|
||||
@@ -98,7 +104,6 @@ public class SQLiteCore implements DBCore {
|
||||
@Override
|
||||
public ResultSet select(String query) {
|
||||
try {
|
||||
|
||||
return getConnection().createStatement().executeQuery(query);
|
||||
} catch (SQLException ex) {
|
||||
log.severe("Error at SQL Query: " + ex.getMessage());
|
||||
@@ -114,14 +119,18 @@ 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()) {
|
||||
executeAsync(query, "INSERT");
|
||||
} 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 +140,17 @@ 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()) {
|
||||
executeAsync(query, "UPDATE");
|
||||
} 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 +161,17 @@ 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()) {
|
||||
executeAsync(query, "DELETE");
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,4 +225,25 @@ public class SQLiteCore implements DBCore {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void executeAsync(String query, String sqlType) {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if (connection != null && !connection.isClosed()) {
|
||||
connection.createStatement().executeUpdate(query);
|
||||
}
|
||||
}
|
||||
catch (SQLException ex) {
|
||||
if (!ex.toString().contains("not return ResultSet"))
|
||||
{
|
||||
log.severe("[Thread] Error at SQL " + sqlType + " Query: " + ex);
|
||||
log.severe("[Thread] Query: " + query);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.runTaskAsynchronously(SimpleClans.getInstance());
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.tasks;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
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 static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
for (Clan clan : plugin.getClanManager().getClans()) {
|
||||
final double memberFee = clan.getMemberFee();
|
||||
|
||||
if (clan.isMemberFeeEnabled() && memberFee > 0) {
|
||||
for (ClanPlayer cp : clan.getFeePayers()) {
|
||||
|
||||
final boolean success = plugin.getPermissionsManager()
|
||||
.playerChargeMoney(Bukkit.getOfflinePlayer(cp.getUniqueId()), memberFee);
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (success) {
|
||||
ChatBlock.sendMessage(cp.toPlayer(), ChatColor.AQUA +
|
||||
MessageFormat.format(lang("fee.collected",cp.toPlayer()), memberFee));
|
||||
clan.setBalance(clan.getBalance() + memberFee);
|
||||
plugin.getStorageManager().updateClan(clan);
|
||||
} else {
|
||||
clan.removePlayerFromClan(cp.getUniqueId());
|
||||
clan.addBb(ChatColor.AQUA +
|
||||
MessageFormat.format(lang("bb.fee.player.kicked"), cp.getName()));
|
||||
}
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.tasks;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
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() {
|
||||
int hour = settingsManager.getTasksCollectUpkeepHour();
|
||||
int minute = settingsManager.getTasksCollectUpkeepMinute();
|
||||
long delay = Helper.getDelayTo(hour, minute);
|
||||
|
||||
this.runTaskTimerAsynchronously(SimpleClans.getInstance(), delay * 20, 86400 * 20);
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
if (plugin == null) {
|
||||
throw new IllegalStateException("Use the start() method!");
|
||||
}
|
||||
plugin.getClanManager().getClans().forEach((clan) -> {
|
||||
if (settingsManager.isChargeUpkeepOnlyIfMemberFeeEnabled() && !clan.isMemberFeeEnabled()) {
|
||||
return;
|
||||
}
|
||||
double upkeep = settingsManager.getClanUpkeep();
|
||||
if (settingsManager.isMultiplyUpkeepBySize()) {
|
||||
upkeep = upkeep * clan.getSize();
|
||||
}
|
||||
final double balance = clan.getBalance();
|
||||
if (balance >= upkeep) {
|
||||
clan.setBalance(balance - upkeep);
|
||||
clan.addBb(ChatColor.AQUA + MessageFormat.format(lang("upkeep.collected"), upkeep), false);
|
||||
} else {
|
||||
clan.disband();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.tasks;
|
||||
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author RoinujNosde
|
||||
* @since 2.10.2
|
||||
*
|
||||
*/
|
||||
public class SaveDataTask extends BukkitRunnable {
|
||||
SimpleClans plugin = SimpleClans.getInstance();
|
||||
|
||||
/**
|
||||
* Starts the repetitive task
|
||||
*/
|
||||
public void start() {
|
||||
long interval = plugin.getSettingsManager().getSaveInterval() * 20;
|
||||
runTaskTimerAsynchronously(plugin, interval, interval);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getStorageManager().saveModified();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package net.sacredlabyrinth.phaed.simpleclans.tasks;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.Helper;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
import static net.sacredlabyrinth.phaed.simpleclans.SimpleClans.lang;
|
||||
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
|
||||
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() {
|
||||
int hour = sm.getTasksCollectUpkeepWarningHour();
|
||||
int minute = sm.getTasksCollectUpkeepWarningMinute();
|
||||
long delay = Helper.getDelayTo(hour, minute);
|
||||
|
||||
this.runTaskTimerAsynchronously(plugin, delay * 20, 86400 * 20);
|
||||
}
|
||||
|
||||
/**
|
||||
* (used internally)
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
if (plugin == null) {
|
||||
throw new IllegalStateException("Use the start() method!");
|
||||
}
|
||||
plugin.getClanManager().getClans().forEach((clan) -> {
|
||||
if (sm.isChargeUpkeepOnlyIfMemberFeeEnabled() && !clan.isMemberFeeEnabled()) {
|
||||
return;
|
||||
}
|
||||
final double balance = clan.getBalance();
|
||||
double upkeep = sm.getClanUpkeep();
|
||||
if (sm.isMultiplyUpkeepBySize()) {
|
||||
upkeep = upkeep * clan.getSize();
|
||||
}
|
||||
if (balance < upkeep) {
|
||||
clan.addBb(MessageFormat.format(lang("balance.is.not.enough.for.upkeep"), upkeep), false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,15 +10,15 @@ import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
|
||||
*/
|
||||
public class ThreadUpdateSQL extends Thread {
|
||||
|
||||
Connection Connection;
|
||||
String Query;
|
||||
String TypeSQL;
|
||||
Connection connection;
|
||||
String query;
|
||||
String sqlType;
|
||||
|
||||
public ThreadUpdateSQL(Connection Connection, String Query, String TypeSQL)
|
||||
public ThreadUpdateSQL(Connection connection, String query, String sqlType)
|
||||
{
|
||||
this.Query = Query;
|
||||
this.Connection = Connection;
|
||||
this.TypeSQL = TypeSQL;
|
||||
this.query = query;
|
||||
this.connection = connection;
|
||||
this.sqlType = sqlType;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -26,14 +26,16 @@ public class ThreadUpdateSQL extends Thread {
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Connection.createStatement().executeUpdate(this.Query);
|
||||
if (!connection.isClosed()) {
|
||||
this.connection.createStatement().executeUpdate(this.query);
|
||||
}
|
||||
}
|
||||
catch (SQLException ex)
|
||||
{
|
||||
if (!ex.toString().contains("not return ResultSet"))
|
||||
{
|
||||
SimpleClans.getLog().severe("[Thread] Error at SQL " + this.TypeSQL + " Query: " + ex);
|
||||
SimpleClans.getLog().severe("[Thread] Query: " + this.Query);
|
||||
SimpleClans.getInstance().getLogger().severe("[Thread] Error at SQL " + this.sqlType + " Query: " + ex);
|
||||
SimpleClans.getInstance().getLogger().severe("[Thread] Query: " + this.query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loaded 100 of 173 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user