mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-20 18:53:11 +01:00
Compare commits
160 Commits
gradlelize
...
api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21b4bcc21f | ||
|
|
f96ba1b4b5 | ||
|
|
5ba410f4cf | ||
|
|
88767fd0a9 | ||
|
|
a2c88d657c | ||
|
|
a26216b0d0 | ||
|
|
33e0b40e19 | ||
|
|
31a98791f3 | ||
|
|
c2bbe33fe8 | ||
|
|
12abd68add | ||
|
|
326ff1cd70 | ||
|
|
9f0fe26778 | ||
|
|
0a59b79ef9 | ||
|
|
441125dbd1 | ||
|
|
27b1c6b094 | ||
|
|
d661a77c82 | ||
|
|
db70d56493 | ||
|
|
eff1ce102f | ||
|
|
705b57a30b | ||
|
|
d4ba9d7605 | ||
|
|
f50b368b60 | ||
|
|
3b3396ce2c | ||
|
|
4cd91350db | ||
|
|
1204b9a94c | ||
|
|
b3bea7833f | ||
|
|
b0c7e0368a | ||
|
|
4e895b7361 | ||
|
|
6168309ec9 | ||
|
|
95c403a467 | ||
|
|
a598796c99 | ||
|
|
a333f36fd8 | ||
|
|
7c6d5c476d | ||
|
|
e2073ff9f7 | ||
|
|
8f26544188 | ||
|
|
4e21f1a200 | ||
|
|
ab6dbe306d | ||
|
|
19a4c0238f | ||
|
|
c071471bdf | ||
|
|
85550c5750 | ||
|
|
3c382a11ed | ||
|
|
f45c70b694 | ||
|
|
38d64f207d | ||
|
|
2d342f8a3d | ||
|
|
3b276b59cf | ||
|
|
4ff4def56a | ||
|
|
63de093ebb | ||
|
|
b34f0d62d6 | ||
|
|
a74f33c96d | ||
|
|
8e8024e3e1 | ||
|
|
4f161812aa | ||
|
|
24ba3b1a01 | ||
|
|
359e3e34ad | ||
|
|
ab0fc06dc2 | ||
|
|
11ca0d9ff1 | ||
|
|
4eef4a3e41 | ||
|
|
c2bbbdf24f | ||
|
|
c916070cd1 | ||
|
|
48e547e51f | ||
|
|
4ee86bf6a6 | ||
|
|
816b64cb70 | ||
|
|
dceee5554d | ||
|
|
e3edc9a18f | ||
|
|
aaffafb88b | ||
|
|
2e5a12a72b | ||
|
|
769a26a911 | ||
|
|
8094be46c8 | ||
|
|
2525ce9abe | ||
|
|
47bcd1223b | ||
|
|
ea70c937f2 | ||
|
|
3eb160a794 | ||
|
|
4b6e2c35b2 | ||
|
|
550a3df616 | ||
|
|
657abb76a7 | ||
|
|
0ffcff53b3 | ||
|
|
33f4ac14b5 | ||
|
|
15d3119627 | ||
|
|
4fd94bfe29 | ||
|
|
ac731258c7 | ||
|
|
7b8c90d362 | ||
|
|
055391e908 | ||
|
|
cd6ce5a19d | ||
|
|
7441d2d8d6 | ||
|
|
7b941baa1c | ||
|
|
21a0a05683 | ||
|
|
0c1fa07079 | ||
|
|
539cd7290e | ||
|
|
406429f4e3 | ||
|
|
ec58a0e81f | ||
|
|
40802e6bae | ||
|
|
421a394f68 | ||
|
|
d4adb490e2 | ||
|
|
de5a8babc5 | ||
|
|
d892bfe83a | ||
|
|
ceaff0c862 | ||
|
|
a118d8465e | ||
|
|
7c156319be | ||
|
|
24b3bf1100 | ||
|
|
41bdca948a | ||
|
|
5441a7eb96 | ||
|
|
c45f2ce406 | ||
|
|
3cbbf1bee0 | ||
|
|
8fd1af4cbf | ||
|
|
601297799f | ||
|
|
da98be88ad | ||
|
|
1104f48ad5 | ||
|
|
af50699de1 | ||
|
|
1c71f1daf5 | ||
|
|
b7dd491c01 | ||
|
|
3ce0d7b972 | ||
|
|
9dcbccb010 | ||
|
|
c5cbab39b6 | ||
|
|
ca1906fbc5 | ||
|
|
7eab20ef56 | ||
|
|
25a9c75a5a | ||
|
|
9911c406f8 | ||
|
|
fdb900ec5d | ||
|
|
bf94073935 | ||
|
|
bfcc167862 | ||
|
|
2a606b1ed1 | ||
|
|
edc8701e35 | ||
|
|
188b0f9813 | ||
|
|
e6c9cc6fdd | ||
|
|
76ca7cc88f | ||
|
|
335d708848 | ||
|
|
b4179cb9a6 | ||
|
|
8bbf95e9da | ||
|
|
dc805825de | ||
|
|
871ca744d9 | ||
|
|
1b091bdbd5 | ||
|
|
f8a14a7ab3 | ||
|
|
eee09d8d76 | ||
|
|
31dc7bf03f | ||
|
|
1fbcf698c6 | ||
|
|
7be849da2a | ||
|
|
b572494c9c | ||
|
|
143714c9eb | ||
|
|
a84a9e9c38 | ||
|
|
110d9a633b | ||
|
|
584859318b | ||
|
|
4bff07bd2b | ||
|
|
365938f351 | ||
|
|
7f6bbadc1c | ||
|
|
ec1fdea40d | ||
|
|
8febe2d0bd | ||
|
|
6e0f8f99fa | ||
|
|
1eb2c7b2d7 | ||
|
|
3310a12a95 | ||
|
|
433f6d085d | ||
|
|
0509f4f63e | ||
|
|
d2028321d4 | ||
|
|
4437f419cb | ||
|
|
a58d875d74 | ||
|
|
154d0a8d50 | ||
|
|
9e01a07542 | ||
|
|
f13364eb04 | ||
|
|
b763a56d75 | ||
|
|
c7d2631a79 | ||
|
|
0cea66a084 | ||
|
|
6125b3fbd2 | ||
|
|
1b889b8177 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -2,3 +2,4 @@
|
|||||||
|
|
||||||
*.png binary
|
*.png binary
|
||||||
*.wav binary
|
*.wav binary
|
||||||
|
p
|
||||||
12
.github/FUNDING.yml
vendored
Normal file
12
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: [nossr50] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
|
patreon: nossr50 # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
liberapay: # Replace with a single Liberapay username
|
||||||
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
|
otechie: # Replace with a single Otechie username
|
||||||
|
custom: https://paypal.me/nossr50 # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -9,6 +9,10 @@ dist/
|
|||||||
nbdist/
|
nbdist/
|
||||||
.nb-gradle/
|
.nb-gradle/
|
||||||
|
|
||||||
|
### Bash Scripts
|
||||||
|
*.sh
|
||||||
|
!mcmmo-core/src/main/resources/com/gmail/nossr50/locale/doTranslation.sh
|
||||||
|
|
||||||
### JetBrains template
|
### JetBrains template
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ Version 2.2.0
|
|||||||
!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
mcMMO's config system has been rewritten
|
mcMMO's config system has been rewritten
|
||||||
|
Retro and Standard mode have been removed, now levels are based around 1-1000 and are changed based on a new setting
|
||||||
|
Added Cosmetic Level Scaling setting to the leveling config, you can use this to for example, make the max level 100 instead of 1000
|
||||||
|
mcMMO build management is now handled by Gradle (KTS) instead of Maven
|
||||||
Nearly every config setting has been renamed and most have brand new comments
|
Nearly every config setting has been renamed and most have brand new comments
|
||||||
You can now add an unlimited number of custom XP perks with custom defined XP boosts
|
You can now add an unlimited number of custom XP perks with custom defined XP boosts
|
||||||
Added new subskill to Fishing named 'Inner Peace'
|
Added new subskill to Fishing named 'Inner Peace'
|
||||||
@@ -199,8 +202,86 @@ Version 2.2.0
|
|||||||
Added API method to grab the level cap of a skill by its PrimarySkillType ENUM definition
|
Added API method to grab the level cap of a skill by its PrimarySkillType ENUM definition
|
||||||
Added API method to check if a skill was being level capped
|
Added API method to check if a skill was being level capped
|
||||||
Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill
|
Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill
|
||||||
|
|
||||||
|
Version 2.1.118
|
||||||
|
Fixed another dupe bug
|
||||||
|
Blast Mining no longer reduces debris from explosions due to some issues with the Bukkit API
|
||||||
|
Modified locale string 'Mining.Blast.Effect' to remove debris reduction mention
|
||||||
|
Rupture now fires a FakeEntityDamageByEntityEvent before damaging its victims (cancelling it will be ignored)
|
||||||
|
|
||||||
|
Version 2.1.117
|
||||||
|
Fixed a rare http error when polling Mojang for UUIDs
|
||||||
|
Fixed a bug that allowed duping
|
||||||
|
|
||||||
|
Version 2.1.116
|
||||||
|
Fixed directional plants not maintaining their direction when replanted
|
||||||
|
|
||||||
|
Version 2.1.115
|
||||||
|
Green Thumb now requires a hoe to activate
|
||||||
|
Hoes no longer give free replants
|
||||||
|
You can sneak to break plants with a hoe in your hand (or just put the hoe away)
|
||||||
|
Using a hoe on non-fully grown crops will replant them as a convenience feature
|
||||||
|
New sound option in sounds.yml called 'ITEM_CONSUMED', plays when eating seeds for Green Thumb
|
||||||
|
Cocoa plants now require GT of at least 2 to start at the second stage of growth
|
||||||
|
Green Terra now boosts growth on Green Thumb by 1 stage (doesn't go above the maximum value though)
|
||||||
|
There is now a feature in place to prevent breaking a newly automatically replanted (via green thumb) crop from being breakable for a few seconds after it appears
|
||||||
|
Fixed a bug where Salvage always gave the best results
|
||||||
|
Fixed an issue with arrows causing exceptions with players not yet having data loaded
|
||||||
|
Spectral arrows are now tracked by mcMMO
|
||||||
|
Use minimum level of salvageable properly
|
||||||
|
Fix Axes Critical Strikes default permissions ( new fixed permission: mcmmo.ability.axes.criticalstrikes )
|
||||||
|
Fix potential null pointer exception for salvage
|
||||||
|
Updated locale entry 'Herbalism.SubSkill.GreenTerra.Description'
|
||||||
|
|
||||||
|
Version 2.1.114
|
||||||
|
Fix some more locale usages, should aim to further prevent issues with oddball locales
|
||||||
|
Fixed a bug where newer versions of MySQL did not like our rank command
|
||||||
|
Added a new setting to turn off the Snow Golem Exploit prevention to experience.yml next to the other exploit fixes
|
||||||
|
Fixed a bug which stopped the optional Endermite XP exploit fix from working
|
||||||
|
|
||||||
|
Version 2.1.113
|
||||||
|
Activating Berserk on a soft block (glass, snow, dirts) will break that material right away instead of only breaking subsequent blocks hit by the player
|
||||||
|
Berserk will now break glass and glass pane blocks
|
||||||
|
Hitting glass with berserk readied will activate it
|
||||||
|
Added GLASS settings to sounds.yml for Berserk
|
||||||
|
Fixed bug where BlockCracker didn't work on infested_stone_bricks
|
||||||
|
Fixed a bug where beacons could be duplicated
|
||||||
|
Check player's PTP world permissions before executing a party teleport
|
||||||
|
Improved how mcMMO handles randomness
|
||||||
|
|
||||||
|
Version 2.1.112
|
||||||
|
Correct locale usage for enum access, now enforces using the english locale to prevent issues with oddball locales for configs/commands
|
||||||
|
Fixed a NPE that can occur if a player engages in combat with specific skills before their profile is loaded
|
||||||
|
mcMMO is now more compatible with certain mob stacking plugins
|
||||||
|
Improved behaviour for mob health bars
|
||||||
|
Archery's Skill Shot bonus damage is now multiplicative instead of additive (nerfing early game skill shot ranks)
|
||||||
|
Sweet Berry Bush's default Herbalism XP is now 50 instead of 300 (Update your experience.yml or delete it to generate a new one)
|
||||||
|
|
||||||
|
Version 2.1.111
|
||||||
|
mcMMO is compatible with the following versions of MC: 1.15 / 1.14.4 / 1.14.3 / 1.14.2 / 1.14.1 / 1.14 / 1.13.2
|
||||||
|
Further prevent nesting of bleed damage calls
|
||||||
|
Warn about reparable/salvage configs with missing sections
|
||||||
|
Added Bee combat experience modifier to experience.yml (Update your experience.yml file, see notes)
|
||||||
|
Breaking a Bee Nest will result in Herbalism XP (Update your experience.yml file, see notes)
|
||||||
|
Breeding bees will now result in Taming XP (Update your experience.yml file, see notes)
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
You will need to update your experience.yml by hand or delete it to get XP from new things in 1.15
|
||||||
|
The default version of mcMMO's experience.yml looks like this: https://paste.gg/p/anonymous/15c34df6e60d45d9a3508b379a5e6514
|
||||||
|
You'll want to add Bee to combat XP section, and Bee_Nest to Herbalism XP, and Bee to Taming XP section.
|
||||||
|
|
||||||
|
Version 2.1.110
|
||||||
|
Fixed a dupe bug
|
||||||
|
Actually fixed Block Cracker
|
||||||
|
You can now crack Infested Stone Bricks with Block Cracker
|
||||||
|
Added Lithuanian locale (thanks Vyciokazz)
|
||||||
|
|
||||||
Version 2.1.109
|
Version 2.1.109
|
||||||
|
Block Cracker will now correctly crack stone_bricks during Berserk again
|
||||||
|
Added Lily_Of_The_Valley to the Bonus Drops list in config.yml (you'll probably want to add this manually) which enables it to double drop
|
||||||
Added missing 1.14 blocks to ability/tool activation blacklists
|
Added missing 1.14 blocks to ability/tool activation blacklists
|
||||||
|
Fixed spamming of incompatible worldguard version message
|
||||||
|
Updated Italian locale (thanks Fabrimat)
|
||||||
|
|
||||||
Version 2.1.108
|
Version 2.1.108
|
||||||
Fixed an amusing exploit for easy leveling in Acrobatics
|
Fixed an amusing exploit for easy leveling in Acrobatics
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ subprojects {
|
|||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
maven("https://oss.sonatype.org/content/groups/public/")
|
||||||
maven("https://repo.spongepowered.org/maven")
|
maven("https://repo.spongepowered.org/maven")
|
||||||
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshoits")
|
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots")
|
||||||
maven("https://repo.codemc.org/repository/maven-public")
|
maven("https://repo.codemc.org/repository/maven-public")
|
||||||
maven("https://maven.sk89q.com/repo")
|
maven("https://maven.sk89q.com/repo")
|
||||||
maven("https://mvnrepository.com/artifact/org.jetbrains/annotations")
|
maven("https://mvnrepository.com/artifact/org.jetbrains/annotations")
|
||||||
|
maven("https://repo.aikar.co/content/groups/aikar/")
|
||||||
|
maven("https://hub.spigotmc.org/nexus/content/groups/public/")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
@@ -23,4 +27,4 @@ subprojects {
|
|||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
version=2.3.0-SNAPSHOT
|
version=2.2.0-SNAPSHOT
|
||||||
group=com.gmail.nossr50.mcMMO
|
group=com.gmail.nossr50.mcMMO
|
||||||
artifactId=mcMMO
|
artifactId=mcMMO
|
||||||
name=mcMMO
|
name=mcMMO
|
||||||
|
|||||||
9
mcmmo-api/build.gradle.kts
Normal file
9
mcmmo-api/build.gradle.kts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
plugins {
|
||||||
|
`java-library`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api("org.jetbrains:annotations:17.0.0")
|
||||||
|
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api;
|
||||||
|
|
||||||
|
public interface McMMOApi {
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.data;
|
||||||
|
|
||||||
|
public interface MMOEntity<N> {
|
||||||
|
|
||||||
|
N getNative();
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.data;
|
||||||
|
|
||||||
|
public interface MMOPlayer<N> extends MMOEntity<N> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import co.aikar.commands.CommandIssuer;
|
||||||
|
import co.aikar.commands.CommandManager;
|
||||||
|
import co.aikar.commands.CommandOperationContext;
|
||||||
|
|
||||||
|
public interface PlatformProvider<E> {
|
||||||
|
|
||||||
|
Logger getLogger();
|
||||||
|
|
||||||
|
void tearDown();
|
||||||
|
|
||||||
|
MetadataStore getMetadataStore();
|
||||||
|
|
||||||
|
File getDataFolder();
|
||||||
|
|
||||||
|
String getVersion();
|
||||||
|
|
||||||
|
void earlyInit();
|
||||||
|
|
||||||
|
boolean isSupported(boolean print);
|
||||||
|
|
||||||
|
default boolean isSupported() {
|
||||||
|
return isSupported(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
ServerSoftwareType getServerType();
|
||||||
|
|
||||||
|
void onLoad();
|
||||||
|
|
||||||
|
void printUnsupported();
|
||||||
|
|
||||||
|
PlatformScheduler getScheduler();
|
||||||
|
|
||||||
|
void checkMetrics();
|
||||||
|
|
||||||
|
MobHealthBarManager getHealthBarManager();
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
void registerCustomRecipes();
|
||||||
|
|
||||||
|
CommandManager getCommandManager();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// EVIL - EVILNESS FROM BEYOND THIS POINT - EVIL
|
||||||
|
// THOU HAST BEEN WARNED
|
||||||
|
@Deprecated
|
||||||
|
MMOEntity<?> getEntity(UUID uniqueId);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
MMOEntity<?> getEntity(E uniqueId);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
Object getChimaeraWing();
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform;
|
||||||
|
|
||||||
|
public enum ServerSoftwareType {
|
||||||
|
PAPER("Paper"),
|
||||||
|
SPIGOT("Spigot"),
|
||||||
|
CRAFTBUKKIT("CraftBukkit");
|
||||||
|
|
||||||
|
private final String friendlyName;
|
||||||
|
|
||||||
|
ServerSoftwareType(String friendlyName) {
|
||||||
|
|
||||||
|
this.friendlyName = friendlyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFriendlyName() {
|
||||||
|
return friendlyName;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public interface PlatformScheduler {
|
||||||
|
|
||||||
|
TaskBuilder getTaskBuilder();
|
||||||
|
|
||||||
|
Task scheduleTask(TaskBuilder taskBuilder);
|
||||||
|
|
||||||
|
|
||||||
|
abstract class TaskBuilder {
|
||||||
|
Long delay;
|
||||||
|
Long repeatTime;
|
||||||
|
|
||||||
|
public boolean isAsync() {
|
||||||
|
return isAsync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TaskBuilder setAsync(boolean async) {
|
||||||
|
isAsync = async;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isAsync = false;
|
||||||
|
Consumer<Task> task;
|
||||||
|
|
||||||
|
public Long getDelay() {
|
||||||
|
return delay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TaskBuilder setDelay(Long delay) {
|
||||||
|
this.delay = delay;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getRepeatTime() {
|
||||||
|
return repeatTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TaskBuilder setRepeatTime(Long repeatTime) {
|
||||||
|
this.repeatTime = repeatTime;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Consumer<Task> getTask() {
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TaskBuilder setTask(Consumer<Task> task) {
|
||||||
|
this.task = task;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public TaskBuilder setTask(Runnable runnableTask) {
|
||||||
|
this.setTask(task -> runnableTask.run());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract Task schedule();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
|
||||||
|
|
||||||
|
public interface Task {
|
||||||
|
|
||||||
|
void cancel();
|
||||||
|
|
||||||
|
void run();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class MetadataKey<V> {
|
||||||
|
|
||||||
|
private final String key;
|
||||||
|
|
||||||
|
public MetadataKey(@NotNull String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
|
||||||
|
public interface MetadataStore<E extends MMOEntity<?>> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metadata
|
||||||
|
* @param key key for the metdata
|
||||||
|
* @param <V> value type
|
||||||
|
* @return the metadata value or null
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<V> V getMetadata(@NotNull E holder, @NotNull MetadataKey<V> key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metdata
|
||||||
|
* @param key metadata key
|
||||||
|
* @param value metadata value
|
||||||
|
* @param <V> value type
|
||||||
|
*/
|
||||||
|
<V> void setMetadata(@NotNull E holder, @NotNull MetadataKey<V> key, @NotNull V value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metadata
|
||||||
|
* @param key metadata key
|
||||||
|
* @param <V> value type
|
||||||
|
* @return the removed metadata key
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<V> V removeMetadata(@NotNull E holder, @NotNull MetadataKey<V> key);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||||
|
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||||
|
|
||||||
|
@Deprecated // Not really deprecated, just /really/ needs a do-over...
|
||||||
|
public interface MobHealthBarManager<PT, ET> {
|
||||||
|
/**
|
||||||
|
* Fix issues with death messages caused by the mob healthbars.
|
||||||
|
*
|
||||||
|
* @param deathMessage The original death message
|
||||||
|
* @param player The player who died
|
||||||
|
* @return the fixed death message
|
||||||
|
*/
|
||||||
|
public String fixDeathMessage(String deathMessage, MMOPlayer<PT> player);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the creation of mob healthbars.
|
||||||
|
*
|
||||||
|
* @param target the targetted entity
|
||||||
|
* @param damage damage done by the attack triggering this
|
||||||
|
*/
|
||||||
|
public void handleMobHealthbars(MMOEntity<ET> target, double damage);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
49
mcmmo-bukkit/build.gradle.kts
Normal file
49
mcmmo-bukkit/build.gradle.kts
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
`java-library`
|
||||||
|
id("com.github.johnrengelman.shadow") version "5.1.0"
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
|
||||||
|
build {
|
||||||
|
dependsOn(shadowJar)
|
||||||
|
}
|
||||||
|
|
||||||
|
shadowJar {
|
||||||
|
/*
|
||||||
|
dependencies {
|
||||||
|
include(dependency("org.bstats:bstats-bukkit"))
|
||||||
|
include(project(":mcmmo-api"))
|
||||||
|
include(project(":mcmmo-core"))
|
||||||
|
include(project(":mcmmo-bukkit"))
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
|
||||||
|
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
|
||||||
|
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
|
||||||
|
relocate("org.bstats", "com.gmail.nossr50.metrics.bstat")
|
||||||
|
}
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
filter<ReplaceTokens>("tokens" to mapOf("project.version" to project.version))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile(project(":mcmmo-api"))
|
||||||
|
compile(project(":mcmmo-core"))
|
||||||
|
|
||||||
|
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||||
|
api("net.kyori:event-api:3.0.0")
|
||||||
|
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||||
|
implementation("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||||
|
implementation("org.bstats:bstats-bukkit:1.4")
|
||||||
|
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
|
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||||
|
testImplementation("junit:junit:4.10")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
|
import com.gmail.nossr50.listeners.*;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.PlatformProvider;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.ServerSoftwareType;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.platform.entity.BukkitMMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.platform.scheduler.BukkitPlatformScheduler;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMetadataStore;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMobHealthBarManager;
|
||||||
|
import org.bstats.bukkit.Metrics;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.Recipe;
|
||||||
|
import org.bukkit.inventory.ShapelessRecipe;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import co.aikar.commands.CommandManager;
|
||||||
|
import co.aikar.commands.PaperCommandManager;
|
||||||
|
|
||||||
|
public class BukkitBootstrap extends JavaPlugin implements PlatformProvider<Entity> {
|
||||||
|
|
||||||
|
private mcMMO core = new mcMMO(this);
|
||||||
|
private final BukkitPlatformScheduler scheduler = new BukkitPlatformScheduler(this);
|
||||||
|
private final MobHealthBarManager healthBarManager = new BukkitMobHealthBarManager(this, core);
|
||||||
|
private final BukkitMetadataStore bukkitMetadataStore = new BukkitMetadataStore(this);
|
||||||
|
|
||||||
|
private PaperCommandManager paperCommandManager;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull Logger getLogger() {
|
||||||
|
return super.getLogger();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tearDown() {
|
||||||
|
core.debug("Canceling all tasks...");
|
||||||
|
getServer().getScheduler().cancelTasks(this); // This removes our tasks
|
||||||
|
core.debug("Unregister all events...");
|
||||||
|
HandlerList.unregisterAll(this); // Cancel event registrations
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MetadataStore<MMOEntity<Entity>> getMetadataStore() {
|
||||||
|
return bukkitMetadataStore;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getVersion() {
|
||||||
|
return getDescription().getVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void earlyInit() {
|
||||||
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||||
|
if (pluginManager.getPlugin("NoCheatPlus") != null && pluginManager.getPlugin("CompatNoCheatPlus") == null) {
|
||||||
|
getLogger().warning("NoCheatPlus plugin found, but CompatNoCheatPlus was not found!");
|
||||||
|
getLogger().warning("mcMMO will not work properly alongside NoCheatPlus without CompatNoCheatPlus");
|
||||||
|
}
|
||||||
|
|
||||||
|
registerEvents();
|
||||||
|
paperCommandManager = new PaperCommandManager(this);
|
||||||
|
paperCommandManager.registerDependency(mcMMO.class, core);
|
||||||
|
MetadataConstants.metadataValue = new FixedMetadataValue(this, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSupported(boolean print) {
|
||||||
|
boolean ret = getServerType() != ServerSoftwareType.CRAFTBUKKIT;
|
||||||
|
if (!ret) {
|
||||||
|
Bukkit
|
||||||
|
.getScheduler()
|
||||||
|
.scheduleSyncRepeatingTask(this,
|
||||||
|
() -> getLogger().severe("You are running an outdated version of " + getServerType() + ", mcMMO will not work unless you update to a newer version!"),
|
||||||
|
20, 20 * 60 * 30);
|
||||||
|
|
||||||
|
if (getServerType() == ServerSoftwareType.CRAFTBUKKIT) {
|
||||||
|
Bukkit.getScheduler()
|
||||||
|
.scheduleSyncRepeatingTask(this,
|
||||||
|
() -> getLogger().severe("We have detected you are using incompatible server software, our best guess is that you are using CraftBukkit. mcMMO requires Spigot or Paper, if you are not using CraftBukkit, you will still need to update your custom server software before mcMMO will work."),
|
||||||
|
20, 20 * 60 * 30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServerSoftwareType getServerType() {
|
||||||
|
if (Bukkit.getVersion().toLowerCase(Locale.ENGLISH).contains("paper"))
|
||||||
|
return ServerSoftwareType.PAPER;
|
||||||
|
else if (Bukkit.getVersion().toLowerCase(Locale.ENGLISH).contains("spigot"))
|
||||||
|
return ServerSoftwareType.SPIGOT;
|
||||||
|
else
|
||||||
|
return ServerSoftwareType.CRAFTBUKKIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void printUnsupported() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlatformScheduler getScheduler() {
|
||||||
|
return scheduler;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void checkMetrics() {
|
||||||
|
//If anonymous statistics are enabled then use them
|
||||||
|
if (core.getConfigManager().getConfigMetrics().isAllowAnonymousUsageStatistics()) {
|
||||||
|
Metrics metrics;
|
||||||
|
metrics = new Metrics(this);
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("version", this::getVersion));
|
||||||
|
|
||||||
|
int levelScaleModifier = core.getConfigManager().getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().getCosmeticLevelScaleModifier();
|
||||||
|
|
||||||
|
if (levelScaleModifier == 10)
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Standard"));
|
||||||
|
else if (levelScaleModifier == 1)
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Retro"));
|
||||||
|
else
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("scaling", () -> "Custom"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MobHealthBarManager getHealthBarManager() {
|
||||||
|
return healthBarManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerCustomRecipes() {
|
||||||
|
getServer().getScheduler().scheduleSyncDelayedTask(this, () -> {
|
||||||
|
if (core.getConfigManager().getConfigItems().isChimaeraWingEnabled()) {
|
||||||
|
Recipe recipe = getChimaeraWingRecipe();
|
||||||
|
|
||||||
|
if(!core.getSkillTools().hasRecipeBeenRegistered(recipe))
|
||||||
|
getServer().addRecipe(getChimaeraWingRecipe());
|
||||||
|
}
|
||||||
|
}, 40);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommandManager getCommandManager() {
|
||||||
|
return paperCommandManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Deprecated // TODO: This needs proper registration...
|
||||||
|
public MMOEntity<?> getEntity(UUID uniqueId) {
|
||||||
|
return getEntity(Bukkit.getEntity(uniqueId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MMOEntity<?> getEntity(Entity entity) {
|
||||||
|
if (entity instanceof Player) {
|
||||||
|
core.getUserManager().getPlayer((Player) entity);
|
||||||
|
} else if (entity instanceof LivingEntity) {
|
||||||
|
return new BukkitMMOEntity(entity);
|
||||||
|
} else if (entity != null){
|
||||||
|
return new BukkitMMOEntity(entity);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Add this stuff to DSM, this location is temporary
|
||||||
|
//TODO: even more temp here....
|
||||||
|
private ShapelessRecipe getChimaeraWingRecipe() {
|
||||||
|
Material ingredient = Material.matchMaterial(core.getConfigManager().getConfigItems().getChimaeraWingRecipeMats());
|
||||||
|
|
||||||
|
if(ingredient == null)
|
||||||
|
ingredient = Material.FEATHER;
|
||||||
|
|
||||||
|
int amount = core.getConfigManager().getConfigItems().getChimaeraWingUseCost();
|
||||||
|
|
||||||
|
ShapelessRecipe chimaeraWing = new ShapelessRecipe(new NamespacedKey(this, "Chimaera"), getChimaeraWing());
|
||||||
|
chimaeraWing.addIngredient(amount, ingredient);
|
||||||
|
return chimaeraWing;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: Add this stuff to DSM, this location is temporary
|
||||||
|
public ItemStack getChimaeraWing() {
|
||||||
|
Material ingredient = Material.matchMaterial(core.getConfigManager().getConfigItems().getChimaeraWingRecipeMats());
|
||||||
|
|
||||||
|
if(ingredient == null)
|
||||||
|
ingredient = Material.FEATHER;
|
||||||
|
|
||||||
|
//TODO: Make it so Chimaera wing amounts made is customizeable
|
||||||
|
ItemStack itemStack = new ItemStack(ingredient, 1);
|
||||||
|
|
||||||
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
itemMeta.setDisplayName(ChatColor.GOLD + core.getLocaleManager().getString("Item.ChimaeraWing.Name"));
|
||||||
|
|
||||||
|
List<String> itemLore = new ArrayList<>();
|
||||||
|
itemLore.add("mcMMO Item");
|
||||||
|
itemLore.add(core.getLocaleManager().getString("Item.ChimaeraWing.Lore"));
|
||||||
|
itemMeta.setLore(itemLore);
|
||||||
|
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerEvents() {
|
||||||
|
PluginManager pluginManager = getServer().getPluginManager();
|
||||||
|
|
||||||
|
// Register events
|
||||||
|
pluginManager.registerEvents(new PlayerListener(core), this);
|
||||||
|
pluginManager.registerEvents(new BlockListener(core), this);
|
||||||
|
pluginManager.registerEvents(new EntityListener(core), this);
|
||||||
|
pluginManager.registerEvents(new InventoryListener(core), this);
|
||||||
|
pluginManager.registerEvents(new SelfListener(core), this);
|
||||||
|
pluginManager.registerEvents(new WorldListener(core), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoad() {
|
||||||
|
core.onLoad();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
core.onEnable();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.entity;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
|
||||||
|
public class BukkitMMOEntity implements MMOEntity<Entity> {
|
||||||
|
|
||||||
|
Entity entity;
|
||||||
|
|
||||||
|
public BukkitMMOEntity(Entity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity getNative() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.entity.living;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
|
||||||
|
public class BukkitMMOLivingEntity implements MMOEntity<LivingEntity> {
|
||||||
|
|
||||||
|
LivingEntity entity;
|
||||||
|
|
||||||
|
public BukkitMMOLivingEntity(LivingEntity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LivingEntity getNative() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.scheduler;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public class BukkitPlatformScheduler implements PlatformScheduler {
|
||||||
|
|
||||||
|
private final BukkitBootstrap bukkitBootstrap;
|
||||||
|
|
||||||
|
public BukkitPlatformScheduler(BukkitBootstrap bukkitBootstrap) {
|
||||||
|
this.bukkitBootstrap = bukkitBootstrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskBuilder getTaskBuilder() {
|
||||||
|
return new TaskBuilder() {
|
||||||
|
@Override
|
||||||
|
public Task schedule() {
|
||||||
|
return BukkitPlatformScheduler.this.scheduleTask(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Task scheduleTask(TaskBuilder taskBuilder) {
|
||||||
|
final Long repeatTime = taskBuilder.getRepeatTime();
|
||||||
|
final Long delay = taskBuilder.getDelay();
|
||||||
|
final boolean isAsync = taskBuilder.isAsync();
|
||||||
|
final Consumer<Task> taskConsumer = taskBuilder.getTask();
|
||||||
|
|
||||||
|
final MMOBukkitTask task = new MMOBukkitTask(taskConsumer);
|
||||||
|
final BukkitScheduler bukkitScheduler = Bukkit.getScheduler();
|
||||||
|
|
||||||
|
final BukkitTask bukkitTask;
|
||||||
|
if (!isAsync) {
|
||||||
|
if (delay == null && repeatTime == null) {
|
||||||
|
bukkitTask = bukkitScheduler.runTask(bukkitBootstrap, task);
|
||||||
|
} else if (delay != null && repeatTime == null) {
|
||||||
|
bukkitTask = bukkitScheduler.runTaskLater(bukkitBootstrap, task, delay);
|
||||||
|
} else {
|
||||||
|
bukkitTask = bukkitScheduler.runTaskTimer(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (delay == null && repeatTime == null) {
|
||||||
|
bukkitTask = bukkitScheduler.runTaskAsynchronously(bukkitBootstrap, task);
|
||||||
|
} else if (delay != null && repeatTime == null) {
|
||||||
|
bukkitTask = bukkitScheduler.runTaskLaterAsynchronously(bukkitBootstrap, task, delay);
|
||||||
|
} else {
|
||||||
|
bukkitTask = bukkitScheduler.runTaskTimerAsynchronously(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task.setBukkitTask(bukkitTask);
|
||||||
|
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.scheduler;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public class MMOBukkitTask implements Task, Runnable {
|
||||||
|
Consumer<Task> task;
|
||||||
|
private BukkitTask bukkitTask;
|
||||||
|
|
||||||
|
public MMOBukkitTask(Consumer<Task> task) {
|
||||||
|
this.task = task;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel() {
|
||||||
|
Preconditions.checkState(bukkitTask != null, "Cannot cancel an an unscheduled task!");
|
||||||
|
bukkitTask.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
task.accept(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBukkitTask(BukkitTask bukkitTask) {
|
||||||
|
this.bukkitTask = bukkitTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.util;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
|
import com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.metadata.MetadataValue;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public class BukkitMetadataStore implements MetadataStore<MMOEntity<Entity>> {
|
||||||
|
private final BukkitBootstrap bukkitBootstrap;
|
||||||
|
|
||||||
|
public BukkitMetadataStore(BukkitBootstrap bukkitBootstrap) {
|
||||||
|
this.bukkitBootstrap = bukkitBootstrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <V> @Nullable V getMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key) {
|
||||||
|
final List<MetadataValue> metadata = holder.getNative().getMetadata(key.getKey());
|
||||||
|
if (!metadata.isEmpty()) {
|
||||||
|
return (V) metadata.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <V> void setMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key, @NotNull V value) {
|
||||||
|
holder.getNative().setMetadata(key.getKey(), new FixedMetadataValue(bukkitBootstrap, (V) value));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <V> @Nullable V removeMetadata(@NotNull MMOEntity<Entity> holder, @NotNull MetadataKey<V> key) {
|
||||||
|
final List<MetadataValue> metadata = holder.getNative().getMetadata(key.getKey());
|
||||||
|
if (!metadata.isEmpty()) {
|
||||||
|
holder.getNative().removeMetadata(key.getKey(), bukkitBootstrap);
|
||||||
|
}
|
||||||
|
return (V) metadata.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,22 +1,39 @@
|
|||||||
package com.gmail.nossr50.util;
|
package com.gmail.nossr50.mcmmo.bukkit.platform.util;
|
||||||
|
|
||||||
import com.gmail.nossr50.core.MetadataConstants;
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
import com.gmail.nossr50.datatypes.MobHealthbarType;
|
||||||
import com.gmail.nossr50.datatypes.meta.OldName;
|
import com.gmail.nossr50.datatypes.meta.OldName;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||||
import com.gmail.nossr50.runnables.MobHealthDisplayUpdaterTask;
|
import com.gmail.nossr50.runnables.MobHealthDisplayUpdaterTask;
|
||||||
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
public final class MobHealthBarManager {
|
public final class BukkitMobHealthBarManager implements MobHealthBarManager<Player, LivingEntity> {
|
||||||
|
private final Plugin plugin;
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
private final boolean healthBarPluginEnabled;
|
||||||
|
|
||||||
public MobHealthBarManager(mcMMO pluginRef) {
|
public BukkitMobHealthBarManager(Plugin plugin, mcMMO pluginRef) {
|
||||||
|
this.plugin = plugin;
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
|
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
||||||
|
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
||||||
|
|
||||||
|
if (healthBarPluginEnabled) {
|
||||||
|
pluginRef.getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled.");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,8 +43,9 @@ public final class MobHealthBarManager {
|
|||||||
* @param player The player who died
|
* @param player The player who died
|
||||||
* @return the fixed death message
|
* @return the fixed death message
|
||||||
*/
|
*/
|
||||||
public String fixDeathMessage(String deathMessage, Player player) {
|
@Override
|
||||||
EntityDamageEvent lastDamageCause = player.getLastDamageCause();
|
public String fixDeathMessage(String deathMessage, MMOPlayer<Player> player) {
|
||||||
|
EntityDamageEvent lastDamageCause = player.getNative().getLastDamageCause();
|
||||||
String replaceString = lastDamageCause instanceof EntityDamageByEntityEvent ? StringUtils.getPrettyEntityTypeString(((EntityDamageByEntityEvent) lastDamageCause).getDamager().getType()) : "a mob";
|
String replaceString = lastDamageCause instanceof EntityDamageByEntityEvent ? StringUtils.getPrettyEntityTypeString(((EntityDamageByEntityEvent) lastDamageCause).getDamager().getType()) : "a mob";
|
||||||
|
|
||||||
return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString);
|
return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString);
|
||||||
@@ -36,15 +54,22 @@ public final class MobHealthBarManager {
|
|||||||
/**
|
/**
|
||||||
* Handle the creation of mob healthbars.
|
* Handle the creation of mob healthbars.
|
||||||
*
|
*
|
||||||
* @param target the targetted entity
|
* @param mmoTarget the targetted entity
|
||||||
* @param damage damage done by the attack triggering this
|
* @param damage damage done by the attack triggering this
|
||||||
*/
|
*/
|
||||||
public void handleMobHealthbars(LivingEntity target, double damage, mcMMO plugin) {
|
@Override
|
||||||
if (pluginRef.isHealthBarPluginEnabled() || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) {
|
public void handleMobHealthbars(MMOEntity<LivingEntity> mmoTarget, double damage) {
|
||||||
|
if (healthBarPluginEnabled || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LivingEntity target = mmoTarget.getNative();
|
||||||
|
|
||||||
|
if (isBoss(target)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isBoss(target)) {
|
// Don't mangle invalid entities, they're not going to be rendered anyways
|
||||||
|
if (!target.isValid()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,12 +80,13 @@ public final class MobHealthBarManager {
|
|||||||
* Store the name in metadata
|
* Store the name in metadata
|
||||||
*/
|
*/
|
||||||
if (target.getMetadata("mcMMO_oldName").size() <= 0 && originalName != null)
|
if (target.getMetadata("mcMMO_oldName").size() <= 0 && originalName != null)
|
||||||
target.setMetadata("mcMMO_oldName", new OldName(originalName, plugin));
|
target.setMetadata("mcMMO_oldName", new OldName(originalName, pluginRef));
|
||||||
|
|
||||||
if (oldName == null) {
|
if (oldName == null) {
|
||||||
oldName = "";
|
oldName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boolean oldNameVisible = target.isCustomNameVisible();
|
boolean oldNameVisible = target.isCustomNameVisible();
|
||||||
String newName = createHealthDisplay(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType(), target, damage);
|
String newName = createHealthDisplay(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType(), target, damage);
|
||||||
|
|
||||||
@@ -73,14 +99,17 @@ public final class MobHealthBarManager {
|
|||||||
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
||||||
|
|
||||||
if (updateName) {
|
if (updateName) {
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, oldName));
|
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, oldName));
|
||||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, oldNameVisible));
|
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, oldNameVisible));
|
||||||
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) {
|
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, ""));
|
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, ""));
|
||||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, false));
|
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
new MobHealthDisplayUpdaterTask(pluginRef, target).runTaskLater(pluginRef, displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR); // Clear health display after 3 seconds
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR) // Clear health display after 3 seconds
|
||||||
|
.setTask(new MobHealthDisplayUpdaterTask(pluginRef, target))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,15 +13,12 @@ description: >
|
|||||||
author: nossr50
|
author: nossr50
|
||||||
authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking, electronicboy, kashike]
|
authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking, electronicboy, kashike]
|
||||||
website: https://www.mcmmo.org
|
website: https://www.mcmmo.org
|
||||||
main: com.gmail.nossr50.mcMMO
|
main: com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap
|
||||||
softdepend: [WorldGuard, WorldEdit, CombatTag, HealthBar]
|
softdepend: [WorldGuard, WorldEdit, CombatTag, HealthBar]
|
||||||
load: POSTWORLD
|
load: POSTWORLD
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
mmodebug:
|
|
||||||
aliases: [mcmmodebugmode]
|
|
||||||
description: Toggles a debug mode which will print useful information to chat
|
|
||||||
mmoinfo:
|
mmoinfo:
|
||||||
aliases: [mcinfo]
|
aliases: [mcinfo]
|
||||||
description: Info pages for mcMMO
|
description: Info pages for mcMMO
|
||||||
@@ -264,7 +261,7 @@ permissions:
|
|||||||
description: Allows access to all Axes abilities
|
description: Allows access to all Axes abilities
|
||||||
children:
|
children:
|
||||||
mcmmo.ability.axes.axemastery: true
|
mcmmo.ability.axes.axemastery: true
|
||||||
mcmmo.ability.axes.criticalhit: true
|
mcmmo.ability.axes.criticalstrikes: true
|
||||||
mcmmo.ability.axes.greaterimpact: true
|
mcmmo.ability.axes.greaterimpact: true
|
||||||
mcmmo.ability.axes.armorimpact: true
|
mcmmo.ability.axes.armorimpact: true
|
||||||
mcmmo.ability.axes.skullsplitter: true
|
mcmmo.ability.axes.skullsplitter: true
|
||||||
@@ -273,8 +270,8 @@ permissions:
|
|||||||
description: Adds damage to axes
|
description: Adds damage to axes
|
||||||
mcmmo.ability.axes.axemastery:
|
mcmmo.ability.axes.axemastery:
|
||||||
description: Allows bonus damage from Axes
|
description: Allows bonus damage from Axes
|
||||||
mcmmo.ability.axes.criticalhit:
|
mcmmo.ability.axes.criticalstrikes:
|
||||||
description: Allows access to the Critical Hit ability
|
description: Allows access to the Critical Strikes ability
|
||||||
mcmmo.ability.axes.greaterimpact:
|
mcmmo.ability.axes.greaterimpact:
|
||||||
description: Allows access to the Greater Impact ability
|
description: Allows access to the Greater Impact ability
|
||||||
mcmmo.ability.axes.armorimpact:
|
mcmmo.ability.axes.armorimpact:
|
||||||
@@ -628,6 +625,10 @@ permissions:
|
|||||||
children:
|
children:
|
||||||
mcmmo.commands.mcconvert.all: true
|
mcmmo.commands.mcconvert.all: true
|
||||||
mcmmo.commands.xprate.all: true
|
mcmmo.commands.xprate.all: true
|
||||||
|
mcmmo.commands.nbttools: true
|
||||||
|
mcmmo.commands.nbttools:
|
||||||
|
default: false
|
||||||
|
description: Modify or Read NBT of an item in-hand
|
||||||
mcmmo.bypass.*:
|
mcmmo.bypass.*:
|
||||||
default: false
|
default: false
|
||||||
description: Implies all bypass permissions.
|
description: Implies all bypass permissions.
|
||||||
@@ -731,6 +732,7 @@ permissions:
|
|||||||
mcmmo.commands.mcmmoreload: true
|
mcmmo.commands.mcmmoreload: true
|
||||||
mcmmo.commands.mmoedit: true
|
mcmmo.commands.mmoedit: true
|
||||||
mcmmo.commands.mmoedit.others: true
|
mcmmo.commands.mmoedit.others: true
|
||||||
|
mcmmo.commands.nbttools: true
|
||||||
mcmmo.commands.mmoshowdb: true
|
mcmmo.commands.mmoshowdb: true
|
||||||
mcmmo.commands.ptp.world.all: true
|
mcmmo.commands.ptp.world.all: true
|
||||||
mcmmo.commands.reloadlocale: true
|
mcmmo.commands.reloadlocale: true
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
import org.apache.tools.ant.filters.ReplaceTokens
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@@ -7,11 +8,8 @@ plugins {
|
|||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
|
|
||||||
build {
|
|
||||||
dependsOn(shadowJar)
|
|
||||||
}
|
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
|
/*
|
||||||
dependencies {
|
dependencies {
|
||||||
include(dependency("org.spongepowered:configurate-yaml"))
|
include(dependency("org.spongepowered:configurate-yaml"))
|
||||||
include(dependency("org.spongepowered:configurate-hocon"))
|
include(dependency("org.spongepowered:configurate-hocon"))
|
||||||
@@ -20,12 +18,25 @@ tasks {
|
|||||||
include(dependency("org.apache.tomcat:tomcat-jdbc"))
|
include(dependency("org.apache.tomcat:tomcat-jdbc"))
|
||||||
include(dependency("org.apache.tomcat:tomcat-juli"))
|
include(dependency("org.apache.tomcat:tomcat-juli"))
|
||||||
include(dependency("com.typesafe:config"))
|
include(dependency("com.typesafe:config"))
|
||||||
|
include(dependency("co.aikar:acf-core"))
|
||||||
|
include(dependency("co.aikar:acf-bukkit"))
|
||||||
|
include(dependency("net.kyori:text-api"))
|
||||||
|
include(dependency("net.kyori:text-adapter-bukkit"))
|
||||||
|
include(dependency("net.kyori:text-serializer-gson"))
|
||||||
exclude(dependency("org.spigotmc:spigot"))
|
exclude(dependency("org.spigotmc:spigot"))
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
|
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
|
||||||
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
|
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
|
||||||
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
|
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
|
||||||
relocate("org.bstats", "com.gmail.nossr50.metrics.bstat")
|
relocate("org.bstats", "com.gmail.nossr50.metrics.bstat")
|
||||||
|
relocate("co.aikar.commands", "com.gmail.nossr50.aikar.commands")
|
||||||
|
relocate("co.aikar.locales", "com.gmail.nossr50.aikar.locales")
|
||||||
|
relocate("co.aikar.table", "com.gmail.nossr50.aikar.table")
|
||||||
|
relocate("net.jodah.expiringmap", "com.gmail.nossr50.expiringmap")
|
||||||
|
relocate("net.kyori.text", "com.gmail.nossr50.kyoripowered.text")
|
||||||
|
|
||||||
|
mergeServiceFiles()
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
@@ -34,20 +45,34 @@ tasks {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
build {
|
||||||
|
dependsOn(shadowJar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named<ShadowJar>("shadowJar") {
|
||||||
|
dependencies{
|
||||||
|
include { true }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
api(project(":mcmmo-api"))
|
||||||
api("com.typesafe:config:1.3.2")
|
compile("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||||
api("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
compile("com.typesafe:config:1.3.2")
|
||||||
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
compile("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||||
api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
compile("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||||
implementation("org.jetbrains:annotations:17.0.0")
|
compile("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
compile("net.kyori:text-api:3.0.2")
|
||||||
implementation("org.bstats:bstats-bukkit:1.4")
|
compile("net.kyori:text-serializer-gson:3.0.2")
|
||||||
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
compile("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
||||||
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
compile("org.jetbrains:annotations:17.0.0")
|
||||||
|
compile("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||||
|
compile("org.bstats:bstats-bukkit:1.4")
|
||||||
|
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
|
compileOnly("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||||
testImplementation("junit:junit:4.10")
|
testImplementation("junit:junit:4.10")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
package com.gmail.nossr50.bukkit;
|
//package com.gmail.nossr50.bukkit;
|
||||||
|
//
|
||||||
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
//import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
||||||
import com.gmail.nossr50.datatypes.items.MMOItem;
|
//import com.gmail.nossr50.datatypes.items.MMOItem;
|
||||||
import com.gmail.nossr50.util.nbt.NBTManager;
|
//import com.gmail.nossr50.util.nbt.NBTManager;
|
||||||
import com.gmail.nossr50.util.nbt.RawNBT;
|
//import com.gmail.nossr50.util.nbt.RawNBT;
|
||||||
import org.bukkit.inventory.ItemStack;
|
//import org.bukkit.inventory.ItemStack;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Used to convert or construct platform independent types into Bukkit types
|
// * Used to convert or construct platform independent types into Bukkit types
|
||||||
*/
|
// */
|
||||||
public class BukkitFactory {
|
//public class BukkitFactory {
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* Creates a BukkitMMOItem which contains Bukkit implementations for the type MMOItem
|
// * Creates a BukkitMMOItem which contains Bukkit implementations for the type MMOItem
|
||||||
* @return a new BukkitMMOItem
|
// * @return a new BukkitMMOItem
|
||||||
*/
|
// */
|
||||||
public static MMOItem<?> createItem(String namespaceKey, int amount, RawNBT rawNBT) {
|
// public static MMOItem<?> createItem(String namespaceKey, int amount, RawNBT rawNBT) {
|
||||||
return new BukkitMMOItem(namespaceKey, amount, rawNBT);
|
// return new BukkitMMOItem(namespaceKey, amount, rawNBT);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public static MMOItem<?> createItem(ItemStack itemStack) {
|
// public static MMOItem<?> createItem(ItemStack itemStack) {
|
||||||
return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(NBTManager.getNBT(itemStack).toString()));
|
// return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(NBTManager.getNBT(itemStack).toString()));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
package com.gmail.nossr50.chat;
|
package com.gmail.nossr50.chat;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
|
||||||
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -14,29 +17,32 @@ import java.util.regex.Pattern;
|
|||||||
public class ChatManager {
|
public class ChatManager {
|
||||||
private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat";
|
private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat";
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
@Deprecated
|
||||||
|
private final Plugin legacyPlugin;
|
||||||
|
|
||||||
public ChatManager(mcMMO pluginRef) {
|
public ChatManager(mcMMO pluginRef) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
|
this.legacyPlugin = (Plugin) pluginRef.getPlatformProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processAdminChat(Player player, String message) {
|
public void processAdminChat(Player player, String message) {
|
||||||
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, player.getName(), player.getDisplayName(), message));
|
sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, player.getName(), player.getDisplayName(), message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processAdminChat(String senderName, String displayName, String message) {
|
public void processAdminChat(String senderName, String displayName, String message) {
|
||||||
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, senderName, displayName, message));
|
sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, senderName, displayName, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processPartyChat(Party party, Player sender, String message) {
|
public void processPartyChat(Party party, Player sender, String message) {
|
||||||
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, sender.getName(), sender.getDisplayName(), party, message));
|
sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, sender.getName(), sender.getDisplayName(), party, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processPartyChat(Party party, String senderName, String message) {
|
public void processPartyChat(Party party, String senderName, String message) {
|
||||||
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, senderName, senderName, party, message));
|
sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, senderName, senderName, party, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendAdminChatMessage(McMMOAdminChatEvent event) {
|
private void sendAdminChatMessage(McMMOAdminChatEvent event) {
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
@@ -47,11 +53,11 @@ public class ChatManager {
|
|||||||
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
|
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
|
||||||
String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage();
|
String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage();
|
||||||
|
|
||||||
pluginRef.getServer().broadcast(message, ADMIN_CHAT_PERMISSION);
|
Bukkit.getServer().broadcast(message, ADMIN_CHAT_PERMISSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendPartyChatMessage(McMMOPartyChatEvent event) {
|
private void sendPartyChatMessage(McMMOPartyChatEvent event) {
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
@@ -79,13 +85,13 @@ public class ChatManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pluginRef.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message));
|
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Party Chat Spying
|
* Party Chat Spying
|
||||||
*/
|
*/
|
||||||
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||||
Player player = mcMMOPlayer.getPlayer();
|
Player player = mcMMOPlayer.getNative();
|
||||||
|
|
||||||
//Check for toggled players
|
//Check for toggled players
|
||||||
if (mcMMOPlayer.isPartyChatSpying()) {
|
if (mcMMOPlayer.isPartyChatSpying()) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ public class AbilityToggleCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
|
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
|
||||||
mcMMOPlayer.toggleAbilityUse();
|
mcMMOPlayer.toggleAbilityUse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -26,7 +26,7 @@ public class ChatNotificationToggleCommand implements TabExecutor {
|
|||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||||
|
|
||||||
//Not Loaded yet
|
//Not Loaded yet
|
||||||
if (mcMMOPlayer == null)
|
if (mcMMOPlayer == null)
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.notifications.SensitiveCommandType;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -37,15 +39,15 @@ public class ExperienceRateCommand implements TabExecutor {
|
|||||||
if (pluginRef.isXPEventEnabled()) {
|
if (pluginRef.isXPEventEnabled()) {
|
||||||
|
|
||||||
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
||||||
pluginRef.getNotificationManager().broadcastTitle(pluginRef.getServer(),
|
pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
|
||||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop"),
|
pluginRef.getLocaleManager().getString("Commands.Event.Stop"),
|
||||||
pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"),
|
pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"),
|
||||||
10, 10 * 20, 20);
|
10, 10 * 20, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop"));
|
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop"));
|
||||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"));
|
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Admin notification
|
//Admin notification
|
||||||
@@ -85,15 +87,15 @@ public class ExperienceRateCommand implements TabExecutor {
|
|||||||
pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
|
pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
|
||||||
|
|
||||||
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
|
||||||
pluginRef.getNotificationManager().broadcastTitle(pluginRef.getServer(),
|
pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
|
||||||
pluginRef.getLocaleManager().getString("Commands.Event.Start"),
|
pluginRef.getLocaleManager().getString("Commands.Event.Start"),
|
||||||
pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate),
|
pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate),
|
||||||
10, 10 * 20, 20);
|
10, 10 * 20, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start"));
|
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start"));
|
||||||
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate));
|
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Admin notification
|
//Admin notification
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
@@ -21,8 +21,8 @@ public class GodModeCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||||
mcMMOPlayer.toggleGodMode();
|
mcMMOPlayer.toggleGodMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
public class McMMOCommand implements CommandExecutor {
|
public class McMMOCommand implements CommandExecutor {
|
||||||
|
|
||||||
@@ -34,7 +35,7 @@ public class McMMOCommand implements CommandExecutor {
|
|||||||
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", pluginRef.getDescription().getVersion()));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", ((Plugin) pluginRef.getPlatformProvider()).getDescription().getVersion()));
|
||||||
|
|
||||||
// mcMMO.getHolidayManager().anniversaryCheck(sender);
|
// mcMMO.getHolidayManager().anniversaryCheck(sender);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
@@ -21,13 +21,13 @@ public class RefreshCooldownsCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.setRecentlyHurt(0);
|
mcMMOPlayer.setRecentlyHurt(0);
|
||||||
mcMMOPlayer.resetCooldowns();
|
mcMMOPlayer.resetCooldowns();
|
||||||
mcMMOPlayer.resetToolPrepMode();
|
mcMMOPlayer.resetToolPrepMode();
|
||||||
mcMMOPlayer.resetSuperAbilityMode();
|
mcMMOPlayer.resetSuperAbilityMode();
|
||||||
|
|
||||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
|
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.gmail.nossr50.commands;
|
|||||||
|
|
||||||
import com.gmail.nossr50.database.FlatFileDatabaseManager;
|
import com.gmail.nossr50.database.FlatFileDatabaseManager;
|
||||||
import com.gmail.nossr50.database.SQLDatabaseManager;
|
import com.gmail.nossr50.database.SQLDatabaseManager;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -24,7 +24,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
|
|||||||
if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) {
|
if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) {
|
||||||
SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager();
|
SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager();
|
||||||
sqlDatabaseManager.resetMobHealthSettings();
|
sqlDatabaseManager.resetMobHealthSettings();
|
||||||
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||||
}
|
}
|
||||||
sender.sendMessage("Mob health reset");
|
sender.sendMessage("Mob health reset");
|
||||||
@@ -33,7 +33,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
|
|||||||
if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) {
|
if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) {
|
||||||
FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager();
|
FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager();
|
||||||
flatFileDatabaseManager.resetMobHealthSettings();
|
flatFileDatabaseManager.resetMobHealthSettings();
|
||||||
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||||
}
|
}
|
||||||
sender.sendMessage("Mob health reset");
|
sender.sendMessage("Mob health reset");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands;
|
package com.gmail.nossr50.commands;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -46,7 +46,7 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(playerName);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(playerName);
|
||||||
|
|
||||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
|
||||||
return true;
|
return true;
|
||||||
@@ -81,7 +81,7 @@ public abstract class ToggleCommand implements TabExecutor {
|
|||||||
|
|
||||||
protected abstract boolean hasSelfPermission(CommandSender sender);
|
protected abstract boolean hasSelfPermission(CommandSender sender);
|
||||||
|
|
||||||
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
|
protected abstract void applyCommandAction(BukkitMMOPlayer mcMMOPlayer);
|
||||||
|
|
||||||
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package com.gmail.nossr50.commands.admin;
|
||||||
|
|
||||||
|
import co.aikar.commands.BaseCommand;
|
||||||
|
import co.aikar.commands.annotation.*;
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import net.kyori.text.TextComponent;
|
||||||
|
import net.kyori.text.adapter.bukkit.TextAdapter;
|
||||||
|
import net.kyori.text.format.TextColor;
|
||||||
|
import net.kyori.text.serializer.gson.GsonComponentSerializer;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandAlias("nbttools")
|
||||||
|
@Description("Read or Modify values of NBT on an item in-hand")
|
||||||
|
public class NBTToolsCommand extends BaseCommand {
|
||||||
|
|
||||||
|
public static final String STYLE_TEXT_1 = "//////////";
|
||||||
|
@Dependency
|
||||||
|
private mcMMO plugin;
|
||||||
|
|
||||||
|
@Default
|
||||||
|
@CommandPermission("mcmmo.commands.nbttools")
|
||||||
|
public void onCommand(Player player) {
|
||||||
|
//TODO: Add some help messages
|
||||||
|
player.sendMessage("hi");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the NBT tags of an item in hand
|
||||||
|
*/
|
||||||
|
@Subcommand("tags show")
|
||||||
|
public void onShowTags(Player player) {
|
||||||
|
final TextComponent textComponent = TextComponent.builder()
|
||||||
|
.content(plugin.getLocaleManager().getString("mcMMO.Template.Prefix"))
|
||||||
|
.append("NBT Tools")
|
||||||
|
.color(TextColor.GOLD)
|
||||||
|
.append(" - ")
|
||||||
|
.append("Showing NBT Tags (")
|
||||||
|
.append(player.getInventory().getItemInMainHand().getType().getKey().toString())
|
||||||
|
.color(TextColor.GREEN)
|
||||||
|
.append(")")
|
||||||
|
.color(TextColor.GOLD)
|
||||||
|
.append(TextComponent.newline())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
String json = GsonComponentSerializer.INSTANCE.serialize(textComponent);
|
||||||
|
TextAdapter.sendMessage(player, textComponent);
|
||||||
|
|
||||||
|
//Show NBT tags to player
|
||||||
|
player.sendMessage(STYLE_TEXT_1 + " NBT TOOLS " + STYLE_TEXT_1);
|
||||||
|
player.sendMessage("NBT Analysis: " + player.getInventory().getItemInMainHand().getType().getKey().toString());
|
||||||
|
player.sendMessage(STYLE_TEXT_1 + STYLE_TEXT_1);
|
||||||
|
plugin.getNbtManager().printNBT(player.getInventory().getItemInMainHand(), player);
|
||||||
|
player.sendMessage(ChatColor.GRAY + "NBT Analysis completed!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subcommand("tags add")
|
||||||
|
public void onAddTags(Player player) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subcommand("tags remove")
|
||||||
|
public void onRemoveTags(Player player) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package com.gmail.nossr50.commands.admin;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class PlayerDebug implements CommandExecutor {
|
|
||||||
|
|
||||||
private final mcMMO pluginRef;
|
|
||||||
|
|
||||||
public PlayerDebug(mcMMO pluginRef) {
|
|
||||||
this.pluginRef = pluginRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,29 +1,35 @@
|
|||||||
package com.gmail.nossr50.commands.admin;
|
package com.gmail.nossr50.commands.admin;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import co.aikar.commands.BaseCommand;
|
||||||
|
import co.aikar.commands.annotation.CommandAlias;
|
||||||
|
import co.aikar.commands.annotation.Default;
|
||||||
|
import co.aikar.commands.annotation.Dependency;
|
||||||
|
import co.aikar.commands.annotation.Description;
|
||||||
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PlayerDebugCommand implements CommandExecutor {
|
|
||||||
|
|
||||||
private final mcMMO pluginRef;
|
@CommandAlias("mmodebug")
|
||||||
|
@Description("Puts the player into debug mode, which helps problem solve bugs in mcMMO.")
|
||||||
|
public class PlayerDebugCommand extends BaseCommand {
|
||||||
|
|
||||||
public PlayerDebugCommand(mcMMO pluginRef) {
|
@Dependency
|
||||||
this.pluginRef = pluginRef;
|
private mcMMO plugin;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Default
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public void onCommand(CommandSender sender) {
|
||||||
if(sender instanceof Player) {
|
if(sender instanceof Player) {
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
BukkitMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
|
||||||
|
|
||||||
|
if(mcMMOPlayer == null)
|
||||||
|
return;
|
||||||
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
||||||
pluginRef.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getNative(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
//TODO: Localize
|
||||||
|
sender.sendMessage("Players only");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.chat;
|
|||||||
import com.gmail.nossr50.commands.CommandConstants;
|
import com.gmail.nossr50.commands.CommandConstants;
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -26,7 +26,7 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
McMMOPlayer mcMMOPlayer;
|
BukkitMMOPlayer mcMMOPlayer;
|
||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -109,7 +109,7 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
|
|
||||||
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
protected abstract void handleChatSending(CommandSender sender, String[] args);
|
||||||
|
|
||||||
private void enableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
private void enableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||||
return;
|
return;
|
||||||
@@ -124,7 +124,7 @@ public abstract class ChatCommand implements TabExecutor {
|
|||||||
sender.sendMessage(getChatModeEnabledMessage(chatMode, true));
|
sender.sendMessage(getChatModeEnabledMessage(chatMode, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) {
|
private void disableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
|
||||||
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.chat;
|
package com.gmail.nossr50.commands.chat;
|
||||||
|
|
||||||
import com.gmail.nossr50.commands.ToggleCommand;
|
import com.gmail.nossr50.commands.ToggleCommand;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
@@ -22,8 +22,8 @@ public class ChatSpyCommand extends ToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||||
mcMMOPlayer.togglePartyChatSpying();
|
mcMMOPlayer.togglePartyChatSpying();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -57,17 +59,24 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
|||||||
pluginRef.getUserManager().saveAll();
|
pluginRef.getUserManager().saveAll();
|
||||||
pluginRef.getUserManager().clearAll();
|
pluginRef.getUserManager().clearAll();
|
||||||
|
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||||
|
|
||||||
if (profile.isLoaded()) {
|
if (profile.isLoaded()) {
|
||||||
pluginRef.getDatabaseManager().saveUser(profile);
|
pluginRef.getDatabaseManager().saveUser(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
|
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(pluginRef);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setTask(new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()))
|
||||||
|
.schedule();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.experience.FormulaType;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -31,10 +33,17 @@ public class ConvertExperienceCommand implements CommandExecutor {
|
|||||||
pluginRef.getUserManager().saveAll();
|
pluginRef.getUserManager().saveAll();
|
||||||
pluginRef.getUserManager().clearAll();
|
pluginRef.getUserManager().clearAll();
|
||||||
|
|
||||||
new FormulaConversionTask(pluginRef, sender, previousType).runTaskLater(pluginRef, 1);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(1L)
|
||||||
|
.setTask(new FormulaConversionTask(pluginRef, sender, previousType))
|
||||||
|
.schedule();
|
||||||
|
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
|
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -96,12 +98,12 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
int value = Integer.parseInt(args[2]);
|
int value = Integer.parseInt(args[2]);
|
||||||
|
|
||||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||||
|
|
||||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
if (mcMMOPlayer == null) {
|
if (mcMMOPlayer == null) {
|
||||||
UUID uuid = null;
|
UUID uuid = null;
|
||||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName);
|
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
uuid = player.getUniqueId();
|
uuid = player.getUniqueId();
|
||||||
}
|
}
|
||||||
@@ -113,7 +115,7 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
|
|
||||||
editValues(null, profile, skill, value);
|
editValues(null, profile, skill, value);
|
||||||
} else {
|
} else {
|
||||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
|
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName, skill);
|
handleSenderMessage(sender, playerName, skill);
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.gmail.nossr50.commands.experience;
|
package com.gmail.nossr50.commands.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -81,12 +83,12 @@ public class SkillResetCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||||
|
|
||||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
if (mcMMOPlayer == null) {
|
if (mcMMOPlayer == null) {
|
||||||
UUID uuid = null;
|
UUID uuid = null;
|
||||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName);
|
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
uuid = player.getUniqueId();
|
uuid = player.getUniqueId();
|
||||||
}
|
}
|
||||||
@@ -98,7 +100,7 @@ public class SkillResetCommand implements TabExecutor {
|
|||||||
|
|
||||||
editValues(null, profile, skill);
|
editValues(null, profile, skill);
|
||||||
} else {
|
} else {
|
||||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
|
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSenderMessage(sender, playerName, skill);
|
handleSenderMessage(sender, playerName, skill);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -26,7 +26,7 @@ public class PartyAcceptCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
|
|
||||||
if (!mcMMOPlayer.hasPartyInvite()) {
|
if (!mcMMOPlayer.hasPartyInvite()) {
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.gmail.nossr50.commands.party;
|
|||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -28,7 +30,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor {
|
|||||||
|
|
||||||
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||||
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName);
|
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (!playerParty.hasMember(target.getUniqueId())) {
|
if (!playerParty.hasMember(target.getUniqueId())) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName));
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.gmail.nossr50.commands.chat.PartyChatCommand;
|
|||||||
import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand;
|
import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand;
|
||||||
import com.gmail.nossr50.commands.party.teleport.PtpCommand;
|
import com.gmail.nossr50.commands.party.teleport.PtpCommand;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -110,7 +110,7 @@ public class PartyCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
if (!mcMMOPlayer.inParty()) {
|
if (!mcMMOPlayer.inParty()) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -21,7 +21,7 @@ public class PartyCreateCommand implements CommandExecutor {
|
|||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||||
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.party;
|
|||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.party.ShareMode;
|
import com.gmail.nossr50.datatypes.party.ShareMode;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -33,7 +33,7 @@ public class PartyInfoCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
Party party = mcMMOPlayer.getParty();
|
Party party = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
displayPartyHeader(player, party);
|
displayPartyHeader(player, party);
|
||||||
@@ -133,7 +133,7 @@ public class PartyInfoCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayMemberInfo(Player player, McMMOPlayer mcMMOPlayer, Party party) {
|
private void displayMemberInfo(Player player, BukkitMMOPlayer mcMMOPlayer, Party party) {
|
||||||
/*
|
/*
|
||||||
* Only show members of the party that this member can see
|
* Only show members of the party that this member can see
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -21,13 +21,13 @@ public class PartyInviteCommand implements CommandExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target = mcMMOTarget.getPlayer();
|
Player target = mcMMOTarget.getNative();
|
||||||
|
|
||||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||||
@@ -35,7 +35,7 @@ public class PartyInviteCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
String playerName = player.getName();
|
String playerName = player.getName();
|
||||||
|
|
||||||
if (player.equals(target)) {
|
if (player.equals(target)) {
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class PartyItemShareCommand implements CommandExecutor {
|
public class PartyItemShareCommand implements CommandExecutor {
|
||||||
|
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
@@ -35,7 +37,7 @@ public class PartyItemShareCommand implements CommandExecutor {
|
|||||||
|
|
||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 2:
|
case 2:
|
||||||
ShareMode mode = ShareMode.getShareMode(args[1].toUpperCase());
|
ShareMode mode = ShareMode.getShareMode(args[1].toUpperCase(Locale.ENGLISH));
|
||||||
|
|
||||||
if (mode == null) {
|
if (mode == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<NONE | EQUAL | RANDOM>"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<NONE | EQUAL | RANDOM>"));
|
||||||
@@ -58,7 +60,7 @@ public class PartyItemShareCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase()), toggle);
|
handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase(Locale.ENGLISH)), toggle);
|
||||||
} catch (IllegalArgumentException ex) {
|
} catch (IllegalArgumentException ex) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -22,13 +22,13 @@ public class PartyJoinCommand implements CommandExecutor {
|
|||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||||
|
|
||||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target = mcMMOTarget.getPlayer();
|
Player target = mcMMOTarget.getNative();
|
||||||
|
|
||||||
if (!mcMMOTarget.inParty()) {
|
if (!mcMMOTarget.inParty()) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
|
||||||
@@ -42,7 +42,7 @@ public class PartyJoinCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
Party targetParty = mcMMOTarget.getParty();
|
Party targetParty = mcMMOTarget.getParty();
|
||||||
|
|
||||||
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
|
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.gmail.nossr50.commands.party;
|
|||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -34,7 +36,7 @@ public class PartyKickCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName);
|
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (target.isOnline()) {
|
if (target.isOnline()) {
|
||||||
Player onlineTarget = target.getPlayer();
|
Player onlineTarget = target.getPlayer();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -28,7 +28,7 @@ public class PartyQuitCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
Party playerParty = mcMMOPlayer.getParty();
|
Party playerParty = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) {
|
if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party;
|
package com.gmail.nossr50.commands.party;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -26,7 +26,7 @@ public class PartyRenameCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||||
Party playerParty = mcMMOPlayer.getParty();
|
Party playerParty = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
String oldPartyName = playerParty.getName();
|
String oldPartyName = playerParty.getName();
|
||||||
@@ -38,7 +38,7 @@ public class PartyRenameCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = mcMMOPlayer.getPlayer();
|
Player player = mcMMOPlayer.getNative();
|
||||||
|
|
||||||
// Check to see if the party exists, and if it does cancel renaming the party
|
// Check to see if the party exists, and if it does cancel renaming the party
|
||||||
if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) {
|
if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.party.alliance;
|
package com.gmail.nossr50.commands.party.alliance;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -24,7 +24,7 @@ public class PartyAllianceAcceptCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
if (!mcMMOPlayer.hasPartyAllianceInvite()) {
|
if (!mcMMOPlayer.hasPartyAllianceInvite()) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites"));
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.party.alliance;
|
|||||||
import com.gmail.nossr50.commands.CommandConstants;
|
import com.gmail.nossr50.commands.CommandConstants;
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -48,7 +48,7 @@ public class PartyAllianceCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player = (Player) sender;
|
player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
playerParty = mcMMOPlayer.getParty();
|
playerParty = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ public class PartyAllianceCommand implements TabExecutor {
|
|||||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Ally", playerParty.getName(), targetParty.getName()));
|
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Ally", playerParty.getName(), targetParty.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayMemberInfo(McMMOPlayer mcMMOPlayer) {
|
private void displayMemberInfo(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header"));
|
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header"));
|
||||||
player.sendMessage(playerParty.createMembersList(player));
|
player.sendMessage(playerParty.createMembersList(player));
|
||||||
player.sendMessage(ChatColor.DARK_GRAY + "----------------------------");
|
player.sendMessage(ChatColor.DARK_GRAY + "----------------------------");
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party.alliance;
|
package com.gmail.nossr50.commands.party.alliance;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -25,7 +25,7 @@ public class PartyAllianceDisbandCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
Party party = mcMMOPlayer.getParty();
|
Party party = mcMMOPlayer.getParty();
|
||||||
|
|
||||||
if (party.getAlly() == null) {
|
if (party.getAlly() == null) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.party.alliance;
|
package com.gmail.nossr50.commands.party.alliance;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -21,13 +21,13 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 3:
|
case 3:
|
||||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[2]);
|
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[2]);
|
||||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
|
||||||
|
|
||||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target = mcMMOTarget.getPlayer();
|
Player target = mcMMOTarget.getNative();
|
||||||
|
|
||||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||||
@@ -35,7 +35,7 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
String playerName = player.getName();
|
String playerName = player.getName();
|
||||||
|
|
||||||
if (player.equals(target)) {
|
if (player.equals(target)) {
|
||||||
|
|||||||
@@ -4,9 +4,10 @@ import com.gmail.nossr50.commands.CommandConstants;
|
|||||||
import com.gmail.nossr50.datatypes.party.Party;
|
import com.gmail.nossr50.datatypes.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -60,7 +61,7 @@ public class PtpCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
if (!mcMMOPlayer.inParty()) {
|
if (!mcMMOPlayer.inParty()) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||||
@@ -135,7 +136,7 @@ public class PtpCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
if (!mcMMOPlayer.inParty()) {
|
if (!mcMMOPlayer.inParty()) {
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
@@ -156,8 +157,24 @@ public class PtpCommand implements TabExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||||
Player target = mcMMOTarget.getPlayer();
|
Player target = mcMMOTarget.getNative();
|
||||||
|
|
||||||
|
if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) {
|
||||||
|
World targetWorld = target.getWorld();
|
||||||
|
World playerWorld = player.getWorld();
|
||||||
|
|
||||||
|
if (!pluginRef.getPermissionTools().partyTeleportAllWorlds(player)) {
|
||||||
|
if (!pluginRef.getPermissionTools().partyTeleportWorld(target, targetWorld)) {
|
||||||
|
player.sendMessage(pluginRef.getLocaleManager().formatString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (targetWorld != playerWorld && !pluginRef.getPermissionTools().partyTeleportWorld(player, targetWorld)) {
|
||||||
|
player.sendMessage(pluginRef.getLocaleManager().formatString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PartyTeleportRecord ptpRecord = mcMMOTarget.getPartyTeleportRecord();
|
PartyTeleportRecord ptpRecord = mcMMOTarget.getPartyTeleportRecord();
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.player;
|
package com.gmail.nossr50.commands.player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||||
@@ -47,7 +47,7 @@ public class CooldownCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Header"));
|
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Header"));
|
||||||
player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote"));
|
player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote"));
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.player;
|
package com.gmail.nossr50.commands.player;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
@@ -27,7 +27,7 @@ public class InspectCommand implements TabExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 1:
|
case 1:
|
||||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||||
|
|
||||||
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
|
||||||
if (mcMMOPlayer == null) {
|
if (mcMMOPlayer == null) {
|
||||||
@@ -65,7 +65,7 @@ public class InspectCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Player target = mcMMOPlayer.getPlayer();
|
Player target = mcMMOPlayer.getNative();
|
||||||
|
|
||||||
if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) {
|
if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline"));
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.player;
|
package com.gmail.nossr50.commands.player;
|
||||||
|
|
||||||
import com.gmail.nossr50.core.MetadataConstants;
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask;
|
import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask;
|
||||||
@@ -13,6 +13,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -90,7 +91,7 @@ public class LeaderboardCommand implements TabExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||||
long cooldownMillis = 5000;
|
long cooldownMillis = 5000;
|
||||||
|
|
||||||
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
|
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
|
||||||
@@ -103,11 +104,11 @@ public class LeaderboardCommand implements TabExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY)) {
|
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, null));
|
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer.actualizeDatabaseATS();
|
mcMMOPlayer.actualizeDatabaseATS();
|
||||||
@@ -120,7 +121,10 @@ public class LeaderboardCommand implements TabExecutor {
|
|||||||
boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.TOP_BOARD));
|
boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.TOP_BOARD));
|
||||||
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.TOP_BOARD);
|
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.TOP_BOARD);
|
||||||
|
|
||||||
new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat).runTaskAsynchronously(pluginRef);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setTask(new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
private PrimarySkillType extractSkill(CommandSender sender, String skillName) {
|
private PrimarySkillType extractSkill(CommandSender sender, String skillName) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.player;
|
package com.gmail.nossr50.commands.player;
|
||||||
|
|
||||||
import com.gmail.nossr50.core.MetadataConstants;
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.commands.RankCommandAsyncTask;
|
import com.gmail.nossr50.runnables.commands.RankCommandAsyncTask;
|
||||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||||
@@ -11,6 +11,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.util.StringUtil;
|
import org.bukkit.util.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -56,10 +57,10 @@ public class RankCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||||
|
|
||||||
if (mcMMOPlayer != null) {
|
if (mcMMOPlayer != null) {
|
||||||
Player player = mcMMOPlayer.getPlayer();
|
Player player = mcMMOPlayer.getNative();
|
||||||
playerName = player.getName();
|
playerName = player.getName();
|
||||||
|
|
||||||
if (pluginRef.getCommandTools().tooFar(sender, player, pluginRef.getPermissionTools().mcrankFar(sender))) {
|
if (pluginRef.getCommandTools().tooFar(sender, player, pluginRef.getPermissionTools().mcrankFar(sender))) {
|
||||||
@@ -89,7 +90,7 @@ public class RankCommand implements TabExecutor {
|
|||||||
private void display(CommandSender sender, String playerName) {
|
private void display(CommandSender sender, String playerName) {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
|
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||||
|
|
||||||
if (mcMMOPlayer == null) {
|
if (mcMMOPlayer == null) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||||
@@ -103,11 +104,11 @@ public class RankCommand implements TabExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY)) {
|
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, null));
|
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMOPlayer.actualizeDatabaseATS();
|
mcMMOPlayer.actualizeDatabaseATS();
|
||||||
@@ -117,10 +118,13 @@ public class RankCommand implements TabExecutor {
|
|||||||
&& (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.RANK_BOARD));
|
&& (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.RANK_BOARD));
|
||||||
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.RANK_BOARD);
|
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.RANK_BOARD);
|
||||||
|
|
||||||
new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat).runTaskAsynchronously(pluginRef);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setTask(new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getCDSeconds(McMMOPlayer mcMMOPlayer, long cooldownMillis) {
|
private long getCDSeconds(BukkitMMOPlayer mcMMOPlayer, long cooldownMillis) {
|
||||||
return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis());
|
return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class MiningCommand extends SkillCommand {
|
|||||||
private int bonusTNTDrops;
|
private int bonusTNTDrops;
|
||||||
private double blastRadiusIncrease;
|
private double blastRadiusIncrease;
|
||||||
private String oreBonus;
|
private String oreBonus;
|
||||||
private String debrisReduction;
|
// private String debrisReduction;
|
||||||
private String blastDamageDecrease;
|
private String blastDamageDecrease;
|
||||||
|
|
||||||
private boolean canSuperBreaker;
|
private boolean canSuperBreaker;
|
||||||
@@ -42,7 +42,7 @@ public class MiningCommand extends SkillCommand {
|
|||||||
blastMiningRank = miningManager.getBlastMiningTier();
|
blastMiningRank = miningManager.getBlastMiningTier();
|
||||||
bonusTNTDrops = miningManager.getDropMultiplier();
|
bonusTNTDrops = miningManager.getDropMultiplier();
|
||||||
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
|
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
|
||||||
debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
// debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
||||||
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
|
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
|
||||||
blastRadiusIncrease = miningManager.getBlastRadiusModifier();
|
blastRadiusIncrease = miningManager.getBlastRadiusModifier();
|
||||||
}
|
}
|
||||||
@@ -81,8 +81,8 @@ public class MiningCommand extends SkillCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (canBlast) {
|
if (canBlast) {
|
||||||
messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.MINING_BLAST_MINING)), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.MINING_BLAST_MINING)), pluginRef.getLocaleManager().getString("Mining.Blast.Effect", oreBonus, bonusTNTDrops)));
|
||||||
//messages.add(pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
//messages.add(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canDemoExpert) {
|
if (canDemoExpert) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.commands.skills;
|
package com.gmail.nossr50.commands.skills;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
@@ -19,6 +19,7 @@ import org.bukkit.entity.Player;
|
|||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public abstract class SkillCommand implements TabExecutor {
|
public abstract class SkillCommand implements TabExecutor {
|
||||||
@@ -63,7 +64,7 @@ public abstract class SkillCommand implements TabExecutor {
|
|||||||
switch (args.length) {
|
switch (args.length) {
|
||||||
case 0:
|
case 0:
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||||
|
|
||||||
boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill);
|
boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill);
|
||||||
boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0;
|
boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0;
|
||||||
@@ -131,10 +132,10 @@ public abstract class SkillCommand implements TabExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendMessage(pluginRef.getLocaleManager().getString("Guides.Available", skillName, skillName.toLowerCase()));
|
player.sendMessage(pluginRef.getLocaleManager().getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendSkillCommandHeader(Player player, McMMOPlayer mcMMOPlayer, int skillValue) {
|
private void sendSkillCommandHeader(Player player, BukkitMMOPlayer mcMMOPlayer, int skillValue) {
|
||||||
ChatColor hd1 = ChatColor.DARK_AQUA;
|
ChatColor hd1 = ChatColor.DARK_AQUA;
|
||||||
ChatColor c1 = ChatColor.GOLD;
|
ChatColor c1 = ChatColor.GOLD;
|
||||||
ChatColor c2 = ChatColor.RED;
|
ChatColor c2 = ChatColor.RED;
|
||||||
@@ -223,10 +224,10 @@ public abstract class SkillCommand implements TabExecutor {
|
|||||||
String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription(pluginRef) : subSkillType.getLocaleKeyStatExtraDescription(pluginRef);
|
String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription(pluginRef) : subSkillType.getLocaleKeyStatExtraDescription(pluginRef);
|
||||||
|
|
||||||
if (isCustom)
|
if (isCustom)
|
||||||
return pluginRef.getLocaleManager().getString(templateKey, pluginRef.getLocaleManager().getString(statDescriptionKey, vars));
|
return pluginRef.getLocaleManager().getString(templateKey, pluginRef.getLocaleManager().getString(statDescriptionKey, (Object[]) vars));
|
||||||
else {
|
else {
|
||||||
String[] mergedList = pluginRef.getNotificationManager().addItemToFirstPositionOfArray(pluginRef.getLocaleManager().getString(statDescriptionKey), vars);
|
String[] mergedList = pluginRef.getNotificationManager().addItemToFirstPositionOfArray(pluginRef.getLocaleManager().getString(statDescriptionKey), vars);
|
||||||
return pluginRef.getLocaleManager().getString(templateKey, mergedList);
|
return pluginRef.getLocaleManager().getString(templateKey, (Object[]) mergedList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ public class SkillGuideCommand implements CommandExecutor {
|
|||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
|
||||||
public SkillGuideCommand(PrimarySkillType primarySkillType, mcMMO pluginRef) {
|
public SkillGuideCommand(PrimarySkillType primarySkillType, mcMMO pluginRef) {
|
||||||
|
this.pluginRef = pluginRef;
|
||||||
header = pluginRef.getLocaleManager().getString("Guides.Header", pluginRef.getSkillTools().getLocalizedSkillName(primarySkillType));
|
header = pluginRef.getLocaleManager().getString("Guides.Header", pluginRef.getSkillTools().getLocalizedSkillName(primarySkillType));
|
||||||
guide = getGuide(primarySkillType);
|
guide = getGuide(primarySkillType);
|
||||||
invalidPage = pluginRef.getLocaleManager().getString("Guides.Page.Invalid");
|
invalidPage = pluginRef.getLocaleManager().getString("Guides.Page.Invalid");
|
||||||
this.pluginRef = pluginRef;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,68 +1,60 @@
|
|||||||
package com.gmail.nossr50.config;
|
package com.gmail.nossr50.config;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.hocon.SerializedConfigLoader;
|
import com.gmail.nossr50.config.admin.ConfigAdmin;
|
||||||
import com.gmail.nossr50.config.hocon.admin.ConfigAdmin;
|
import com.gmail.nossr50.config.antiexploit.ConfigExploitPrevention;
|
||||||
import com.gmail.nossr50.config.hocon.antiexploit.ConfigExploitPrevention;
|
import com.gmail.nossr50.config.backup.ConfigAutomatedBackups;
|
||||||
import com.gmail.nossr50.config.hocon.backup.ConfigAutomatedBackups;
|
import com.gmail.nossr50.config.commands.ConfigCommands;
|
||||||
import com.gmail.nossr50.config.hocon.commands.ConfigCommands;
|
import com.gmail.nossr50.config.database.ConfigDatabase;
|
||||||
import com.gmail.nossr50.config.hocon.database.ConfigDatabase;
|
import com.gmail.nossr50.config.donation.ConfigAuthorAdvertisements;
|
||||||
import com.gmail.nossr50.config.hocon.donation.ConfigAuthorAdvertisements;
|
import com.gmail.nossr50.config.event.ConfigEvent;
|
||||||
import com.gmail.nossr50.config.hocon.event.ConfigEvent;
|
import com.gmail.nossr50.config.experience.ConfigExperience;
|
||||||
import com.gmail.nossr50.config.hocon.experience.ConfigExperience;
|
import com.gmail.nossr50.config.hardcore.ConfigHardcore;
|
||||||
import com.gmail.nossr50.config.hocon.hardcore.ConfigHardcore;
|
import com.gmail.nossr50.config.items.ConfigItems;
|
||||||
import com.gmail.nossr50.config.hocon.items.ConfigItems;
|
import com.gmail.nossr50.config.language.ConfigLanguage;
|
||||||
import com.gmail.nossr50.config.hocon.language.ConfigLanguage;
|
import com.gmail.nossr50.config.metrics.ConfigMetrics;
|
||||||
import com.gmail.nossr50.config.hocon.metrics.ConfigMetrics;
|
import com.gmail.nossr50.config.mobs.ConfigMobs;
|
||||||
import com.gmail.nossr50.config.hocon.mobs.ConfigMobs;
|
import com.gmail.nossr50.config.motd.ConfigMOTD;
|
||||||
import com.gmail.nossr50.config.hocon.motd.ConfigMOTD;
|
import com.gmail.nossr50.config.notifications.ConfigNotifications;
|
||||||
import com.gmail.nossr50.config.hocon.notifications.ConfigNotifications;
|
import com.gmail.nossr50.config.notifications.PlayerNotificationSettings;
|
||||||
import com.gmail.nossr50.config.hocon.notifications.PlayerNotificationSettings;
|
import com.gmail.nossr50.config.particles.ConfigParticles;
|
||||||
import com.gmail.nossr50.config.hocon.particles.ConfigParticles;
|
import com.gmail.nossr50.config.party.ConfigParty;
|
||||||
import com.gmail.nossr50.config.hocon.party.ConfigParty;
|
import com.gmail.nossr50.config.party.data.ConfigPartyData;
|
||||||
import com.gmail.nossr50.config.hocon.party.data.ConfigPartyData;
|
import com.gmail.nossr50.config.playerleveling.ConfigLeveling;
|
||||||
import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
|
import com.gmail.nossr50.config.scoreboard.ConfigScoreboard;
|
||||||
import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
|
import com.gmail.nossr50.config.serializers.*;
|
||||||
import com.gmail.nossr50.config.hocon.serializers.*;
|
import com.gmail.nossr50.config.skills.acrobatics.ConfigAcrobatics;
|
||||||
import com.gmail.nossr50.config.hocon.skills.acrobatics.ConfigAcrobatics;
|
import com.gmail.nossr50.config.skills.alchemy.ConfigAlchemy;
|
||||||
import com.gmail.nossr50.config.hocon.skills.alchemy.ConfigAlchemy;
|
import com.gmail.nossr50.config.skills.archery.ConfigArchery;
|
||||||
import com.gmail.nossr50.config.hocon.skills.archery.ConfigArchery;
|
import com.gmail.nossr50.config.skills.axes.ConfigAxes;
|
||||||
import com.gmail.nossr50.config.hocon.skills.axes.ConfigAxes;
|
import com.gmail.nossr50.config.skills.coreskills.ConfigCoreSkills;
|
||||||
import com.gmail.nossr50.config.hocon.skills.coreskills.ConfigCoreSkills;
|
import com.gmail.nossr50.config.skills.exampleconfigs.ConfigNameRegisterDefaults;
|
||||||
import com.gmail.nossr50.config.hocon.skills.exampleconfigs.ConfigNameRegisterDefaults;
|
import com.gmail.nossr50.config.skills.exampleconfigs.MinecraftMaterialWrapper;
|
||||||
import com.gmail.nossr50.config.hocon.skills.exampleconfigs.MinecraftMaterialWrapper;
|
import com.gmail.nossr50.config.skills.excavation.ConfigExcavation;
|
||||||
import com.gmail.nossr50.config.hocon.skills.excavation.ConfigExcavation;
|
import com.gmail.nossr50.config.skills.fishing.ConfigFishing;
|
||||||
import com.gmail.nossr50.config.hocon.skills.fishing.ConfigFishing;
|
import com.gmail.nossr50.config.skills.herbalism.ConfigHerbalism;
|
||||||
import com.gmail.nossr50.config.hocon.skills.herbalism.ConfigHerbalism;
|
import com.gmail.nossr50.config.skills.mining.ConfigMining;
|
||||||
import com.gmail.nossr50.config.hocon.skills.mining.ConfigMining;
|
import com.gmail.nossr50.config.skills.ranks.ConfigRanks;
|
||||||
import com.gmail.nossr50.config.hocon.skills.ranks.ConfigRanks;
|
import com.gmail.nossr50.config.skills.ranks.SkillRankProperty;
|
||||||
import com.gmail.nossr50.config.hocon.skills.ranks.SkillRankProperty;
|
import com.gmail.nossr50.config.skills.repair.ConfigRepair;
|
||||||
import com.gmail.nossr50.config.hocon.skills.repair.ConfigRepair;
|
import com.gmail.nossr50.config.skills.salvage.ConfigSalvage;
|
||||||
import com.gmail.nossr50.config.hocon.skills.salvage.ConfigSalvage;
|
import com.gmail.nossr50.config.skills.smelting.ConfigSmelting;
|
||||||
import com.gmail.nossr50.config.hocon.skills.smelting.ConfigSmelting;
|
import com.gmail.nossr50.config.skills.swords.ConfigSwords;
|
||||||
import com.gmail.nossr50.config.hocon.skills.swords.ConfigSwords;
|
import com.gmail.nossr50.config.skills.taming.ConfigTaming;
|
||||||
import com.gmail.nossr50.config.hocon.skills.taming.ConfigTaming;
|
import com.gmail.nossr50.config.skills.unarmed.ConfigUnarmed;
|
||||||
import com.gmail.nossr50.config.hocon.skills.unarmed.ConfigUnarmed;
|
import com.gmail.nossr50.config.skills.woodcutting.ConfigWoodcutting;
|
||||||
import com.gmail.nossr50.config.hocon.skills.woodcutting.ConfigWoodcutting;
|
import com.gmail.nossr50.config.sound.ConfigSound;
|
||||||
import com.gmail.nossr50.config.hocon.sound.ConfigSound;
|
import com.gmail.nossr50.config.sound.SoundSetting;
|
||||||
import com.gmail.nossr50.config.hocon.sound.SoundSetting;
|
import com.gmail.nossr50.config.superabilities.ConfigSuperAbilities;
|
||||||
import com.gmail.nossr50.config.hocon.superabilities.ConfigSuperAbilities;
|
import com.gmail.nossr50.config.worldblacklist.ConfigWorldBlacklist;
|
||||||
import com.gmail.nossr50.config.hocon.worldblacklist.ConfigWorldBlacklist;
|
|
||||||
import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
|
import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
|
||||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
|
||||||
import com.gmail.nossr50.datatypes.items.ItemWildcards;
|
|
||||||
import com.gmail.nossr50.datatypes.items.MMOItem;
|
|
||||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
|
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
|
||||||
import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel;
|
import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
|
||||||
import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon;
|
import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.repair.RepairTransaction;
|
|
||||||
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
|
||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
|
||||||
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
||||||
import com.gmail.nossr50.util.nbt.RawNBT;
|
|
||||||
import com.google.common.reflect.TypeToken;
|
import com.google.common.reflect.TypeToken;
|
||||||
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
|
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
|
||||||
@@ -259,25 +251,25 @@ public final class ConfigManager {
|
|||||||
customSerializers.registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
customSerializers.registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
||||||
customSerializers.registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
customSerializers.registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
||||||
customSerializers.registerType(new TypeToken<FormulaType>() {}, new CustomEnumValueSerializer());
|
customSerializers.registerType(new TypeToken<FormulaType>() {}, new CustomEnumValueSerializer());
|
||||||
customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
|
customSerializers.registerType(new TypeToken<CallOfTheWildType>() {}, new CustomEnumValueSerializer());
|
||||||
|
// customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
|
||||||
customSerializers.registerType(new TypeToken<Set<?>>() {}, new SetSerializer());
|
customSerializers.registerType(new TypeToken<Set<?>>() {}, new SetSerializer());
|
||||||
|
|
||||||
customSerializers.registerType(new TypeToken<ItemMatch<?>>() {}, new CustomItemTargetSerializer());
|
// customSerializers.registerType(new TypeToken<ItemMatch<?>>() {}, new CustomItemTargetSerializer());
|
||||||
customSerializers.registerType(new TypeToken<SimpleRepairCost>() {}, new SimpleRepairCostSerializer());
|
// customSerializers.registerType(new TypeToken<SimpleRepairCost>() {}, new SimpleRepairCostSerializer());
|
||||||
|
|
||||||
customSerializers.registerType(TypeToken.of(TamingSummon.class), new TamingSummonSerializer());
|
customSerializers.registerType(TypeToken.of(TamingSummon.class), new TamingSummonSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
// customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
|
customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
|
customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
|
customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
|
customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
|
||||||
customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer());
|
customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer());
|
||||||
customSerializers.registerType(TypeToken.of(MaxBonusLevel.class), new MaxBonusLevelSerializer());
|
|
||||||
customSerializers.registerType(TypeToken.of(PlayerNotificationSettings.class), new PlayerNotificationSerializer());
|
customSerializers.registerType(TypeToken.of(PlayerNotificationSettings.class), new PlayerNotificationSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(SoundSetting.class), new SoundSettingSerializer());
|
customSerializers.registerType(TypeToken.of(SoundSetting.class), new SoundSettingSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(ItemWildcards.class), new ItemWildcardSerializer());
|
// customSerializers.registerType(TypeToken.of(ItemWildcards.class), new ItemWildcardSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer());
|
// customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer());
|
// customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -489,17 +481,6 @@ public final class ConfigManager {
|
|||||||
return configRanks.getRootNode();
|
return configRanks.getRootNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if this plugin is using retro mode
|
|
||||||
* Retro mode is a 0-1000 skill system
|
|
||||||
* Standard mode is scaled for 1-100
|
|
||||||
*
|
|
||||||
* @return true if retro mode is enabled
|
|
||||||
*/
|
|
||||||
public boolean isRetroMode() {
|
|
||||||
return getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConfigExperience getConfigExperience() {
|
public ConfigExperience getConfigExperience() {
|
||||||
return configExperience.getConfig();
|
return configExperience.getConfig();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
package com.gmail.nossr50.config.hocon;
|
package com.gmail.nossr50.config;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
|
|
||||||
@ConfigSerializable
|
@ConfigSerializable
|
||||||
public class General {
|
public class General {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.gmail.nossr50.config.hocon;
|
package com.gmail.nossr50.config;
|
||||||
|
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public final class HOCONUtil {
|
public final class HOCONUtil {
|
||||||
|
|
||||||
public static String serializeENUMName(String hyphenedString) {
|
public static String serializeENUMName(String hyphenedString) {
|
||||||
@@ -24,7 +26,7 @@ public final class HOCONUtil {
|
|||||||
|
|
||||||
for (int x = 0; x < split.length; x++) {
|
for (int x = 0; x < split.length; x++) {
|
||||||
if (x + 1 >= split.length)
|
if (x + 1 >= split.length)
|
||||||
formattedString.append(split[x].toUpperCase());
|
formattedString.append(split[x].toUpperCase(Locale.ENGLISH));
|
||||||
else
|
else
|
||||||
formattedString.append(split[x]).append('_');
|
formattedString.append(split[x]).append('_');
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.gmail.nossr50.config.hocon;
|
package com.gmail.nossr50.config;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.ConfigConstants;
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import ninja.leaping.configurate.ConfigurationOptions;
|
import ninja.leaping.configurate.ConfigurationOptions;
|
||||||
import ninja.leaping.configurate.ValueType;
|
import ninja.leaping.configurate.ValueType;
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
package com.gmail.nossr50.config;
|
package com.gmail.nossr50.config;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.hocon.SerializedConfigLoader;
|
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class SkillConfigFactory {
|
public class SkillConfigFactory {
|
||||||
|
|
||||||
protected static SerializedConfigLoader initSkillConfig(mcMMO pluginRef, PrimarySkillType primarySkillType, Class<?> clazz) {
|
protected static SerializedConfigLoader initSkillConfig(mcMMO pluginRef, PrimarySkillType primarySkillType, Class<?> clazz) {
|
||||||
return new SerializedConfigLoader(pluginRef, clazz,
|
return new SerializedConfigLoader(pluginRef, clazz,
|
||||||
primarySkillType.toString().toLowerCase() + ".conf",
|
primarySkillType.toString().toLowerCase(Locale.ENGLISH) + ".conf",
|
||||||
StringUtils.getCapitalized(primarySkillType.toString()),
|
StringUtils.getCapitalized(primarySkillType.toString()),
|
||||||
null);
|
null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.admin;
|
package com.gmail.nossr50.config.admin;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.admin;
|
package com.gmail.nossr50.config.admin;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -119,4 +119,8 @@ public class ConfigExploitPrevention {
|
|||||||
public ConfigSectionExploitTaming getConfigSectionExploitTaming() {
|
public ConfigSectionExploitTaming getConfigSectionExploitTaming() {
|
||||||
return configSectionExploitSkills.getConfigSectionExploitTaming();
|
return configSectionExploitSkills.getConfigSectionExploitTaming();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSnowGolemExploitPrevented() {
|
||||||
|
return configSectionExploitSkills.isSnowGolemExploitPrevented();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
|
|
||||||
|
@ConfigSerializable
|
||||||
|
public class ConfigSectionExploitExcavation {
|
||||||
|
|
||||||
|
public static final boolean DEFAULT_SNOW_GOLEM = true;
|
||||||
|
@Setting(value = "Snow-Golem-Exploit", comment = "If set to true, the snow made by snow golems will not reward XP." +
|
||||||
|
"\nDefault value: "+DEFAULT_SNOW_GOLEM)
|
||||||
|
private boolean snowGolemExploit = DEFAULT_SNOW_GOLEM;
|
||||||
|
|
||||||
|
public boolean isSnowGolemExploitPrevented() {
|
||||||
|
return snowGolemExploit;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -26,6 +26,9 @@ public class ConfigSectionExploitSkills {
|
|||||||
@Setting(value = "Taming", comment = "Exploit settings related to Taming")
|
@Setting(value = "Taming", comment = "Exploit settings related to Taming")
|
||||||
private ConfigSectionExploitTaming configSectionExploitTaming = new ConfigSectionExploitTaming();
|
private ConfigSectionExploitTaming configSectionExploitTaming = new ConfigSectionExploitTaming();
|
||||||
|
|
||||||
|
@Setting(value = "Excavation", comment = "Exploit settings related to Excavation.")
|
||||||
|
private ConfigSectionExploitExcavation configSectionExploitExcavation = new ConfigSectionExploitExcavation();
|
||||||
|
|
||||||
public ConfigSectionExploitAcrobatics getConfigSectionExploitAcrobatics() {
|
public ConfigSectionExploitAcrobatics getConfigSectionExploitAcrobatics() {
|
||||||
return configSectionExploitAcrobatics;
|
return configSectionExploitAcrobatics;
|
||||||
}
|
}
|
||||||
@@ -46,6 +49,10 @@ public class ConfigSectionExploitSkills {
|
|||||||
return configSectionExploitMining.isPreventCobblestoneStoneGeneratorXP();
|
return configSectionExploitMining.isPreventCobblestoneStoneGeneratorXP();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSnowGolemExploitPrevented() {
|
||||||
|
return configSectionExploitExcavation.isSnowGolemExploitPrevented();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean areSummonsBreedable() {
|
public boolean areSummonsBreedable() {
|
||||||
return configSectionExploitTaming.areSummonsBreedable();
|
return configSectionExploitTaming.areSummonsBreedable();
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.antiexploit;
|
package com.gmail.nossr50.config.antiexploit;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.backup;
|
package com.gmail.nossr50.config.backup;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.commands;
|
package com.gmail.nossr50.config.commands;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.commands;
|
package com.gmail.nossr50.config.commands;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.commands;
|
package com.gmail.nossr50.config.commands;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.commands;
|
package com.gmail.nossr50.config.commands;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.commands;
|
package com.gmail.nossr50.config.commands;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.gmail.nossr50.config.hocon.database;
|
package com.gmail.nossr50.config.database;
|
||||||
|
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user