mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-21 03:03:02 +01:00
Compare commits
19 Commits
configurab
...
api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21b4bcc21f | ||
|
|
f96ba1b4b5 | ||
|
|
5ba410f4cf | ||
|
|
88767fd0a9 | ||
|
|
a2c88d657c | ||
|
|
a26216b0d0 | ||
|
|
d661a77c82 | ||
|
|
f50b368b60 | ||
|
|
1204b9a94c | ||
|
|
c2bbbdf24f | ||
|
|
c916070cd1 | ||
|
|
48e547e51f | ||
|
|
4ee86bf6a6 | ||
|
|
21a0a05683 | ||
|
|
ec58a0e81f | ||
|
|
f8a14a7ab3 | ||
|
|
eee09d8d76 | ||
|
|
1fbcf698c6 | ||
|
|
a84a9e9c38 |
@@ -203,84 +203,6 @@ Version 2.2.0
|
||||
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
|
||||
|
||||
Version 2.1.123
|
||||
Added 'Nether_Gold_Ore' to Mining XP tables in experience.yml with a value of 1300
|
||||
Adept Salvage message will now show the correct minimum level
|
||||
'Weeping_Vines' renamed to 'Weeping_Vines_Plant' in experience.yml (no edits necessary)
|
||||
'Twisted_Vines_Plant' added to Herbalism XP tables in experience.yml with a value of 10
|
||||
Weeping_Vines_Plant and Twisted_Vines_Plant are now flagged as multi-block plants in Herbalism
|
||||
|
||||
Version 2.1.122
|
||||
Changed the xp values for Nether_Wart_Block and Warped_Wart_Block from 20 to 1 for Woodcutting
|
||||
Changed the xp values for Nether_Wart_Block and Warped_Wart_Block from 20 to 3 for Herbalism
|
||||
mcMMO now treats Nether_Wart_Block and Warped_Wart_Block as leaves
|
||||
Removed Crimson_Roots and Warped_Roots from Woodcutting XP tables in experience.yml
|
||||
Added Crimson_Roots and Warped_Roots to Herbalism XP tables in experience.yml with a value of 6 XP
|
||||
Fixed some start up bugs for salvage/repair
|
||||
|
||||
You can either edit experience.yml yourself or delete it to regenerate a new one to get the new changes
|
||||
|
||||
Version 2.1.121
|
||||
Fixed a netherite related bug that prevented mcMMO from functioning correctly
|
||||
|
||||
Version 2.1.120
|
||||
Fixed a bug involving the new netherite equipment
|
||||
|
||||
Version 2.1.119
|
||||
1.16 Support
|
||||
Fixed another dupe bug
|
||||
Fixed a bug that can cause blast mining to give out more rewards than intended
|
||||
Blast Mining rewards are now randomized but still influenced by your blast mining rank
|
||||
mcMMO is now aware of turtle shell and treats it appropriately
|
||||
mcMMO is now aware of chainmail armor and treats it appropriately
|
||||
Calculations which change depend on the quality of your tool or armor has had netherrack support coded in
|
||||
All excavation drops that can drop from soul_sand now also drop from soul_soil (edited treasures.yml)
|
||||
|
||||
Added netherite armor/weapons/tools to repair.vanilla.yml
|
||||
Added netherite armor/weapons/tools to salvage.vanilla.yml
|
||||
|
||||
Added 'Bamboo_Sapling' to bonus drops for Herbalism in experience.yml
|
||||
Added 'Ancient_Debris' with a value of 7777 to Mining experience tables in experience.yml
|
||||
Added 'Basalt' with a value of 40 to Mining experience tables in experience.yml
|
||||
Added 'Crimson_Fungus' with a value of 50 to Herbalism experience tables in experience.yml
|
||||
Added 'Warped_Fungus' with a value of 50 to Herbalism experience tables in experience.yml
|
||||
Added 'Warped_Nylium' with a value of 5 to Mining experience tables in experience.yml
|
||||
Added 'Crimson_Nylium' with a value of 5 to Mining experience tables in experience.yml
|
||||
Added 'Crimson_Stem' with a value of 35 to Woodcutting experience tables in experience.yml
|
||||
Added 'Crimson_Roots' with a value of 35 to Woodcutting experience tables in experience.yml
|
||||
Added 'Warped_Stem' with a value of 35 to Woodcutting experience tables in experience.yml
|
||||
Added 'Warped_Roots' with a value of 35 to Woodcutting experience tables in experience.yml
|
||||
Added 'Ancient_Debris' with a value of 200 to Smelting experience tables in experience.yml
|
||||
Added 'Nether_Sprouts' with a value of 10 to Herbalism experience tables in experience.yml
|
||||
Added 'Shroomlight' with a value of 100 to Woodcutting experience tables in experience.yml
|
||||
Added 'Soul_Soil' with a value of 50 to Excavation experience tables in experience.yml
|
||||
Added 'Nether_Wart_Block' with a value of 20 to Woodcutting experience tables in experience.yml
|
||||
Added 'Nether_Wart_Block' with a value of 20 to Herbalism experience tables in experience.yml
|
||||
Added 'Warped_Wart_Block' with a value of 20 to Woodcutting experience tables in experience.yml
|
||||
Added 'Warped_Wart_Block' with a value of 20 to Herbalism experience tables in experience.yml
|
||||
Added 'Weeping_Vines' with a value of 10 to Herbalism experience tables in experience.yml
|
||||
|
||||
Added 'Ancient_Debris' to bonus drops for Mining in config.yml
|
||||
Added 'Netherite_Scrap' to bonus drops for Mining in config.yml
|
||||
Added 'Crimson_Fungus' to bonus drops for Herbalism in config.yml
|
||||
Added 'Warped_Fungus' to bonus drops for Herbalism in config.yml
|
||||
Added 'Warped_Nylium' to bonus drops for Mining in config.yml
|
||||
Added 'Crimson_Nylium' to bonus drops for Mining in config.yml
|
||||
Added 'Crimson_Stem' to bonus drops for Woodcutting in config.yml
|
||||
Added 'Warped_Stem' to bonus drops for Woodcutting in config.yml
|
||||
Added 'Shroomlight' to bonus drops for Woodcutting in config.yml
|
||||
|
||||
NOTES: You will likely need to update repair.vanilla.yml, salvage.vanilla.yml and treasures.yml
|
||||
You can just delete those config files to regenerate them fresh which is much faster if you don't have any custom settings in those files
|
||||
Here are the default configuration files if you wish to compare them to your own servers settings while updating your configs.
|
||||
https://paste.gg/p/anonymous/bf8ba1a24c8c4f188da5f8b8ebfc2b35 (Keep scrolling)
|
||||
|
||||
Netherrack is repaired using netherrack scraps for now, wait for 2.2 for a better version of repair.
|
||||
Netherrack salvages into netherrack scraps for now, wait for 2.2 for a better version of salvage.
|
||||
|
||||
Repairing chainmail/etc will be tackled in 2.2 so don't expect that in this version
|
||||
|
||||
|
||||
Version 2.1.118
|
||||
Fixed another dupe bug
|
||||
Blast Mining no longer reduces debris from explosions due to some issues with the Bukkit API
|
||||
|
||||
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.datatypes.MobHealthbarType;
|
||||
import com.gmail.nossr50.datatypes.meta.OldName;
|
||||
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.util.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
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 boolean healthBarPluginEnabled;
|
||||
|
||||
public MobHealthBarManager(mcMMO pluginRef) {
|
||||
public BukkitMobHealthBarManager(Plugin plugin, mcMMO pluginRef) {
|
||||
this.plugin = plugin;
|
||||
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
|
||||
* @return the fixed death message
|
||||
*/
|
||||
public String fixDeathMessage(String deathMessage, Player player) {
|
||||
EntityDamageEvent lastDamageCause = player.getLastDamageCause();
|
||||
@Override
|
||||
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";
|
||||
|
||||
return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString);
|
||||
@@ -36,13 +54,15 @@ public final class MobHealthBarManager {
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
public void handleMobHealthbars(LivingEntity target, double damage, mcMMO plugin) {
|
||||
if (pluginRef.isHealthBarPluginEnabled() || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) {
|
||||
@Override
|
||||
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;
|
||||
@@ -60,7 +80,7 @@ public final class MobHealthBarManager {
|
||||
* Store the name in metadata
|
||||
*/
|
||||
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) {
|
||||
oldName = "";
|
||||
@@ -79,14 +99,17 @@ public final class MobHealthBarManager {
|
||||
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
||||
|
||||
if (updateName) {
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, oldName));
|
||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, oldNameVisible));
|
||||
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) {
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, ""));
|
||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, false));
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, oldName));
|
||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, oldNameVisible));
|
||||
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, ""));
|
||||
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,7 +13,7 @@ description: >
|
||||
author: nossr50
|
||||
authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking, electronicboy, kashike]
|
||||
website: https://www.mcmmo.org
|
||||
main: com.gmail.nossr50.mcMMO
|
||||
main: com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap
|
||||
softdepend: [WorldGuard, WorldEdit, CombatTag, HealthBar]
|
||||
load: POSTWORLD
|
||||
api-version: 1.13
|
||||
@@ -9,6 +9,7 @@ plugins {
|
||||
tasks {
|
||||
|
||||
shadowJar {
|
||||
/*
|
||||
dependencies {
|
||||
include(dependency("org.spongepowered:configurate-yaml"))
|
||||
include(dependency("org.spongepowered:configurate-hocon"))
|
||||
@@ -24,6 +25,7 @@ tasks {
|
||||
include(dependency("net.kyori:text-serializer-gson"))
|
||||
exclude(dependency("org.spigotmc:spigot"))
|
||||
}
|
||||
*/
|
||||
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")
|
||||
@@ -57,21 +59,20 @@ tasks.named<ShadowJar>("shadowJar") {
|
||||
|
||||
|
||||
dependencies {
|
||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||
api("com.typesafe:config:1.3.2")
|
||||
api("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||
api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
api("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
||||
api("net.kyori:text-api:3.0.2")
|
||||
api("net.kyori:text-serializer-gson:3.0.2")
|
||||
api("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
||||
implementation("org.jetbrains:annotations:17.0.0")
|
||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||
implementation("org.bstats:bstats-bukkit:1.4")
|
||||
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||
api(project(":mcmmo-api"))
|
||||
compile("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||
compile("com.typesafe:config:1.3.2")
|
||||
compile("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||
compile("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||
compile("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||
compile("net.kyori:text-api:3.0.2")
|
||||
compile("net.kyori:text-serializer-gson:3.0.2")
|
||||
compile("net.kyori:text-adapter-bukkit:3.0.4-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")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package com.gmail.nossr50.chat;
|
||||
|
||||
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.McMMOPartyChatEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -14,29 +17,32 @@ import java.util.regex.Pattern;
|
||||
public class ChatManager {
|
||||
private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat";
|
||||
private final mcMMO pluginRef;
|
||||
@Deprecated
|
||||
private final Plugin legacyPlugin;
|
||||
|
||||
public ChatManager(mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.legacyPlugin = (Plugin) pluginRef.getPlatformProvider();
|
||||
}
|
||||
|
||||
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) {
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, senderName, displayName, message));
|
||||
sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, senderName, displayName, 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) {
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, senderName, senderName, party, message));
|
||||
sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, senderName, senderName, party, message));
|
||||
}
|
||||
|
||||
private void sendAdminChatMessage(McMMOAdminChatEvent event) {
|
||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
@@ -47,11 +53,11 @@ public class ChatManager {
|
||||
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
|
||||
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) {
|
||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
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
|
||||
*/
|
||||
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
//Check for toggled players
|
||||
if (mcMMOPlayer.isPartyChatSpying()) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.CommandSender;
|
||||
|
||||
@@ -21,8 +21,8 @@ public class AbilityToggleCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
|
||||
mcMMOPlayer.toggleAbilityUse();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -26,7 +26,7 @@ public class ChatNotificationToggleCommand implements TabExecutor {
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
|
||||
//Not Loaded yet
|
||||
if (mcMMOPlayer == null)
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.notifications.SensitiveCommandType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -37,15 +39,15 @@ public class ExperienceRateCommand implements TabExecutor {
|
||||
if (pluginRef.isXPEventEnabled()) {
|
||||
|
||||
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.Subtitle"),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
pluginRef.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"));
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
@@ -85,15 +87,15 @@ public class ExperienceRateCommand implements TabExecutor {
|
||||
pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
|
||||
|
||||
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.XP", newXpRate),
|
||||
10, 10 * 20, 20);
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
|
||||
pluginRef.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.Start"));
|
||||
Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate));
|
||||
}
|
||||
|
||||
//Admin notification
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.CommandSender;
|
||||
|
||||
@@ -21,8 +21,8 @@ public class GodModeCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.toggleGodMode();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
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(pluginRef.getLocaleManager().getString("MOTD.Version", pluginRef.getDescription().getVersion()));
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", ((Plugin) pluginRef.getPlatformProvider()).getDescription().getVersion()));
|
||||
|
||||
// mcMMO.getHolidayManager().anniversaryCheck(sender);
|
||||
return true;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.CommandSender;
|
||||
|
||||
@@ -21,13 +21,13 @@ public class RefreshCooldownsCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.setRecentlyHurt(0);
|
||||
mcMMOPlayer.resetCooldowns();
|
||||
mcMMOPlayer.resetToolPrepMode();
|
||||
mcMMOPlayer.resetSuperAbilityMode();
|
||||
|
||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.gmail.nossr50.commands;
|
||||
|
||||
import com.gmail.nossr50.database.FlatFileDatabaseManager;
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -24,7 +24,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
|
||||
if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) {
|
||||
SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager();
|
||||
sqlDatabaseManager.resetMobHealthSettings();
|
||||
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
@@ -33,7 +33,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
|
||||
if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) {
|
||||
FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager();
|
||||
flatFileDatabaseManager.resetMobHealthSettings();
|
||||
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
|
||||
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
|
||||
}
|
||||
sender.sendMessage("Mob health reset");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -46,7 +46,7 @@ public abstract class ToggleCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
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)) {
|
||||
return true;
|
||||
@@ -81,7 +81,7 @@ public abstract class ToggleCommand implements TabExecutor {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -54,40 +54,13 @@ public class NBTToolsCommand extends BaseCommand {
|
||||
player.sendMessage(ChatColor.GRAY + "NBT Analysis completed!");
|
||||
}
|
||||
|
||||
@Subcommand("tags set")
|
||||
public void onAddTags(Player player, String[] args) {
|
||||
if(args.length == 0) {
|
||||
player.sendMessage("No arguments provided!");
|
||||
} else if(args.length == 1) {
|
||||
player.sendMessage("Not enough arguments provided!");
|
||||
} else {
|
||||
player.sendMessage("Modifying NBT on item in hand...");
|
||||
String targetTag = args[0];
|
||||
@Subcommand("tags add")
|
||||
public void onAddTags(Player player) {
|
||||
|
||||
//Check for the tag
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Subcommand("tags remove")
|
||||
public void onRemoveTags(Player player, String[] args) {
|
||||
if(args.length == 0) {
|
||||
player.sendMessage("No arguments provided!");
|
||||
} else if(args.length == 1) {
|
||||
player.sendMessage("Not enough arguments provided!");
|
||||
} else {
|
||||
player.sendMessage("Modifying NBT on item in hand...");
|
||||
String targetTag = args[0];
|
||||
public void onRemoveTags(Player player) {
|
||||
|
||||
//Check for the tag
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Subcommand("tags clear")
|
||||
public void onClearTags(Player player) {
|
||||
//Clear all NBT tags that fall under "tag" on the item
|
||||
|
||||
player.sendMessage("Clearing NBT on item...");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ 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.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -21,13 +21,12 @@ public class PlayerDebugCommand extends BaseCommand {
|
||||
@Default
|
||||
public void onCommand(CommandSender sender) {
|
||||
if(sender instanceof Player) {
|
||||
McMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
|
||||
BukkitMMOPlayer mcMMOPlayer = plugin.getUserManager().getPlayer((Player) sender);
|
||||
|
||||
if(mcMMOPlayer == null)
|
||||
return;
|
||||
|
||||
mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
|
||||
plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
||||
plugin.getNotificationManager().sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getNative(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
|
||||
} else {
|
||||
//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.datatypes.chat.ChatMode;
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -26,7 +26,7 @@ public abstract class ChatCommand implements TabExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
McMMOPlayer mcMMOPlayer;
|
||||
BukkitMMOPlayer mcMMOPlayer;
|
||||
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
@@ -109,7 +109,7 @@ public abstract class ChatCommand implements TabExecutor {
|
||||
|
||||
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) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return;
|
||||
@@ -124,7 +124,7 @@ public abstract class ChatCommand implements TabExecutor {
|
||||
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) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
return;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.chat;
|
||||
|
||||
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 org.bukkit.command.CommandSender;
|
||||
|
||||
@@ -22,8 +22,8 @@ public class ChatSpyCommand extends ToggleCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||
protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
|
||||
mcMMOPlayer.togglePartyChatSpying();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -57,17 +59,24 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
||||
pluginRef.getUserManager().saveAll();
|
||||
pluginRef.getUserManager().clearAll();
|
||||
|
||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
||||
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||
|
||||
if (profile.isLoaded()) {
|
||||
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;
|
||||
|
||||
default:
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -31,10 +33,17 @@ public class ConvertExperienceCommand implements CommandExecutor {
|
||||
pluginRef.getUserManager().saveAll();
|
||||
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()) {
|
||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||
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;
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
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.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -96,12 +98,12 @@ public abstract class ExperienceCommand implements TabExecutor {
|
||||
int value = Integer.parseInt(args[2]);
|
||||
|
||||
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 (mcMMOPlayer == null) {
|
||||
UUID uuid = null;
|
||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName);
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
uuid = player.getUniqueId();
|
||||
}
|
||||
@@ -113,7 +115,7 @@ public abstract class ExperienceCommand implements TabExecutor {
|
||||
|
||||
editValues(null, profile, skill, value);
|
||||
} else {
|
||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
|
||||
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill, value);
|
||||
}
|
||||
|
||||
handleSenderMessage(sender, playerName, skill);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.gmail.nossr50.commands.experience;
|
||||
|
||||
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.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -81,12 +83,12 @@ public class SkillResetCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
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 (mcMMOPlayer == null) {
|
||||
UUID uuid = null;
|
||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName);
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||
if (player != null) {
|
||||
uuid = player.getUniqueId();
|
||||
}
|
||||
@@ -98,7 +100,7 @@ public class SkillResetCommand implements TabExecutor {
|
||||
|
||||
editValues(null, profile, skill);
|
||||
} else {
|
||||
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
|
||||
editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill);
|
||||
}
|
||||
|
||||
handleSenderMessage(sender, playerName, skill);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -26,7 +26,7 @@ public class PartyAcceptCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
|
||||
if (!mcMMOPlayer.hasPartyInvite()) {
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.gmail.nossr50.commands.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -28,7 +30,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor {
|
||||
|
||||
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
|
||||
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
|
||||
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName);
|
||||
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||
|
||||
if (!playerParty.hasMember(target.getUniqueId())) {
|
||||
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.teleport.PtpCommand;
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -110,7 +110,7 @@ public class PartyCommand implements TabExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (args.length < 1) {
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -21,7 +21,7 @@ public class PartyCreateCommand implements CommandExecutor {
|
||||
case 2:
|
||||
case 3:
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
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.PartyFeature;
|
||||
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.util.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
@@ -33,7 +33,7 @@ public class PartyInfoCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -21,13 +21,13 @@ public class PartyInviteCommand implements CommandExecutor {
|
||||
switch (args.length) {
|
||||
case 2:
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
@@ -35,7 +35,7 @@ public class PartyInviteCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
String playerName = player.getName();
|
||||
|
||||
if (player.equals(target)) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -22,13 +22,13 @@ public class PartyJoinCommand implements CommandExecutor {
|
||||
case 2:
|
||||
case 3:
|
||||
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)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (!mcMMOTarget.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
|
||||
@@ -42,7 +42,7 @@ public class PartyJoinCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party targetParty = mcMMOTarget.getParty();
|
||||
|
||||
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.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -34,7 +36,7 @@ public class PartyKickCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName);
|
||||
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
|
||||
|
||||
if (target.isOnline()) {
|
||||
Player onlineTarget = target.getPlayer();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.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.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -28,7 +28,7 @@ public class PartyQuitCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.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.mcMMO;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -26,7 +26,7 @@ public class PartyRenameCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
|
||||
Party playerParty = mcMMOPlayer.getParty();
|
||||
|
||||
String oldPartyName = playerParty.getName();
|
||||
@@ -38,7 +38,7 @@ public class PartyRenameCommand implements CommandExecutor {
|
||||
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
|
||||
if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -24,7 +24,7 @@ public class PartyAllianceAcceptCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.hasPartyAllianceInvite()) {
|
||||
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.datatypes.party.Party;
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.ChatColor;
|
||||
@@ -48,7 +48,7 @@ public class PartyAllianceCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
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()));
|
||||
}
|
||||
|
||||
private void displayMemberInfo(McMMOPlayer mcMMOPlayer) {
|
||||
private void displayMemberInfo(BukkitMMOPlayer mcMMOPlayer) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header"));
|
||||
player.sendMessage(playerParty.createMembersList(player));
|
||||
player.sendMessage(ChatColor.DARK_GRAY + "----------------------------");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -25,7 +25,7 @@ public class PartyAllianceDisbandCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party.getAlly() == null) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.party.alliance;
|
||||
|
||||
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 org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@@ -21,13 +21,13 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
|
||||
switch (args.length) {
|
||||
case 3:
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
@@ -35,7 +35,7 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
String playerName = player.getName();
|
||||
|
||||
if (player.equals(target)) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.gmail.nossr50.commands.CommandConstants;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
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.google.common.collect.ImmutableList;
|
||||
import org.bukkit.World;
|
||||
@@ -61,7 +61,7 @@ public class PtpCommand implements TabExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
|
||||
@@ -136,7 +136,7 @@ public class PtpCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (!mcMMOPlayer.inParty()) {
|
||||
return ImmutableList.of();
|
||||
@@ -157,8 +157,8 @@ public class PtpCommand implements TabExecutor {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) {
|
||||
World targetWorld = target.getWorld();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.mcMMO;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
@@ -47,7 +47,7 @@ public class CooldownCommand implements TabExecutor {
|
||||
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("mcMMO.NoSkillNote"));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
@@ -27,7 +27,7 @@ public class InspectCommand implements TabExecutor {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
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 (mcMMOPlayer == null) {
|
||||
@@ -65,7 +65,7 @@ public class InspectCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
} else {
|
||||
Player target = mcMMOPlayer.getPlayer();
|
||||
Player target = mcMMOPlayer.getNative();
|
||||
|
||||
if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline"));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
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.mcMMO;
|
||||
import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask;
|
||||
@@ -13,6 +13,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -90,7 +91,7 @@ public class LeaderboardCommand implements TabExecutor {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
long cooldownMillis = 5000;
|
||||
|
||||
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
|
||||
@@ -103,11 +104,11 @@ public class LeaderboardCommand implements TabExecutor {
|
||||
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"));
|
||||
return;
|
||||
} 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();
|
||||
@@ -120,7 +121,10 @@ public class LeaderboardCommand implements TabExecutor {
|
||||
boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(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) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.commands.player;
|
||||
|
||||
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.runnables.commands.RankCommandAsyncTask;
|
||||
import com.gmail.nossr50.util.scoreboards.SidebarType;
|
||||
@@ -11,6 +11,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -56,10 +57,10 @@ public class RankCommand implements TabExecutor {
|
||||
}
|
||||
|
||||
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
|
||||
if (mcMMOPlayer != null) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
playerName = player.getName();
|
||||
|
||||
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) {
|
||||
if (sender instanceof Player) {
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
|
||||
|
||||
if (mcMMOPlayer == null) {
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
|
||||
@@ -103,11 +104,11 @@ public class RankCommand implements TabExecutor {
|
||||
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"));
|
||||
return;
|
||||
} 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();
|
||||
@@ -117,10 +118,13 @@ public class RankCommand implements TabExecutor {
|
||||
&& (pluginRef.getScoreboardSettings().isScoreboardEnabled(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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,8 @@ public class MiningCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
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, 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(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
||||
}
|
||||
|
||||
if (canDemoExpert) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
@@ -64,7 +64,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
Player player = (Player) sender;
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill);
|
||||
boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0;
|
||||
@@ -135,7 +135,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
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 c1 = ChatColor.GOLD;
|
||||
ChatColor c2 = ChatColor.RED;
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.gmail.nossr50.core;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
|
||||
@@ -25,39 +24,7 @@ public class MaterialMapStore {
|
||||
private HashSet<String> foodItemWhiteList;
|
||||
private HashSet<String> glassBlocks;
|
||||
|
||||
private HashSet<String> netheriteArmor;
|
||||
private HashSet<String> netheriteTools;
|
||||
private HashSet<String> woodTools;
|
||||
private HashSet<String> stoneTools;
|
||||
private HashSet<String> leatherArmor;
|
||||
private HashSet<String> ironArmor;
|
||||
private HashSet<String> ironTools;
|
||||
private HashSet<String> stringTools;
|
||||
private HashSet<String> goldArmor;
|
||||
private HashSet<String> goldTools;
|
||||
private HashSet<String> chainmailArmor;
|
||||
private HashSet<String> diamondArmor;
|
||||
private HashSet<String> diamondTools;
|
||||
private HashSet<String> armors;
|
||||
|
||||
private HashSet<String> swords;
|
||||
private HashSet<String> axes;
|
||||
private HashSet<String> hoes;
|
||||
private HashSet<String> shovels;
|
||||
private HashSet<String> pickAxes;
|
||||
private HashSet<String> tridents;
|
||||
private HashSet<String> bows;
|
||||
private HashSet<String> tools;
|
||||
|
||||
private HashSet<String> enchantables;
|
||||
|
||||
private HashSet<String> ores;
|
||||
|
||||
private HashMap<String, Integer> tierValue;
|
||||
|
||||
|
||||
public MaterialMapStore()
|
||||
{
|
||||
public MaterialMapStore() {
|
||||
abilityBlackList = new HashSet<>();
|
||||
toolBlackList = new HashSet<>();
|
||||
mossyWhiteList = new HashSet<>();
|
||||
@@ -69,38 +36,7 @@ public class MaterialMapStore {
|
||||
foodItemWhiteList = new HashSet<>();
|
||||
glassBlocks = new HashSet<>();
|
||||
|
||||
leatherArmor = new HashSet<>();
|
||||
ironArmor = new HashSet<>();
|
||||
chainmailArmor = new HashSet<>();
|
||||
goldArmor = new HashSet<>();
|
||||
diamondArmor = new HashSet<>();
|
||||
netheriteArmor = new HashSet<>();
|
||||
armors = new HashSet<>();
|
||||
|
||||
woodTools = new HashSet<>();
|
||||
stoneTools = new HashSet<>();
|
||||
ironTools = new HashSet<>();
|
||||
goldTools = new HashSet<>();
|
||||
diamondTools = new HashSet<>();
|
||||
netheriteTools = new HashSet<>();
|
||||
bows = new HashSet<>();
|
||||
stringTools = new HashSet<>();
|
||||
tools = new HashSet<>();
|
||||
|
||||
swords = new HashSet<>();
|
||||
axes = new HashSet<>();
|
||||
pickAxes = new HashSet<>();
|
||||
shovels = new HashSet<>();
|
||||
hoes = new HashSet<>();
|
||||
tridents = new HashSet<>();
|
||||
|
||||
enchantables = new HashSet<>();
|
||||
|
||||
ores = new HashSet<>();
|
||||
|
||||
tierValue = new HashMap<>();
|
||||
|
||||
fillVanillaMaterialRegisters();
|
||||
fillHardcodedHashSets();
|
||||
}
|
||||
|
||||
public boolean isMultiBlockPlant(Material material)
|
||||
@@ -136,8 +72,7 @@ public class MaterialMapStore {
|
||||
return canMakeShroomyWhiteList.contains(material.getKey().getKey());
|
||||
}
|
||||
|
||||
private void fillVanillaMaterialRegisters()
|
||||
{
|
||||
private void fillHardcodedHashSets() {
|
||||
fillAbilityBlackList();
|
||||
fillToolBlackList();
|
||||
fillMossyWhiteList();
|
||||
@@ -148,320 +83,6 @@ public class MaterialMapStore {
|
||||
fillMultiBlockEntitiesList();
|
||||
fillFoodWhiteList();
|
||||
fillGlassBlockWhiteList();
|
||||
fillArmors();
|
||||
fillTools();
|
||||
fillEnchantables();
|
||||
fillOres();
|
||||
|
||||
fillTierMap();
|
||||
}
|
||||
|
||||
private void fillTierMap() {
|
||||
for(String id : leatherArmor) {
|
||||
tierValue.put(id, 1);
|
||||
}
|
||||
|
||||
for(String id : ironArmor) {
|
||||
tierValue.put(id, 2);
|
||||
}
|
||||
|
||||
for(String id : goldArmor) {
|
||||
tierValue.put(id, 3);
|
||||
}
|
||||
|
||||
for(String id : chainmailArmor) {
|
||||
tierValue.put(id, 3);
|
||||
}
|
||||
|
||||
for(String id : diamondArmor) {
|
||||
tierValue.put(id, 6);
|
||||
}
|
||||
|
||||
for(String id : netheriteArmor) {
|
||||
tierValue.put(id, 12);
|
||||
}
|
||||
}
|
||||
|
||||
private void fillOres() {
|
||||
ores.add("coal_ore");
|
||||
ores.add("diamond_ore");
|
||||
ores.add("nether_quartz_ore");
|
||||
ores.add("quartz_ore"); //Pre 1.13
|
||||
ores.add("gold_ore");
|
||||
ores.add("iron_ore");
|
||||
ores.add("lapis_ore");
|
||||
ores.add("redstone_ore");
|
||||
ores.add("emerald_ore");
|
||||
ores.add("ancient_debris");
|
||||
}
|
||||
|
||||
private void fillArmors() {
|
||||
fillLeatherArmorWhiteList();
|
||||
fillIronArmorWhiteList();
|
||||
fillChainmailWhiteList();
|
||||
fillGoldArmorWhiteList();
|
||||
fillDiamondArmorWhiteList();
|
||||
fillnetheriteArmorWhiteList();
|
||||
|
||||
//Add all armors to armors hashset
|
||||
armors.addAll(leatherArmor);
|
||||
armors.addAll(ironArmor);
|
||||
armors.addAll(chainmailArmor);
|
||||
armors.addAll(goldArmor);
|
||||
armors.addAll(diamondArmor);
|
||||
armors.addAll(netheriteArmor);
|
||||
|
||||
armors.add("turtle_shell");
|
||||
}
|
||||
|
||||
private void fillEnchantables() {
|
||||
enchantables.addAll(armors);
|
||||
enchantables.addAll(swords);
|
||||
enchantables.addAll(axes);
|
||||
enchantables.addAll(hoes);
|
||||
enchantables.addAll(pickAxes);
|
||||
enchantables.addAll(tridents);
|
||||
enchantables.addAll(bows);
|
||||
|
||||
enchantables.add("shears");
|
||||
enchantables.add("fishing_rod");
|
||||
enchantables.add("carrot_on_a_stick");
|
||||
enchantables.add("enchanted_book");
|
||||
enchantables.add("flint_and_steel");
|
||||
enchantables.add("turtle_shell");
|
||||
}
|
||||
|
||||
private void fillTools() {
|
||||
fillWoodToolsWhiteList();
|
||||
fillStoneToolsWhiteList();
|
||||
fillIronToolsWhiteList();
|
||||
fillGoldToolsWhiteList();
|
||||
fillDiamondToolsWhiteList();
|
||||
fillnetheriteToolsWhiteList();
|
||||
|
||||
fillSwords();
|
||||
fillAxes();
|
||||
fillPickAxes();
|
||||
fillHoes();
|
||||
fillShovels();
|
||||
fillTridents();
|
||||
fillStringTools();
|
||||
fillBows();
|
||||
|
||||
//Tools collection
|
||||
tools.addAll(woodTools);
|
||||
tools.addAll(stoneTools);
|
||||
tools.addAll(ironTools);
|
||||
tools.addAll(goldTools);
|
||||
tools.addAll(diamondTools);
|
||||
tools.addAll(netheriteTools);
|
||||
tools.addAll(tridents);
|
||||
tools.addAll(stringTools);
|
||||
tools.addAll(bows);
|
||||
}
|
||||
|
||||
private void fillBows() {
|
||||
bows.add("bow");
|
||||
}
|
||||
|
||||
private void fillStringTools() {
|
||||
stringTools.add("bow");
|
||||
stringTools.add("fishing_rod");
|
||||
stringTools.add("carrot_on_a_stick");
|
||||
}
|
||||
|
||||
private void fillTridents() {
|
||||
tridents.add("trident");
|
||||
}
|
||||
|
||||
private void fillSwords() {
|
||||
swords.add("wood_sword");
|
||||
swords.add("wooden_sword");
|
||||
swords.add("stone_sword");
|
||||
swords.add("iron_sword");
|
||||
swords.add("gold_sword");
|
||||
swords.add("golden_sword");
|
||||
swords.add("diamond_sword");
|
||||
swords.add("netherite_sword");
|
||||
}
|
||||
|
||||
private void fillAxes() {
|
||||
axes.add("wood_axe");
|
||||
axes.add("wooden_axe");
|
||||
axes.add("stone_axe");
|
||||
axes.add("iron_axe");
|
||||
axes.add("gold_axe");
|
||||
axes.add("golden_axe");
|
||||
axes.add("diamond_axe");
|
||||
axes.add("netherite_axe");
|
||||
}
|
||||
|
||||
private void fillPickAxes() {
|
||||
pickAxes.add("wood_pickaxe");
|
||||
pickAxes.add("wooden_pickaxe");
|
||||
pickAxes.add("stone_pickaxe");
|
||||
pickAxes.add("iron_pickaxe");
|
||||
pickAxes.add("gold_pickaxe");
|
||||
pickAxes.add("golden_pickaxe");
|
||||
pickAxes.add("diamond_pickaxe");
|
||||
pickAxes.add("netherite_pickaxe");
|
||||
}
|
||||
|
||||
private void fillHoes() {
|
||||
hoes.add("wood_hoe");
|
||||
hoes.add("wooden_hoe");
|
||||
hoes.add("stone_hoe");
|
||||
hoes.add("iron_hoe");
|
||||
hoes.add("gold_hoe");
|
||||
hoes.add("golden_hoe");
|
||||
hoes.add("diamond_hoe");
|
||||
hoes.add("netherite_hoe");
|
||||
}
|
||||
|
||||
private void fillShovels() {
|
||||
shovels.add("wood_shovel");
|
||||
shovels.add("wooden_shovel");
|
||||
shovels.add("stone_shovel");
|
||||
shovels.add("iron_shovel");
|
||||
shovels.add("gold_shovel");
|
||||
shovels.add("golden_shovel");
|
||||
shovels.add("diamond_shovel");
|
||||
shovels.add("netherite_shovel");
|
||||
}
|
||||
|
||||
private void fillLeatherArmorWhiteList() {
|
||||
leatherArmor.add("leather_helmet");
|
||||
leatherArmor.add("leather_chestplate");
|
||||
leatherArmor.add("leather_leggings");
|
||||
leatherArmor.add("leather_boots");
|
||||
}
|
||||
|
||||
private void fillIronArmorWhiteList() {
|
||||
ironArmor.add("iron_helmet");
|
||||
ironArmor.add("iron_chestplate");
|
||||
ironArmor.add("iron_leggings");
|
||||
ironArmor.add("iron_boots");
|
||||
}
|
||||
|
||||
private void fillChainmailWhiteList() {
|
||||
chainmailArmor.add("chainmail_helmet");
|
||||
chainmailArmor.add("chainmail_chestplate");
|
||||
chainmailArmor.add("chainmail_leggings");
|
||||
chainmailArmor.add("chainmail_boots");
|
||||
}
|
||||
|
||||
private void fillGoldArmorWhiteList() {
|
||||
goldArmor.add("gold_helmet");
|
||||
goldArmor.add("gold_chestplate");
|
||||
goldArmor.add("gold_leggings");
|
||||
goldArmor.add("gold_boots");
|
||||
|
||||
//Gold became Golden post 1.13
|
||||
goldArmor.add("golden_helmet");
|
||||
goldArmor.add("golden_chestplate");
|
||||
goldArmor.add("golden_leggings");
|
||||
goldArmor.add("golden_boots");
|
||||
}
|
||||
|
||||
private void fillDiamondArmorWhiteList() {
|
||||
diamondArmor.add("diamond_helmet");
|
||||
diamondArmor.add("diamond_chestplate");
|
||||
diamondArmor.add("diamond_leggings");
|
||||
diamondArmor.add("diamond_boots");
|
||||
}
|
||||
|
||||
private void fillnetheriteArmorWhiteList() {
|
||||
netheriteArmor.add("netherite_helmet");
|
||||
netheriteArmor.add("netherite_chestplate");
|
||||
netheriteArmor.add("netherite_leggings");
|
||||
netheriteArmor.add("netherite_boots");
|
||||
}
|
||||
|
||||
private void fillWoodToolsWhiteList() {
|
||||
woodTools.add("wood_sword");
|
||||
woodTools.add("wood_axe");
|
||||
woodTools.add("wood_hoe");
|
||||
woodTools.add("wood_pickaxe");
|
||||
woodTools.add("wood_shovel");
|
||||
|
||||
//Wood became wooden post 1.13
|
||||
woodTools.add("wooden_sword");
|
||||
woodTools.add("wooden_axe");
|
||||
woodTools.add("wooden_hoe");
|
||||
woodTools.add("wooden_pickaxe");
|
||||
woodTools.add("wooden_shovel");
|
||||
}
|
||||
|
||||
private void fillStoneToolsWhiteList() {
|
||||
stoneTools.add("stone_sword");
|
||||
stoneTools.add("stone_axe");
|
||||
stoneTools.add("stone_hoe");
|
||||
stoneTools.add("stone_pickaxe");
|
||||
stoneTools.add("stone_shovel");
|
||||
}
|
||||
|
||||
private void fillIronToolsWhiteList() {
|
||||
ironTools.add("iron_sword");
|
||||
ironTools.add("iron_axe");
|
||||
ironTools.add("iron_hoe");
|
||||
ironTools.add("iron_pickaxe");
|
||||
ironTools.add("iron_shovel");
|
||||
|
||||
//Used for repair, remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
//TODO: Remove in 2.2
|
||||
ironTools.add("bucket");
|
||||
ironTools.add("flint_and_steel");
|
||||
ironTools.add("shears");
|
||||
}
|
||||
|
||||
private void fillGoldToolsWhiteList() {
|
||||
goldTools.add("gold_sword");
|
||||
goldTools.add("gold_axe");
|
||||
goldTools.add("gold_hoe");
|
||||
goldTools.add("gold_pickaxe");
|
||||
goldTools.add("gold_shovel");
|
||||
|
||||
//Gold became golden post 1.13
|
||||
goldTools.add("golden_sword");
|
||||
goldTools.add("golden_axe");
|
||||
goldTools.add("golden_hoe");
|
||||
goldTools.add("golden_pickaxe");
|
||||
goldTools.add("golden_shovel");
|
||||
}
|
||||
|
||||
private void fillDiamondToolsWhiteList() {
|
||||
diamondTools.add("diamond_sword");
|
||||
diamondTools.add("diamond_axe");
|
||||
diamondTools.add("diamond_hoe");
|
||||
diamondTools.add("diamond_pickaxe");
|
||||
diamondTools.add("diamond_shovel");
|
||||
}
|
||||
|
||||
private void fillnetheriteToolsWhiteList() {
|
||||
netheriteTools.add("netherite_sword");
|
||||
netheriteTools.add("netherite_axe");
|
||||
netheriteTools.add("netherite_hoe");
|
||||
netheriteTools.add("netherite_pickaxe");
|
||||
netheriteTools.add("netherite_shovel");
|
||||
}
|
||||
|
||||
private void fillGlassBlockWhiteList() {
|
||||
@@ -540,200 +161,6 @@ public class MaterialMapStore {
|
||||
foodItemWhiteList.add("tropical_fish");
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a Material is used for Armor
|
||||
* @param material target material
|
||||
* @return true if it is used for armor
|
||||
*/
|
||||
public boolean isArmor(Material material) {
|
||||
return isArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the id provided is used as armor
|
||||
* @param id target item id
|
||||
* @return true if the item id matches armor
|
||||
*/
|
||||
public boolean isArmor(String id) {
|
||||
return armors.contains(id);
|
||||
}
|
||||
|
||||
public boolean isTool(Material material) {
|
||||
return isTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isTool(String id) {
|
||||
return tools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isEnchantable(Material material) {
|
||||
return isEnchantable(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isEnchantable(String id) {
|
||||
return enchantables.contains(id);
|
||||
}
|
||||
|
||||
public boolean isOre(Material material) {
|
||||
return isOre(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isOre(String id) {
|
||||
return ores.contains(id);
|
||||
}
|
||||
|
||||
public boolean isBow(Material material) {
|
||||
return isBow(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isBow(String id) {
|
||||
return bows.contains(id);
|
||||
}
|
||||
|
||||
public boolean isLeatherArmor(Material material) {
|
||||
return isLeatherArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isLeatherArmor(String id) {
|
||||
return leatherArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isIronArmor(Material material) {
|
||||
return isIronArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isIronArmor(String id) {
|
||||
return ironArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isGoldArmor(Material material) {
|
||||
return isGoldArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isGoldArmor(String id) {
|
||||
return goldArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isDiamondArmor(Material material) {
|
||||
return isDiamondArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isDiamondArmor(String id) {
|
||||
return diamondArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isChainmailArmor(Material material) {
|
||||
return isChainmailArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isChainmailArmor(String id) {
|
||||
return chainmailArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isNetheriteArmor(Material material) {
|
||||
return isNetheriteArmor(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isNetheriteArmor(String id) {
|
||||
return netheriteArmor.contains(id);
|
||||
}
|
||||
|
||||
public boolean isWoodTool(Material material) {
|
||||
return isWoodTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isWoodTool(String id) {
|
||||
return woodTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isStoneTool(Material material) {
|
||||
return isStoneTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isStoneTool(String id) {
|
||||
return stoneTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isIronTool(Material material) {
|
||||
return isIronTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isIronTool(String id) {
|
||||
return ironTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isGoldTool(Material material) {
|
||||
return isGoldTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isGoldTool(String id) {
|
||||
return goldTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isDiamondTool(Material material) {
|
||||
return isDiamondTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isDiamondTool(String id) {
|
||||
return diamondTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isSword(Material material) {
|
||||
return isSword(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isSword(String id) {
|
||||
return swords.contains(id);
|
||||
}
|
||||
|
||||
public boolean isAxe(Material material) {
|
||||
return isAxe(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isAxe(String id) {
|
||||
return axes.contains(id);
|
||||
}
|
||||
|
||||
public boolean isPickAxe(Material material) {
|
||||
return isPickAxe(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isPickAxe(String id) {
|
||||
return pickAxes.contains(id);
|
||||
}
|
||||
|
||||
public boolean isShovel(Material material) {
|
||||
return isShovel(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isShovel(String id) {
|
||||
return shovels.contains(id);
|
||||
}
|
||||
|
||||
public boolean isHoe(Material material) {
|
||||
return isHoe(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isHoe(String id) {
|
||||
return hoes.contains(id);
|
||||
}
|
||||
|
||||
public boolean isNetheriteTool(Material material) {
|
||||
return isNetheriteTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isNetheriteTool(String id) {
|
||||
return netheriteTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isStringTool(Material material) {
|
||||
return isStringTool(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public boolean isStringTool(String id) {
|
||||
return stringTools.contains(id);
|
||||
}
|
||||
|
||||
public boolean isGlass(Material material) {
|
||||
return glassBlocks.contains(material.getKey().getKey());
|
||||
}
|
||||
@@ -754,8 +181,6 @@ public class MaterialMapStore {
|
||||
multiBlockPlant.add("large_fern");
|
||||
multiBlockPlant.add("tall_grass");
|
||||
multiBlockPlant.add("bamboo");
|
||||
multiBlockPlant.add("weeping_vines_plant");
|
||||
multiBlockPlant.add("twisted_vines_plant");
|
||||
}
|
||||
|
||||
private void fillShroomyWhiteList() {
|
||||
@@ -784,8 +209,6 @@ public class MaterialMapStore {
|
||||
leavesWhiteList.add("dark_oak_leaves");
|
||||
leavesWhiteList.add("jungle_leaves");
|
||||
leavesWhiteList.add("spruce_leaves");
|
||||
leavesWhiteList.add("nether_wart_block");
|
||||
leavesWhiteList.add("warped_wart_block");
|
||||
}
|
||||
|
||||
private void fillMossyWhiteList() {
|
||||
@@ -796,18 +219,7 @@ public class MaterialMapStore {
|
||||
mossyWhiteList.add("cobblestone_wall");
|
||||
}
|
||||
|
||||
private void fillAbilityBlackList()
|
||||
{
|
||||
abilityBlackList.add("warped_fence_gate");
|
||||
abilityBlackList.add("crimson_fence_gate");
|
||||
abilityBlackList.add("warped_pressure_plate");
|
||||
abilityBlackList.add("crimson_pressure_plate");
|
||||
abilityBlackList.add("warped_button");
|
||||
abilityBlackList.add("crimson_button");
|
||||
abilityBlackList.add("warped_door");
|
||||
abilityBlackList.add("crimson_door");
|
||||
abilityBlackList.add("warped_trapdoor");
|
||||
abilityBlackList.add("crimson_trapdoor");
|
||||
private void fillAbilityBlackList() {
|
||||
abilityBlackList.add("black_bed");
|
||||
abilityBlackList.add("blue_bed");
|
||||
abilityBlackList.add("brown_bed");
|
||||
@@ -1061,14 +473,6 @@ public class MaterialMapStore {
|
||||
toolBlackList.add("stonecutter");
|
||||
}
|
||||
|
||||
public int getTier(Material material) {
|
||||
return getTier(material.getKey().getKey());
|
||||
}
|
||||
|
||||
public int getTier(String id) {
|
||||
return tierValue.getOrDefault(id, 1); //1 for unknown items
|
||||
}
|
||||
|
||||
private void addToHashSet(String string, HashSet<String> stringHashSet)
|
||||
{
|
||||
stringHashSet.add(string.toLowerCase(Locale.ENGLISH));
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.gmail.nossr50.core;
|
||||
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
|
||||
/**
|
||||
@@ -8,31 +10,32 @@ import org.bukkit.metadata.FixedMetadataValue;
|
||||
public class MetadataConstants {
|
||||
|
||||
/* Metadata Values */
|
||||
public static final String REPLANT_META_KEY = "mcMMO: Recently Replanted";
|
||||
public static final String FISH_HOOK_REF_METAKEY = "mcMMO: Fish Hook Tracker";
|
||||
public static final String DODGE_TRACKER = "mcMMO: Dodge Tracker";
|
||||
public static final String CUSTOM_DAMAGE_METAKEY = "mcMMO: Custom Damage";
|
||||
public final static String UNNATURAL_MOB_METAKEY = "mcMMO: Spawned Entity";
|
||||
public final static String PISTON_TRACKING_METAKEY = "mcMMO: Piston Tracking";
|
||||
public final static String FURNACE_TRACKING_METAKEY = "mcMMO: Tracked Furnace";
|
||||
public final static String TNT_TRACKING_METAKEY = "mcMMO: Tracked TNT";
|
||||
public final static String SPAWNED_FIREWORKS_METAKEY = "mcMMO: Funfetti";
|
||||
public final static String SAFE_TNT_METAKEY = "mcMMO: Safe TNT";
|
||||
public final static String CUSTOM_NAME_METAKEY = "mcMMO: Custom Name";
|
||||
public final static String NAME_VISIBILITY_METAKEY = "mcMMO: Name Visibility";
|
||||
public final static String DROPPED_ITEM_TRACKING_METAKEY = "mcMMO: Tracked Item";
|
||||
public final static String INFINITE_ARROW_METAKEY = "mcMMO: Infinite Arrow";
|
||||
public final static String BOW_FORCE_METAKEY = "mcMMO: Bow Force";
|
||||
public final static String ARROW_DISTANCE_METAKEY = "mcMMO: Arrow Distance";
|
||||
public final static String ARROW_TRACKER_METAKEY = "mcMMO: Arrow Tracker";
|
||||
public final static String BONUS_DROPS_METAKEY = "mcMMO: Bonus Drops";
|
||||
public final static String DISARMED_ITEM_METAKEY = "mcMMO: Disarmed Item";
|
||||
public final static String PLAYER_DATA_METAKEY = "mcMMO: Player Data";
|
||||
public final static String GREEN_THUMB_METAKEY = "mcMMO: Green Thumb";
|
||||
public final static String DATABASE_PROCESSING_COMMAND_METAKEY = "mcMMO: Processing Database Command";
|
||||
public final static String PETS_ANIMAL_TRACKING_METAKEY = "mcMMO: Pet Animal";
|
||||
public static final String COTW_TEMPORARY_SUMMON = "mcMMO: COTW Entity";
|
||||
public static final MetadataKey<Boolean> REPLANT_META_KEY = new MetadataKey<>("mcMMO: Recently Replanted");
|
||||
public static final MetadataKey<Boolean> FISH_HOOK_REF_METAKEY = new MetadataKey<>("mcMMO: Fish Hook Tracker");
|
||||
public static final MetadataKey<Boolean> DODGE_TRACKER = new MetadataKey<>("mcMMO: Dodge Tracker");
|
||||
public static final MetadataKey<Boolean> CUSTOM_DAMAGE_METAKEY = new MetadataKey<>("mcMMO: Custom Damage");
|
||||
public final static MetadataKey<Boolean> UNNATURAL_MOB_METAKEY = new MetadataKey<>("mcMMO: Spawned Entity");
|
||||
public final static MetadataKey<Boolean> PISTON_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Piston Tracking");
|
||||
public final static MetadataKey<Boolean> FURNACE_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Furnace");
|
||||
public final static MetadataKey<Boolean> TNT_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked TNT");
|
||||
public final static MetadataKey<Boolean> SPAWNED_FIREWORKS_METAKEY = new MetadataKey<>("mcMMO: Funfetti");
|
||||
public final static MetadataKey<Boolean> SAFE_TNT_METAKEY = new MetadataKey<>("mcMMO: Safe TNT");
|
||||
public final static MetadataKey<String> CUSTOM_NAME_METAKEY = new MetadataKey<>("mcMMO: Custom Name");
|
||||
public final static MetadataKey<Boolean> NAME_VISIBILITY_METAKEY = new MetadataKey<>("mcMMO: Name Visibility");
|
||||
public final static MetadataKey<Boolean> DROPPED_ITEM_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Item");
|
||||
public final static MetadataKey<Boolean> INFINITE_ARROW_METAKEY = new MetadataKey<>("mcMMO: Infinite Arrow");
|
||||
public final static MetadataKey<Boolean> BOW_FORCE_METAKEY = new MetadataKey<>("mcMMO: Bow Force");
|
||||
public final static MetadataKey<Boolean> ARROW_DISTANCE_METAKEY = new MetadataKey<>("mcMMO: Arrow Distance");
|
||||
public final static MetadataKey<Boolean> ARROW_TRACKER_METAKEY = new MetadataKey<>("mcMMO: Arrow Tracker");
|
||||
public final static MetadataKey<Boolean> BONUS_DROPS_METAKEY = new MetadataKey<>("mcMMO: Bonus Drops");
|
||||
public final static MetadataKey<Boolean> DISARMED_ITEM_METAKEY = new MetadataKey<>("mcMMO: Disarmed Item");
|
||||
public final static MetadataKey<MMOPlayer<?>> PLAYER_DATA_METAKEY = new MetadataKey<>("mcMMO: Player Data");
|
||||
public final static MetadataKey<Boolean> GREEN_THUMB_METAKEY = new MetadataKey<>("mcMMO: Green Thumb");
|
||||
public final static MetadataKey<Boolean> DATABASE_PROCESSING_COMMAND_METAKEY = new MetadataKey<>("mcMMO: Processing Database Command");
|
||||
public final static MetadataKey<Boolean> PETS_ANIMAL_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Pet Animal");
|
||||
public static final MetadataKey<Boolean> COTW_TEMPORARY_SUMMON = new MetadataKey<>("mcMMO: COTW Entity");
|
||||
|
||||
@Deprecated
|
||||
public static FixedMetadataValue metadataValue; //Gains value in onEnable
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
import java.io.*;
|
||||
@@ -179,7 +181,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (lastPlayed == 0) {
|
||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(name);
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(name);
|
||||
lastPlayed = player.getLastPlayed();
|
||||
rewrite = true;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.datatypes.meta;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* Stores how many bonus drops a block should give
|
||||
@@ -9,6 +10,6 @@ import org.bukkit.metadata.FixedMetadataValue;
|
||||
public class BonusDropMeta extends FixedMetadataValue {
|
||||
|
||||
public BonusDropMeta(int value, mcMMO plugin) {
|
||||
super(plugin, value);
|
||||
super((Plugin) plugin.getPlatformProvider(), value);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.datatypes.meta;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* This class is for storing mob names since we switch them to heart values
|
||||
@@ -9,7 +10,7 @@ import org.bukkit.metadata.FixedMetadataValue;
|
||||
public class OldName extends FixedMetadataValue {
|
||||
|
||||
public OldName(String oldName, mcMMO plugin) {
|
||||
super(plugin, oldName);
|
||||
super((Plugin) plugin.getPlatformProvider(), oldName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.gmail.nossr50.datatypes.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.party.ShareHandler;
|
||||
import com.gmail.nossr50.util.StringUtils;
|
||||
@@ -250,7 +250,7 @@ public class Party {
|
||||
}
|
||||
|
||||
if (!pluginRef.getConfigManager().getConfigParty().getPartyXP().getPartyLevel().isInformPartyMembersOnLevelup()) {
|
||||
Player leader = pluginRef.getServer().getPlayer(this.leader.getUniqueId());
|
||||
Player leader = Bukkit.getServer().getPlayer(this.leader.getUniqueId());
|
||||
|
||||
if (leader != null) {
|
||||
leader.sendMessage(pluginRef.getLocaleManager().getString("Party.LevelUp", levelsGained, getLevel()));
|
||||
@@ -503,12 +503,12 @@ public class Party {
|
||||
* @param mcMMOPlayer The player to check
|
||||
* @return the near party members
|
||||
*/
|
||||
public List<Player> getNearMembers(McMMOPlayer mcMMOPlayer) {
|
||||
public List<Player> getNearMembers(BukkitMMOPlayer mcMMOPlayer) {
|
||||
List<Player> nearMembers = new ArrayList<Player>();
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party != null) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
double range = pluginRef.getConfigManager().getConfigParty().getPartyXP().getPartyExperienceSharing().getPartyShareRange();
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.ToolType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||
import com.gmail.nossr50.runnables.skills.AbilityDisableTask;
|
||||
import com.gmail.nossr50.runnables.skills.ToolLowerTask;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
@@ -45,7 +46,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
public class McMMOPlayer {
|
||||
public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
||||
private final mcMMO pluginRef;
|
||||
private final Map<PrimarySkillType, SkillManager> skillManagerMap = new HashMap<>();
|
||||
private final Map<SuperAbilityType, Boolean> superAbilityModeMap = new HashMap<>();
|
||||
@@ -78,13 +79,13 @@ public class McMMOPlayer {
|
||||
private HashMap<PrimarySkillType, Double> personalXPModifiers;
|
||||
private String playerName;
|
||||
|
||||
public McMMOPlayer(Player player, PlayerProfile profile, mcMMO pluginRef) {
|
||||
public BukkitMMOPlayer(Player player, PlayerProfile profile, mcMMO pluginRef) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.playerName = player.getName();
|
||||
UUID uuid = player.getUniqueId();
|
||||
|
||||
this.player = player;
|
||||
playerMetadata = new FixedMetadataValue(pluginRef, playerName);
|
||||
playerMetadata = new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), playerName);
|
||||
this.profile = profile;
|
||||
|
||||
if (profile.getUniqueId() == null) {
|
||||
@@ -321,7 +322,9 @@ public class McMMOPlayer {
|
||||
public void resetSuperAbilityMode() {
|
||||
for (SuperAbilityType superAbilityType : SuperAbilityType.values()) {
|
||||
// Correctly disable and handle any special deactivate code
|
||||
new AbilityDisableTask(pluginRef,this, superAbilityType).run();
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setTask(new AbilityDisableTask(pluginRef,this, superAbilityType))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -655,7 +658,7 @@ public class McMMOPlayer {
|
||||
return;
|
||||
|
||||
if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) {
|
||||
processPostXpEvent(primarySkillType, pluginRef, xpGainSource);
|
||||
processPostXpEvent(primarySkillType, (Plugin) pluginRef.getPlatformProvider(), xpGainSource);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -686,14 +689,15 @@ public class McMMOPlayer {
|
||||
pluginRef.getNotificationManager().sendPlayerLevelUpNotification(this, primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType));
|
||||
|
||||
//UPDATE XP BARS
|
||||
processPostXpEvent(primarySkillType, pluginRef, xpGainSource);
|
||||
processPostXpEvent(primarySkillType, (Plugin) pluginRef.getPlatformProvider(), xpGainSource);
|
||||
}
|
||||
|
||||
/*
|
||||
* Players & Profiles
|
||||
*/
|
||||
|
||||
public Player getPlayer() {
|
||||
@Override
|
||||
public Player getNative() {
|
||||
return player;
|
||||
}
|
||||
|
||||
@@ -767,7 +771,7 @@ public class McMMOPlayer {
|
||||
}
|
||||
|
||||
public void loginParty() {
|
||||
party.addOnlineMember(this.getPlayer());
|
||||
party.addOnlineMember(this.getNative());
|
||||
}
|
||||
|
||||
public int getItemShareModifier() {
|
||||
@@ -901,7 +905,7 @@ public class McMMOPlayer {
|
||||
|
||||
//TODO: This is hacky and temporary solution until skills are moved to the new system
|
||||
//Potential problems with this include skills with two super abilities (ie mining)
|
||||
if (!pluginRef.getSkillTools().isSuperAbilityUnlocked(primarySkillType, getPlayer())) {
|
||||
if (!pluginRef.getSkillTools().isSuperAbilityUnlocked(primarySkillType, getNative())) {
|
||||
int diff = pluginRef.getRankTools().getSuperAbilityUnlockRequirement(pluginRef.getSkillTools().getSuperAbility(primarySkillType)) - getSkillLevel(primarySkillType);
|
||||
|
||||
//Inform the player they are not yet skilled enough
|
||||
@@ -949,7 +953,10 @@ public class McMMOPlayer {
|
||||
}
|
||||
|
||||
setToolPreparationMode(tool, false);
|
||||
new AbilityDisableTask(pluginRef, this, superAbility).runTaskLater(pluginRef, abilityLength * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(abilityLength * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||
.setTask(new AbilityDisableTask(pluginRef, this, superAbility))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
public void processAbilityActivation(PrimarySkillType primarySkillType) {
|
||||
@@ -996,7 +1003,10 @@ public class McMMOPlayer {
|
||||
}
|
||||
|
||||
setToolPreparationMode(tool, true);
|
||||
new ToolLowerTask(pluginRef,this, tool).runTaskLater(pluginRef, 4 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(4 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||
.setTask(new ToolLowerTask(pluginRef,this, tool))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1069,7 +1079,7 @@ public class McMMOPlayer {
|
||||
* @param syncSave if true, data is saved synchronously
|
||||
*/
|
||||
public void logout(boolean syncSave) {
|
||||
Player thisPlayer = getPlayer();
|
||||
Player thisPlayer = getNative();
|
||||
resetSuperAbilityMode();
|
||||
pluginRef.getBleedTimerTask().bleedOut(thisPlayer);
|
||||
cleanup();
|
||||
@@ -76,20 +76,32 @@ public class PlayerProfile {
|
||||
}
|
||||
|
||||
public void scheduleAsyncSave() {
|
||||
new PlayerProfileSaveTask(this, false).runTaskAsynchronously(pluginRef);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setTask(new PlayerProfileSaveTask(this, false))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
public void scheduleSyncSave() {
|
||||
new PlayerProfileSaveTask(this, true).runTask(pluginRef);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setTask(new PlayerProfileSaveTask(this, true))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
public void scheduleAsyncSaveDelay() {
|
||||
new PlayerProfileSaveTask(this, false).runTaskLaterAsynchronously(pluginRef, 20);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(20L)
|
||||
.setTask(new PlayerProfileSaveTask(this, false))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void scheduleSyncSaveDelay() {
|
||||
new PlayerProfileSaveTask(this, true).runTaskLater(pluginRef, 20);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(20L)
|
||||
.setTask(new PlayerProfileSaveTask(this, true))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
public void save(boolean useSync) {
|
||||
|
||||
@@ -10,7 +10,6 @@ public enum ItemMaterialCategory {
|
||||
IRON,
|
||||
GOLD,
|
||||
DIAMOND,
|
||||
NETHER,
|
||||
OTHER;
|
||||
|
||||
public Material getDefaultMaterial() {
|
||||
@@ -36,12 +35,6 @@ public enum ItemMaterialCategory {
|
||||
case DIAMOND:
|
||||
return Material.DIAMOND;
|
||||
|
||||
case NETHER:
|
||||
if(Material.getMaterial("netherite_scrap") != null)
|
||||
return Material.getMaterial("netherite_scrap");
|
||||
else
|
||||
return Material.GOLD_INGOT;
|
||||
|
||||
case OTHER:
|
||||
default:
|
||||
return null;
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* These behaviour classes are a band-aid fix for a larger problem
|
||||
@@ -31,17 +32,17 @@ public class ArcheryBehaviour {
|
||||
* @param livingEntity The entity hit by the arrows
|
||||
*/
|
||||
public void arrowRetrievalCheck(LivingEntity livingEntity) {
|
||||
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) {
|
||||
pluginRef.getMiscTools().dropItems(livingEntity.getLocation(), new ItemStack(Material.ARROW), livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).get(0).asInt());
|
||||
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
|
||||
pluginRef.getMiscTools().dropItems(livingEntity.getLocation(), new ItemStack(Material.ARROW), livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).get(0).asInt());
|
||||
}
|
||||
}
|
||||
|
||||
public void incrementArrowCount(LivingEntity livingEntity) {
|
||||
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) {
|
||||
int arrowCount = livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).get(0).asInt();
|
||||
livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).set(0, new FixedMetadataValue(pluginRef, arrowCount + 1));
|
||||
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
|
||||
int arrowCount = livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).get(0).asInt();
|
||||
livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).set(0, new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), arrowCount + 1));
|
||||
} else {
|
||||
livingEntity.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, new TrackedArrowMeta(pluginRef, 1));
|
||||
livingEntity.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), new TrackedArrowMeta((Plugin) pluginRef.getPlatformProvider(), 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -63,12 +65,12 @@ public class MiningBehaviour {
|
||||
}
|
||||
|
||||
public boolean processBlastMiningExplosion(EntityDamageByEntityEvent event, TNTPrimed tnt, Player defender) {
|
||||
if (!tnt.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY) || !pluginRef.getUserManager().hasPlayerDataKey(defender)) {
|
||||
if (!tnt.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey()) || !pluginRef.getUserManager().hasPlayerDataKey(defender)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// We can make this assumption because we (should) be the only ones using this exact metadata
|
||||
Player player = pluginRef.getServer().getPlayerExact(tnt.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY).get(0).asString());
|
||||
Player player = Bukkit.getServer().getPlayerExact(tnt.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey()).get(0).asString());
|
||||
|
||||
if (!player.equals(defender)) {
|
||||
return false;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.gmail.nossr50.datatypes.skills.subskills.acrobatics;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
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.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
@@ -62,7 +62,7 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
case FALL:
|
||||
|
||||
//Grab the player
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getEventManager().getMcMMOPlayer(entityDamageEvent.getEntity());
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getEventManager().getMcMMOPlayer(entityDamageEvent.getEntity());
|
||||
|
||||
if (mcMMOPlayer == null)
|
||||
break;
|
||||
@@ -188,7 +188,7 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
* @param damage The amount of damage initially dealt by the event
|
||||
* @return the modified event damage if the ability was successful, the original event damage otherwise
|
||||
*/
|
||||
private double rollCheck(Player player, McMMOPlayer mcMMOPlayer, double damage) {
|
||||
private double rollCheck(Player player, BukkitMMOPlayer mcMMOPlayer, double damage) {
|
||||
|
||||
int skillLevel = mcMMOPlayer.getSkillLevel(getPrimarySkill());
|
||||
|
||||
@@ -221,8 +221,8 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
return damage;
|
||||
}
|
||||
|
||||
private int getActivationChance(McMMOPlayer mcMMOPlayer) {
|
||||
return pluginRef.getPerkUtils().handleLuckyPerks(mcMMOPlayer.getPlayer(), getPrimarySkill());
|
||||
private int getActivationChance(BukkitMMOPlayer mcMMOPlayer) {
|
||||
return pluginRef.getPerkUtils().handleLuckyPerks(mcMMOPlayer.getNative(), getPrimarySkill());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -231,7 +231,7 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
* @param damage The amount of damage initially dealt by the event
|
||||
* @return the modified event damage if the ability was successful, the original event damage otherwise
|
||||
*/
|
||||
private double gracefulRollCheck(Player player, McMMOPlayer mcMMOPlayer, double damage, int skillLevel) {
|
||||
private double gracefulRollCheck(Player player, BukkitMMOPlayer mcMMOPlayer, double damage, int skillLevel) {
|
||||
double modifiedDamage = calculateModifiedRollDamage(damage, pluginRef.getConfigManager().getConfigAcrobatics().getRollDamageThreshold() * 2);
|
||||
|
||||
RandomChanceSkill rcs = new RandomChanceSkill(pluginRef, player, subSkillType);
|
||||
@@ -272,11 +272,11 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
return false;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (pluginRef.getItemTools().hasItemInEitherHand(player, Material.ENDER_PEARL) || player.isInsideVehicle()) {
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage("Acrobatics XP Prevented: Ender Pearl or Inside Vehicle");
|
||||
mcMMOPlayer.getNative().sendMessage("Acrobatics XP Prevented: Ender Pearl or Inside Vehicle");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -288,7 +288,7 @@ public class Roll extends AcrobaticsSubSkill {
|
||||
if (pluginRef.getUserManager().getPlayer(player).getAcrobaticsManager().hasFallenInLocationBefore(getBlockLocation(player)))
|
||||
{
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage("Acrobatics XP Prevented: Fallen in location before");
|
||||
mcMMOPlayer.getNative().sendMessage("Acrobatics XP Prevented: Fallen in location before");
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.gmail.nossr50.listeners;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.meta.BonusDropMeta;
|
||||
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.SuperAbilityType;
|
||||
import com.gmail.nossr50.datatypes.skills.ToolType;
|
||||
@@ -14,6 +14,8 @@ import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
||||
import com.gmail.nossr50.util.sounds.SoundType;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
@@ -30,6 +32,7 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.*;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -81,8 +84,8 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY).size() > 0) {
|
||||
BonusDropMeta bonusDropMeta = (BonusDropMeta) event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY).get(0);
|
||||
if (event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()).size() > 0) {
|
||||
BonusDropMeta bonusDropMeta = (BonusDropMeta) event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()).get(0);
|
||||
int bonusCount = bonusDropMeta.asInt();
|
||||
|
||||
for (int i = 0; i < bonusCount; i++) {
|
||||
@@ -92,8 +95,8 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
if(event.getBlock().hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY))
|
||||
event.getBlock().removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY, pluginRef);
|
||||
if(event.getBlock().hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()))
|
||||
event.getBlock().removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -205,7 +208,7 @@ public class BlockListener implements Listener {
|
||||
pluginRef.getPlaceStore().setTrue(blockState);
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
if (mcMMOPlayer == null)
|
||||
return;
|
||||
@@ -304,7 +307,7 @@ public class BlockListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
//Check if profile is loaded
|
||||
if (mcMMOPlayer == null)
|
||||
@@ -397,7 +400,7 @@ public class BlockListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BlockState blockState = event.getBlock().getState();
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
@@ -455,7 +458,7 @@ public class BlockListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
//Profile not loaded
|
||||
if (mcMMOPlayer == null) {
|
||||
@@ -511,13 +514,13 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
|
||||
private Player getPlayerFromFurnace(Block furnaceBlock) {
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY);
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey());
|
||||
|
||||
if (metadata.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return pluginRef.getServer().getPlayerExact(metadata.get(0).asString());
|
||||
return Bukkit.getServer().getPlayerExact(metadata.get(0).asString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -547,7 +550,7 @@ public class BlockListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
//Profile not loaded
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
@@ -639,7 +642,7 @@ public class BlockListener implements Listener {
|
||||
|
||||
if (blockState instanceof Furnace) {
|
||||
Furnace furnace = (Furnace) blockState;
|
||||
if (furnace.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY)) {
|
||||
if (furnace.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey())) {
|
||||
player.sendMessage("[mcMMO DEBUG] This furnace has a registered owner");
|
||||
Player furnacePlayer = getPlayerFromFurnace(furnace.getBlock());
|
||||
if (furnacePlayer != null) {
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
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.SubSkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.subskills.interfaces.InteractType;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
|
||||
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
||||
import com.gmail.nossr50.util.skills.SkillActivationType;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.block.Block;
|
||||
@@ -26,6 +29,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.PotionMeta;
|
||||
import org.bukkit.metadata.FixedMetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
@@ -40,10 +44,10 @@ public class EntityListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onEntityTransform(EntityTransformEvent event) {
|
||||
//Transfer metadata keys from mob-spawned mobs to new mobs
|
||||
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)
|
||||
|| event.getEntity().getMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY).size() >= 1) {
|
||||
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())
|
||||
|| event.getEntity().getMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey()).size() >= 1) {
|
||||
for (Entity entity : event.getTransformedEntities()) {
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,8 +64,8 @@ public class EntityListener implements Listener {
|
||||
|
||||
//Prevent entities from giving XP if they target endermite
|
||||
if (event.getTarget() instanceof Endermite) {
|
||||
if (!event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY))
|
||||
event.getEntity().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
if (!event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey()))
|
||||
event.getEntity().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +87,6 @@ public class EntityListener implements Listener {
|
||||
|
||||
Entity projectile = event.getProjectile();
|
||||
|
||||
//Should be noted that there are API changes regarding Arrow from 1.13.2 to current versions of the game
|
||||
if (!(projectile instanceof Arrow)) {
|
||||
return;
|
||||
}
|
||||
@@ -92,14 +95,14 @@ public class EntityListener implements Listener {
|
||||
|
||||
if (bow != null
|
||||
&& bow.containsEnchantment(Enchantment.ARROW_INFINITE)) {
|
||||
projectile.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, MetadataConstants.metadataValue);
|
||||
projectile.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
|
||||
projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY,
|
||||
new FixedMetadataValue(pluginRef,
|
||||
projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey(),
|
||||
new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(),
|
||||
Math.min(event.getForce()
|
||||
* pluginRef.getConfigManager().getConfigExperience().getExperienceArchery().getForceMultiplier(), 1.0)));
|
||||
projectile.setMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY, new FixedMetadataValue(pluginRef, projectile.getLocation()));
|
||||
projectile.setMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), projectile.getLocation()));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@@ -123,8 +126,8 @@ public class EntityListener implements Listener {
|
||||
if(!(projectile instanceof Arrow))
|
||||
return;
|
||||
|
||||
projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY, new FixedMetadataValue(pluginRef, 1.0));
|
||||
projectile.setMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY, new FixedMetadataValue(pluginRef, projectile.getLocation()));
|
||||
projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), 1.0));
|
||||
projectile.setMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), projectile.getLocation()));
|
||||
|
||||
for(Enchantment enchantment : player.getInventory().getItemInMainHand().getEnchantments().keySet()) {
|
||||
if(enchantment.getName().equalsIgnoreCase("piercing"))
|
||||
@@ -132,7 +135,7 @@ public class EntityListener implements Listener {
|
||||
}
|
||||
|
||||
if (pluginRef.getRandomChanceTools().isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.ARCHERY_ARROW_RETRIEVAL, player)) {
|
||||
projectile.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, MetadataConstants.metadataValue);
|
||||
projectile.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -162,11 +165,11 @@ public class EntityListener implements Listener {
|
||||
Entity entity = event.getEntity();
|
||||
|
||||
if (entity instanceof FallingBlock || entity instanceof Enderman) {
|
||||
boolean isTracked = entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY);
|
||||
boolean isTracked = entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey());
|
||||
|
||||
if (pluginRef.getPlaceStore().isTrue(block) && !isTracked) {
|
||||
pluginRef.getPlaceStore().setFalse(block);
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
} else if (isTracked) {
|
||||
pluginRef.getPlaceStore().setTrue(block);
|
||||
}
|
||||
@@ -288,7 +291,7 @@ public class EntityListener implements Listener {
|
||||
// Don't process this event for marked entities, for players this is handled above,
|
||||
// However, for entities, we do not wanna cancel this event to allow plugins to observe changes
|
||||
// properly
|
||||
if (defender.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY).size() > 0) {
|
||||
if (defender.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey()).size() > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -300,7 +303,7 @@ public class EntityListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getDamager().hasMetadata(MetadataConstants.SPAWNED_FIREWORKS_METAKEY)) {
|
||||
if (event.getDamager().hasMetadata(MetadataConstants.SPAWNED_FIREWORKS_METAKEY.getKey())) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@@ -353,7 +356,7 @@ public class EntityListener implements Listener {
|
||||
}
|
||||
|
||||
//Deflect checks
|
||||
final McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(defendingPlayer);
|
||||
final BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(defendingPlayer);
|
||||
if (mcMMOPlayer != null) {
|
||||
UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
||||
|
||||
@@ -501,7 +504,7 @@ public class EntityListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
//Profile not loaded
|
||||
if (mcMMOPlayer == null)
|
||||
@@ -616,18 +619,18 @@ public class EntityListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entity.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) {
|
||||
entity.setCustomName(entity.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY).get(0).asString());
|
||||
entity.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, pluginRef);
|
||||
if (entity.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||
entity.setCustomName(entity.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey()).get(0).asString());
|
||||
entity.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
if (entity.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY)) {
|
||||
entity.setCustomNameVisible(entity.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY).get(0).asBoolean());
|
||||
entity.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, pluginRef);
|
||||
if (entity.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey())) {
|
||||
entity.setCustomNameVisible(entity.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey()).get(0).asBoolean());
|
||||
entity.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
if (entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) {
|
||||
entity.removeMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, pluginRef);
|
||||
if (entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())) {
|
||||
entity.removeMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -669,18 +672,18 @@ public class EntityListener implements Listener {
|
||||
case SPAWNER:
|
||||
case SPAWNER_EGG:
|
||||
if (pluginRef.getConfigManager().getConfigExploitPrevention().doSpawnedEntitiesGiveModifiedXP()) {
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
|
||||
Entity passenger = entity.getPassenger();
|
||||
|
||||
if (passenger != null) {
|
||||
passenger.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
passenger.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
case BREEDING:
|
||||
entity.setMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY, MetadataConstants.metadataValue);
|
||||
entity.setMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
return;
|
||||
|
||||
default:
|
||||
@@ -691,7 +694,7 @@ public class EntityListener implements Listener {
|
||||
public void onEntityBreed(EntityBreedEvent event) {
|
||||
if(pluginRef.getConfigManager().getConfigExploitPrevention().areSummonsBreedable()) {
|
||||
//TODO: Change to NBT
|
||||
if(event.getFather().hasMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON) || event.getMother().hasMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON)) {
|
||||
if(event.getFather().hasMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON.getKey()) || event.getMother().hasMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON.getKey())) {
|
||||
event.setCancelled(true);
|
||||
Animals mom = (Animals) event.getMother();
|
||||
Animals father = (Animals) event.getFather();
|
||||
@@ -723,13 +726,13 @@ public class EntityListener implements Listener {
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
|
||||
if (!(entity instanceof TNTPrimed) || !entity.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY)) {
|
||||
if (!(entity instanceof TNTPrimed) || !entity.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// We can make this assumption because we (should) be the only ones
|
||||
// using this exact metadata
|
||||
Player player = pluginRef.getServer().getPlayerExact(entity.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY).get(0).asString());
|
||||
Player player = Bukkit.getServer().getPlayerExact(entity.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey()).get(0).asString());
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
|
||||
return;
|
||||
@@ -766,13 +769,13 @@ public class EntityListener implements Listener {
|
||||
|
||||
Entity entity = event.getEntity();
|
||||
|
||||
if (!(entity instanceof TNTPrimed) || !entity.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY)) {
|
||||
if (!(entity instanceof TNTPrimed) || !entity.hasMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// We can make this assumption because we (should) be the only ones
|
||||
// using this exact metadata
|
||||
Player player = pluginRef.getServer().getPlayerExact(entity.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY).get(0).asString());
|
||||
Player player = Bukkit.getServer().getPlayerExact(entity.getMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey()).get(0).asString());
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
|
||||
return;
|
||||
@@ -930,12 +933,12 @@ public class EntityListener implements Listener {
|
||||
|
||||
LivingEntity entity = event.getEntity();
|
||||
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player) || pluginRef.getMiscTools().isNPCEntityExcludingVillagers(entity) || entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) {
|
||||
if (!pluginRef.getUserManager().hasPlayerDataKey(player) || pluginRef.getMiscTools().isNPCEntityExcludingVillagers(entity) || entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigExploitPrevention().doTamedEntitiesGiveXP())
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
|
||||
//Profile not loaded
|
||||
//TODO: Redundant
|
||||
@@ -1018,8 +1021,8 @@ public class EntityListener implements Listener {
|
||||
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
|
||||
return;
|
||||
|
||||
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) {
|
||||
event.getPigZombie().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
||||
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())) {
|
||||
event.getPigZombie().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.player.PlayerUpdateInventoryTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.BrewingStand;
|
||||
@@ -17,6 +19,7 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.*;
|
||||
import org.bukkit.inventory.*;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -50,8 +53,8 @@ public class InventoryListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY) && furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY).size() == 0)
|
||||
furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef.getUserManager().getPlayer((Player) player).getPlayerMetadata());
|
||||
if (!furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()) && furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()).size() == 0)
|
||||
furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), pluginRef.getUserManager().getPlayer((Player) player).getPlayerMetadata());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
@@ -62,7 +65,7 @@ public class InventoryListener implements Listener {
|
||||
|
||||
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
|
||||
|
||||
if (furnaceBlock == null || furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY)) {
|
||||
if (furnaceBlock == null || furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey())) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -72,7 +75,7 @@ public class InventoryListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef);
|
||||
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
@@ -189,15 +192,15 @@ public class InventoryListener implements Listener {
|
||||
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
|
||||
|
||||
if (furnaceBlock != null) {
|
||||
if (furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY).size() > 0)
|
||||
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef);
|
||||
if (furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()).size() > 0)
|
||||
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
|
||||
//Profile not loaded
|
||||
if (pluginRef.getUserManager().getPlayer(player) == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef.getUserManager().getPlayer(player).getPlayerMetadata());
|
||||
furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), pluginRef.getUserManager().getPlayer(player).getPlayerMetadata());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,7 +455,7 @@ public class InventoryListener implements Listener {
|
||||
|
||||
final HumanEntity whoClicked = event.getWhoClicked();
|
||||
|
||||
if (!whoClicked.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY)) {
|
||||
if (!whoClicked.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey())) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -470,7 +473,9 @@ public class InventoryListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
new PlayerUpdateInventoryTask((Player) whoClicked).runTaskLater(pluginRef, 0);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setTask(new PlayerUpdateInventoryTask((Player) whoClicked))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
private Block processInventoryOpenOrCloseEvent(Inventory inventory) {
|
||||
@@ -488,12 +493,12 @@ public class InventoryListener implements Listener {
|
||||
}
|
||||
|
||||
private Player getPlayerFromFurnace(Block furnaceBlock) {
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY);
|
||||
List<MetadataValue> metadata = furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey());
|
||||
|
||||
if (metadata.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return pluginRef.getServer().getPlayerExact(metadata.get(0).asString());
|
||||
return Bukkit.getServer().getPlayerExact(metadata.get(0).asString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.gmail.nossr50.chat.ChatManager;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
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.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
|
||||
@@ -33,6 +33,7 @@ import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
@@ -117,7 +118,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
Player player = event.getEntity();
|
||||
event.setDeathMessage(pluginRef.getMobHealthBarManager().fixDeathMessage(deathMessage, player));
|
||||
event.setDeathMessage(pluginRef.getPlatformProvider().getHealthBarManager().fixDeathMessage(deathMessage, pluginRef.getUserManager().getPlayer(player)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,7 +146,7 @@ public class PlayerListener implements Listener {
|
||||
|
||||
Player killedPlayer = event.getEntity();
|
||||
|
||||
if (!killedPlayer.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY) || pluginRef.getPermissionTools().hardcoreBypass(killedPlayer)) {
|
||||
if (!killedPlayer.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey()) || pluginRef.getPermissionTools().hardcoreBypass(killedPlayer)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -194,7 +195,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
mcMMOPlayer.checkGodMode();
|
||||
mcMMOPlayer.checkParty();
|
||||
@@ -225,7 +226,7 @@ public class PlayerListener implements Listener {
|
||||
ItemStack dropStack = drop.getItemStack();
|
||||
|
||||
if (pluginRef.getItemTools().isSharable(dropStack)) {
|
||||
drop.setMetadata(MetadataConstants.DROPPED_ITEM_TRACKING_METAKEY, MetadataConstants.metadataValue);
|
||||
drop.setMetadata(MetadataConstants.DROPPED_ITEM_TRACKING_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||
}
|
||||
|
||||
pluginRef.getSkillTools().removeAbilityBuff(dropStack);
|
||||
@@ -342,7 +343,7 @@ public class PlayerListener implements Listener {
|
||||
|
||||
//Track the hook
|
||||
if (pluginRef.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitFishing().isPreventFishingExploits()) {
|
||||
if (event.getHook().getMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY).size() == 0) {
|
||||
if (event.getHook().getMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY.getKey()).size() == 0) {
|
||||
fishingManager.setFishHookReference(event.getHook());
|
||||
}
|
||||
|
||||
@@ -438,17 +439,17 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
Item drop = event.getItem();
|
||||
//Remove tracking
|
||||
ItemStack dropStack = drop.getItemStack();
|
||||
if(drop.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) {
|
||||
drop.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, pluginRef);
|
||||
if(drop.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
|
||||
drop.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
if (drop.hasMetadata(MetadataConstants.DISARMED_ITEM_METAKEY)) {
|
||||
if (!player.getName().equals(drop.getMetadata(MetadataConstants.DISARMED_ITEM_METAKEY).get(0).asString())) {
|
||||
if (drop.hasMetadata(MetadataConstants.DISARMED_ITEM_METAKEY.getKey())) {
|
||||
if (!player.getName().equals(drop.getMetadata(MetadataConstants.DISARMED_ITEM_METAKEY.getKey()).get(0).asString())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@@ -456,7 +457,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
|
||||
if (!drop.hasMetadata(MetadataConstants.DROPPED_ITEM_TRACKING_METAKEY) && mcMMOPlayer.inParty() && pluginRef.getItemTools().isSharable(dropStack)) {
|
||||
if (!drop.hasMetadata(MetadataConstants.DROPPED_ITEM_TRACKING_METAKEY.getKey()) && mcMMOPlayer.inParty() && pluginRef.getItemTools().isSharable(dropStack)) {
|
||||
event.setCancelled(mcMMOPlayer.getParty().getShareHandler().handleItemShare(drop, mcMMOPlayer));
|
||||
|
||||
pluginRef.getSoundManager().sendSound(player, player.getLocation(), SoundType.POP);
|
||||
@@ -497,7 +498,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
//There's an issue with using Async saves on player quit
|
||||
//Basically there are conditions in which an async task does not execute fast enough to save the data if the server shutdown shortly after this task was scheduled
|
||||
mcMMOPlayer.logout(true);
|
||||
@@ -517,7 +518,11 @@ public class PlayerListener implements Listener {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
//Delay loading for 3 seconds in case the player has a save task running, its hacky but it should do the trick
|
||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 60);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(60L)
|
||||
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||
.schedule();
|
||||
|
||||
if (pluginRef.getConfigManager().getConfigMOTD().isEnableMOTD()) {
|
||||
pluginRef.getMessageOfTheDayUtils().displayAll(player);
|
||||
@@ -528,7 +533,7 @@ public class PlayerListener implements Listener {
|
||||
}
|
||||
|
||||
//TODO: Remove this warning after 2.2 is done
|
||||
if (pluginRef.getDescription().getVersion().contains("SNAPSHOT")) {
|
||||
if (pluginRef.getPlatformProvider().getVersion().contains("SNAPSHOT")) {
|
||||
event.getPlayer().sendMessage(ChatColor.RED + "WARNING: " + ChatColor.WHITE + "This dev build version of mcMMO is in the MIDDLE of completely rewriting the configs, there may be game breaking bugs. It is not recommended to play on this version of mcMMO, please grab the latest stable release from https://www.mcmmo.org and use that instead!");
|
||||
}
|
||||
|
||||
@@ -590,7 +595,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
MiningManager miningManager = mcMMOPlayer.getMiningManager();
|
||||
Block block = event.getClickedBlock();
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
@@ -706,7 +711,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
||||
|
||||
//Spam Fishing Detection
|
||||
@@ -845,7 +850,7 @@ public class PlayerListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(player);
|
||||
|
||||
if (mcMMOPlayer == null) {
|
||||
pluginRef.debug(player.getName() + "is chatting, but is currently not logged in to the server.");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.listeners;
|
||||
|
||||
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.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
|
||||
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
|
||||
@@ -58,12 +58,12 @@ public class SelfListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
public void onPlayerXpGain(McMMOPlayerXpGainEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
PrimarySkillType primarySkillType = event.getSkill();
|
||||
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage(event.getSkill().toString() + " XP Gained");
|
||||
mcMMOPlayer.getPlayer().sendMessage("Incoming Raw XP: "+event.getRawXpGained());
|
||||
mcMMOPlayer.getNative().sendMessage(event.getSkill().toString() + " XP Gained");
|
||||
mcMMOPlayer.getNative().sendMessage("Incoming Raw XP: "+event.getRawXpGained());
|
||||
}
|
||||
|
||||
//WorldGuard XP Check
|
||||
@@ -77,7 +77,7 @@ public class SelfListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage("No WG XP Flag - New Raw XP: "+event.getRawXpGained());
|
||||
mcMMOPlayer.getNative().sendMessage("No WG XP Flag - New Raw XP: "+event.getRawXpGained());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,7 +103,7 @@ public class SelfListener implements Listener {
|
||||
|
||||
if (threshold <= 0 || !pluginRef.getConfigManager().getConfigLeveling().getConfigLevelingDiminishedReturns().isDiminishedReturnsEnabled()) {
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage("Final Raw XP: "+event.getRawXpGained());
|
||||
mcMMOPlayer.getNative().sendMessage("Final Raw XP: "+event.getRawXpGained());
|
||||
}
|
||||
// Diminished returns is turned off
|
||||
return;
|
||||
@@ -149,7 +149,7 @@ public class SelfListener implements Listener {
|
||||
}
|
||||
|
||||
if(mcMMOPlayer.isDebugMode()) {
|
||||
mcMMOPlayer.getPlayer().sendMessage("Final Raw XP: "+event.getRawXpGained());
|
||||
mcMMOPlayer.getNative().sendMessage("Final Raw XP: "+event.getRawXpGained());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,14 @@ import com.gmail.nossr50.config.playerleveling.ConfigLeveling;
|
||||
import com.gmail.nossr50.config.scoreboard.ConfigScoreboard;
|
||||
import com.gmail.nossr50.core.DynamicSettingsManager;
|
||||
import com.gmail.nossr50.core.MaterialMapStore;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.core.PlatformManager;
|
||||
import com.gmail.nossr50.database.DatabaseManager;
|
||||
import com.gmail.nossr50.database.DatabaseManagerFactory;
|
||||
import com.gmail.nossr50.datatypes.skills.subskills.acrobatics.Roll;
|
||||
import com.gmail.nossr50.listeners.*;
|
||||
import com.gmail.nossr50.listeners.InteractionManager;
|
||||
import com.gmail.nossr50.locale.LocaleManager;
|
||||
import com.gmail.nossr50.mcmmo.api.McMMOApi;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.PlatformProvider;
|
||||
import com.gmail.nossr50.party.PartyManager;
|
||||
import com.gmail.nossr50.runnables.SaveTimerTask;
|
||||
import com.gmail.nossr50.runnables.backups.CleanBackupFilesTask;
|
||||
@@ -45,28 +46,24 @@ import com.gmail.nossr50.util.sounds.SoundManager;
|
||||
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
||||
import com.gmail.nossr50.worldguard.WorldGuardUtils;
|
||||
import net.shatteredlands.shatt.backup.ZipLibrary;
|
||||
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.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 java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class mcMMO extends JavaPlugin {
|
||||
public class mcMMO implements McMMOApi {
|
||||
/* Managers */
|
||||
private ChunkManager placeStore;
|
||||
private ConfigManager configManager;
|
||||
@@ -79,7 +76,6 @@ public class mcMMO extends JavaPlugin {
|
||||
private PartyManager partyManager;
|
||||
private LocaleManager localeManager;
|
||||
private ChatManager chatManager;
|
||||
private MobHealthBarManager mobHealthBarManager;
|
||||
private EventManager eventManager;
|
||||
private UserManager userManager;
|
||||
private ScoreboardManager scoreboardManager;
|
||||
@@ -119,29 +115,23 @@ public class mcMMO extends JavaPlugin {
|
||||
private String usersFile;
|
||||
private String modDirectory;
|
||||
|
||||
/* Plugin Checks */
|
||||
private boolean healthBarPluginEnabled;
|
||||
// API checks
|
||||
private boolean serverAPIOutdated = false;
|
||||
// XP Event Check
|
||||
private boolean xpEventEnabled;
|
||||
|
||||
private PlatformProvider platformProvider;
|
||||
|
||||
public mcMMO(PlatformProvider platformProvider) {
|
||||
this.platformProvider = platformProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Things to be run when the plugin is enabled.
|
||||
*/
|
||||
@Override
|
||||
public void onEnable() {
|
||||
try {
|
||||
getLogger().setFilter(new LogFilter(this));
|
||||
|
||||
//Init PlatformManager
|
||||
platformManager = new PlatformManager(this);
|
||||
|
||||
//TODO: Disgusting...
|
||||
MetadataConstants.metadataValue = new FixedMetadataValue(this, true);
|
||||
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
||||
//platformProvider.getLogger().setFilter(new LogFilter(this));
|
||||
|
||||
//Init Permission Tools
|
||||
permissionTools = new PermissionTools(this);
|
||||
@@ -171,56 +161,42 @@ public class mcMMO extends JavaPlugin {
|
||||
//Init TextComponentFactory
|
||||
textComponentFactory = new TextComponentFactory(this);
|
||||
|
||||
if (healthBarPluginEnabled) {
|
||||
getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled.");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
//TODO: Strange design...
|
||||
databaseManagerFactory = new DatabaseManagerFactory(this);
|
||||
databaseManager = getDatabaseManagerFactory().getDatabaseManager();
|
||||
|
||||
//Check for the newer API and tell them what to do if its missing
|
||||
CompatibilityCheck.checkForOutdatedAPI(this, serverAPIOutdated, getServerSoftwareStr());
|
||||
CompatibilityCheck.checkForOutdatedAPI(this, serverAPIOutdated, platformProvider.getServerType().getFriendlyName());
|
||||
|
||||
if (serverAPIOutdated) {
|
||||
Bukkit
|
||||
.getScheduler()
|
||||
.scheduleSyncRepeatingTask(this,
|
||||
() -> getLogger().severe("You are running an outdated version of " + getServerSoftware() + ", mcMMO will not work unless you update to a newer version!"),
|
||||
20, 20 * 60 * 30);
|
||||
|
||||
if (getServerSoftware() == 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);
|
||||
}
|
||||
if (!platformProvider.isSupported(true)) {
|
||||
org.bukkit.Bukkit.getLogger().info("WE DEAD");
|
||||
return;
|
||||
} else {
|
||||
registerEvents();
|
||||
platformProvider.earlyInit();
|
||||
registerCoreSkills();
|
||||
registerCustomRecipes();
|
||||
initParties();
|
||||
|
||||
formulaManager = new FormulaManager(this);
|
||||
|
||||
for (Player player : getServer().getOnlinePlayers()) {
|
||||
new PlayerProfileLoadingTask(this, player).runTaskLaterAsynchronously(this, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
}
|
||||
// Don't do this for now
|
||||
//for (Player player : getServer().getOnlinePlayers()) {
|
||||
// new PlayerProfileLoadingTask(this, player).runTaskLaterAsynchronously(this, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||
//}
|
||||
|
||||
debug("Version " + getDescription().getVersion() + " is enabled!");
|
||||
debug("Version " + getVersion() + " is enabled!");
|
||||
|
||||
scheduleTasks();
|
||||
commandRegistrationManager = new CommandRegistrationManager(this);
|
||||
commandRegistrationManager.registerACFCommands();
|
||||
commandRegistrationManager.registerCommands();
|
||||
|
||||
/*
|
||||
nbtManager = new NBTManager();
|
||||
|
||||
*/
|
||||
|
||||
//Init Chunk Manager Factory
|
||||
chunkManagerFactory = new ChunkManagerFactory(this);
|
||||
placeStore = chunkManagerFactory.getChunkManager(); // Get our ChunkletManager
|
||||
@@ -236,21 +212,7 @@ public class mcMMO extends JavaPlugin {
|
||||
rankTools.populateRanks();
|
||||
}
|
||||
|
||||
//If anonymous statistics are enabled then use them
|
||||
if (getConfigManager().getConfigMetrics().isAllowAnonymousUsageStatistics()) {
|
||||
Metrics metrics;
|
||||
metrics = new Metrics(this);
|
||||
metrics.addCustomChart(new Metrics.SimplePie("version", () -> getDescription().getVersion()));
|
||||
|
||||
int levelScaleModifier = configManager.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"));
|
||||
}
|
||||
platformProvider.checkMetrics();
|
||||
} catch (Throwable t) {
|
||||
getLogger().severe("There was an error while enabling mcMMO!");
|
||||
t.printStackTrace();
|
||||
@@ -272,9 +234,6 @@ public class mcMMO extends JavaPlugin {
|
||||
//Init Chat Manager
|
||||
chatManager = new ChatManager(this);
|
||||
|
||||
//Init Mob Health Bar Manager
|
||||
mobHealthBarManager = new MobHealthBarManager(this);
|
||||
|
||||
//Init Event Manager
|
||||
eventManager = new EventManager(this);
|
||||
|
||||
@@ -313,12 +272,16 @@ public class mcMMO extends JavaPlugin {
|
||||
particleEffectUtils = new ParticleEffectUtils(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
private String getVersion() {
|
||||
return platformProvider.getVersion();
|
||||
}
|
||||
|
||||
public void onLoad()
|
||||
{
|
||||
worldGuardUtils = new WorldGuardUtils(this); //Init WGU
|
||||
|
||||
if(getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
||||
// TODO: 2.2 - MIGRATE
|
||||
if(Bukkit.getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
||||
|
||||
if(worldGuardUtils.isWorldGuardLoaded()) {
|
||||
//Register flags
|
||||
@@ -332,7 +295,6 @@ public class mcMMO extends JavaPlugin {
|
||||
/**
|
||||
* Things to be run when the plugin is disabled.
|
||||
*/
|
||||
@Override
|
||||
public void onDisable() {
|
||||
try {
|
||||
userManager.saveAll(); // Make sure to save player information if the server shuts down
|
||||
@@ -349,10 +311,7 @@ public class mcMMO extends JavaPlugin {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
debug("Canceling all tasks...");
|
||||
getServer().getScheduler().cancelTasks(this); // This removes our tasks
|
||||
debug("Unregister all events...");
|
||||
HandlerList.unregisterAll(this); // Cancel event registrations
|
||||
platformProvider.tearDown();
|
||||
|
||||
if (getConfigManager().getConfigAutomatedBackups().isZipBackupsEnabled()) {
|
||||
// Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
|
||||
@@ -387,36 +346,6 @@ public class mcMMO extends JavaPlugin {
|
||||
return playerLevelTools;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a ServerSoftwareType based on version strings
|
||||
* Custom software is returned as CRAFTBUKKIT
|
||||
*
|
||||
* @return the ServerSoftwareType which likely matches the server
|
||||
*/
|
||||
private ServerSoftwareType getServerSoftware() {
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a string version of ServerSoftwareType
|
||||
*
|
||||
* @return Formatted String of ServerSoftwareType
|
||||
*/
|
||||
private String getServerSoftwareStr() {
|
||||
switch (getServerSoftware()) {
|
||||
case PAPER:
|
||||
return "Paper";
|
||||
case SPIGOT:
|
||||
return "Spigot";
|
||||
default:
|
||||
return "CraftBukkit";
|
||||
}
|
||||
}
|
||||
|
||||
public MaterialMapStore getMaterialMapStore() {
|
||||
return materialMapStore;
|
||||
@@ -521,14 +450,14 @@ public class mcMMO extends JavaPlugin {
|
||||
return configManager.getConfigScoreboard();
|
||||
}
|
||||
|
||||
public boolean isHealthBarPluginEnabled() {
|
||||
return healthBarPluginEnabled;
|
||||
}
|
||||
|
||||
public ConfigManager getConfigManager() {
|
||||
return configManager;
|
||||
}
|
||||
|
||||
public PlatformProvider getPlatformProvider() {
|
||||
return platformProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* The directory in which override locales are kept
|
||||
*
|
||||
@@ -573,11 +502,15 @@ public class mcMMO extends JavaPlugin {
|
||||
getLogger().info("[Debug] " + message);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Logger getLogger() {
|
||||
return platformProvider.getLogger();
|
||||
}
|
||||
/**
|
||||
* Setup the various storage file paths
|
||||
*/
|
||||
private void setupFilePaths() {
|
||||
mainDirectory = getDataFolder().getPath() + File.separator;
|
||||
mainDirectory = platformProvider.getDataFolder().getPath() + File.separator;
|
||||
localesDirectory = mainDirectory + "locales" + File.separator;
|
||||
flatFileDirectory = mainDirectory + "flatfile" + File.separator;
|
||||
usersFile = flatFileDirectory + "mcmmo.users";
|
||||
@@ -619,18 +552,6 @@ public class mcMMO extends JavaPlugin {
|
||||
configManager.loadConfigs();
|
||||
}
|
||||
|
||||
private void registerEvents() {
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
|
||||
// Register events
|
||||
pluginManager.registerEvents(new PlayerListener(this), this);
|
||||
pluginManager.registerEvents(new BlockListener(this), this);
|
||||
pluginManager.registerEvents(new EntityListener(this), this);
|
||||
pluginManager.registerEvents(new InventoryListener(this), this);
|
||||
pluginManager.registerEvents(new SelfListener(this), this);
|
||||
pluginManager.registerEvents(new WorldListener(this), this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers core skills
|
||||
* This enables the skills in the new skill system
|
||||
@@ -653,35 +574,49 @@ public class mcMMO extends JavaPlugin {
|
||||
}
|
||||
|
||||
private void registerCustomRecipes() {
|
||||
getServer().getScheduler().scheduleSyncDelayedTask(this, () -> {
|
||||
if (configManager.getConfigItems().isChimaeraWingEnabled()) {
|
||||
Recipe recipe = getChimaeraWingRecipe();
|
||||
|
||||
if(!getSkillTools().hasRecipeBeenRegistered(recipe))
|
||||
getServer().addRecipe(getChimaeraWingRecipe());
|
||||
}
|
||||
}, 40);
|
||||
getPlatformProvider().registerCustomRecipes();
|
||||
}
|
||||
|
||||
private void scheduleTasks() {
|
||||
// Periodic save timer (Saves every 10 minutes by default)
|
||||
long saveIntervalTicks = Math.max(1200, (getConfigManager().getConfigDatabase().getConfigSectionDatabaseGeneral().getSaveIntervalMinutes() * (20 * 60)));
|
||||
new SaveTimerTask(this).runTaskTimer(this, saveIntervalTicks, saveIntervalTicks);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(saveIntervalTicks)
|
||||
.setRepeatTime(saveIntervalTicks)
|
||||
.setTask(new SaveTimerTask(this))
|
||||
.schedule();
|
||||
|
||||
// Cleanup the backups folder
|
||||
new CleanBackupFilesTask(this).runTaskAsynchronously(this);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setTask(new CleanBackupFilesTask(this))
|
||||
.schedule();
|
||||
|
||||
// Bleed timer (Runs every 0.5 seconds)
|
||||
bleedTimerTask = new BleedTimerTask(this);
|
||||
bleedTimerTask.runTaskTimer(this, miscTools.TICK_CONVERSION_FACTOR, (miscTools.TICK_CONVERSION_FACTOR / 2));
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(miscTools.TICK_CONVERSION_FACTOR)
|
||||
.setRepeatTime((miscTools.TICK_CONVERSION_FACTOR /2))
|
||||
.setTask(bleedTimerTask)
|
||||
.schedule();
|
||||
|
||||
// Old & Powerless User remover
|
||||
long purgeIntervalTicks = getConfigManager().getConfigDatabase().getConfigSectionCleaning().getPurgeInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR;
|
||||
|
||||
if (getDatabaseCleaningSettings().isOnlyPurgeAtStartup()) {
|
||||
new UserPurgeTask(this).runTaskLaterAsynchronously(this, 2 * miscTools.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(2 * miscTools.TICK_CONVERSION_FACTOR)
|
||||
.setTask(new UserPurgeTask(this))
|
||||
.schedule();
|
||||
|
||||
} else if (purgeIntervalTicks > 0) {
|
||||
new UserPurgeTask(this).runTaskTimerAsynchronously(this, purgeIntervalTicks, purgeIntervalTicks);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay(purgeIntervalTicks)
|
||||
.setRepeatTime(purgeIntervalTicks)
|
||||
.setTask(new UserPurgeTask(this))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
//Party System Stuff
|
||||
@@ -690,71 +625,48 @@ public class mcMMO extends JavaPlugin {
|
||||
long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR;
|
||||
|
||||
if (kickIntervalTicks == 0) {
|
||||
new PartyAutoKickTask(this).runTaskLater(this, 2 * miscTools.TICK_CONVERSION_FACTOR); // Start 2 seconds after startup.
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(2 * miscTools.TICK_CONVERSION_FACTOR)
|
||||
.setTask(new PartyAutoKickTask(this))
|
||||
.schedule();
|
||||
} else if (kickIntervalTicks > 0) {
|
||||
new PartyAutoKickTask(this).runTaskTimer(this, kickIntervalTicks, kickIntervalTicks);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(kickIntervalTicks)
|
||||
.setRepeatTime(kickIntervalTicks)
|
||||
.setTask(new PartyAutoKickTask(this))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
// Update power level tag scoreboards
|
||||
new PowerLevelUpdatingTask(this).runTaskTimer(this, 2 * miscTools.TICK_CONVERSION_FACTOR, 2 * miscTools.TICK_CONVERSION_FACTOR);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(2 * miscTools.TICK_CONVERSION_FACTOR)
|
||||
.setRepeatTime(2 * miscTools.TICK_CONVERSION_FACTOR)
|
||||
.setTask(new PowerLevelUpdatingTask(this))
|
||||
.schedule();
|
||||
|
||||
// Clear the registered XP data so players can earn XP again
|
||||
if (getConfigManager().getConfigLeveling().getConfigLevelingDiminishedReturns().isDiminishedReturnsEnabled()) {
|
||||
new ClearRegisteredXPGainTask(this).runTaskTimer(this, 60, 60);
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(60L)
|
||||
.setRepeatTime(60L)
|
||||
.setTask(new ClearRegisteredXPGainTask(this))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
if (configManager.getConfigNotifications().getConfigNotificationGeneral().isPlayerTips()) {
|
||||
new NotifySquelchReminderTask(this).runTaskTimer(this, 60, ((20 * 60) * 60));
|
||||
platformProvider.getScheduler().getTaskBuilder()
|
||||
.setDelay(60L)
|
||||
.setRepeatTime((20 * 60) * 60L)
|
||||
.setTask(new NotifySquelchReminderTask(this))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Add this stuff to DSM, this location is temporary
|
||||
private ShapelessRecipe getChimaeraWingRecipe() {
|
||||
Material ingredient = Material.matchMaterial(configManager.getConfigItems().getChimaeraWingRecipeMats());
|
||||
|
||||
if(ingredient == null)
|
||||
ingredient = Material.FEATHER;
|
||||
|
||||
int amount = configManager.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(configManager.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 + localeManager.getString("Item.ChimaeraWing.Name"));
|
||||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
itemLore.add("mcMMO Item");
|
||||
itemLore.add(localeManager.getString("Item.ChimaeraWing.Lore"));
|
||||
itemMeta.setLore(itemLore);
|
||||
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
public DynamicSettingsManager getDynamicSettingsManager() {
|
||||
return dynamicSettingsManager;
|
||||
}
|
||||
|
||||
private enum ServerSoftwareType {
|
||||
PAPER,
|
||||
SPIGOT,
|
||||
CRAFTBUKKIT
|
||||
}
|
||||
|
||||
public NotificationManager getNotificationManager() {
|
||||
return notificationManager;
|
||||
}
|
||||
@@ -775,10 +687,6 @@ public class mcMMO extends JavaPlugin {
|
||||
return chatManager;
|
||||
}
|
||||
|
||||
public MobHealthBarManager getMobHealthBarManager() {
|
||||
return mobHealthBarManager;
|
||||
}
|
||||
|
||||
public EventManager getEventManager() {
|
||||
return eventManager;
|
||||
}
|
||||
@@ -835,6 +743,7 @@ public class mcMMO extends JavaPlugin {
|
||||
return permissionTools;
|
||||
}
|
||||
|
||||
@Deprecated // This needs to be removed...
|
||||
public WorldGuardUtils getWorldGuardUtils() {
|
||||
return worldGuardUtils;
|
||||
}
|
||||
@@ -874,4 +783,13 @@ public class mcMMO extends JavaPlugin {
|
||||
public ParticleEffectUtils getParticleEffectUtils() {
|
||||
return particleEffectUtils;
|
||||
}
|
||||
|
||||
public File getDataFolder() {
|
||||
return platformProvider.getDataFolder();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Object getChimaeraWing() {
|
||||
return platformProvider.getChimaeraWing();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,15 @@ package com.gmail.nossr50.party;
|
||||
import com.gmail.nossr50.datatypes.chat.ChatMode;
|
||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
import com.gmail.nossr50.datatypes.party.*;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyAllianceChangeEvent;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent;
|
||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.runnables.items.TeleportationWarmup;
|
||||
import com.gmail.nossr50.util.sounds.SoundType;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@@ -34,13 +36,13 @@ public final class PartyManager {
|
||||
}
|
||||
|
||||
public boolean canTeleport(CommandSender sender, Player player, String targetName) {
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
|
||||
|
||||
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player target = mcMMOTarget.getPlayer();
|
||||
Player target = mcMMOTarget.getNative();
|
||||
|
||||
if (player.equals(target)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Teleport.Self"));
|
||||
@@ -76,8 +78,8 @@ public final class PartyManager {
|
||||
return;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(teleportingPlayer);
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetPlayer);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(teleportingPlayer);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetPlayer);
|
||||
|
||||
long warmup = pluginRef.getConfigManager().getConfigParty().getPTP().getPtpWarmup();
|
||||
|
||||
@@ -85,7 +87,10 @@ public final class PartyManager {
|
||||
|
||||
if (warmup > 0) {
|
||||
teleportingPlayer.sendMessage(pluginRef.getLocaleManager().getString("Teleport.Commencing", warmup));
|
||||
new TeleportationWarmup(pluginRef, mcMMOPlayer, mcMMOTarget).runTaskLater(pluginRef, 20 * warmup);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(20 * warmup)
|
||||
.setTask(new TeleportationWarmup(pluginRef, mcMMOPlayer, mcMMOTarget))
|
||||
.schedule();
|
||||
} else {
|
||||
pluginRef.getEventManager().handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
|
||||
}
|
||||
@@ -139,8 +144,8 @@ public final class PartyManager {
|
||||
* @param newPartyName The name of the party being joined
|
||||
* @return true if the party was joined successfully, false otherwise
|
||||
*/
|
||||
public boolean changeOrJoinParty(McMMOPlayer mcMMOPlayer, String newPartyName) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
public boolean changeOrJoinParty(BukkitMMOPlayer mcMMOPlayer, String newPartyName) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
if (mcMMOPlayer.inParty()) {
|
||||
Party oldParty = mcMMOPlayer.getParty();
|
||||
@@ -218,12 +223,12 @@ public final class PartyManager {
|
||||
* @param mcMMOPlayer The player to check
|
||||
* @return the near party members
|
||||
*/
|
||||
public List<Player> getNearMembers(McMMOPlayer mcMMOPlayer) {
|
||||
public List<Player> getNearMembers(BukkitMMOPlayer mcMMOPlayer) {
|
||||
List<Player> nearMembers = new ArrayList<>();
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party != null) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
double range = pluginRef.getPartyXPShareSettings().getPartyShareRange();
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
@@ -236,12 +241,12 @@ public final class PartyManager {
|
||||
return nearMembers;
|
||||
}
|
||||
|
||||
public List<Player> getNearVisibleMembers(McMMOPlayer mcMMOPlayer) {
|
||||
public List<Player> getNearVisibleMembers(BukkitMMOPlayer mcMMOPlayer) {
|
||||
List<Player> nearMembers = new ArrayList<>();
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party != null) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
double range = pluginRef.getPartyXPShareSettings().getPartyShareRange();
|
||||
|
||||
for (Player member : party.getVisibleMembers(player)) {
|
||||
@@ -373,7 +378,7 @@ public final class PartyManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
|
||||
|
||||
return mcMMOPlayer.getParty();
|
||||
}
|
||||
@@ -420,8 +425,8 @@ public final class PartyManager {
|
||||
*
|
||||
* @param mcMMOPlayer The player to remove
|
||||
*/
|
||||
public void removeFromParty(McMMOPlayer mcMMOPlayer) {
|
||||
removeFromParty(mcMMOPlayer.getPlayer(), mcMMOPlayer.getParty());
|
||||
public void removeFromParty(BukkitMMOPlayer mcMMOPlayer) {
|
||||
removeFromParty(mcMMOPlayer.getNative(), mcMMOPlayer.getParty());
|
||||
processPartyLeaving(mcMMOPlayer);
|
||||
}
|
||||
|
||||
@@ -456,8 +461,8 @@ public final class PartyManager {
|
||||
* @param partyName The party to add the player to
|
||||
* @param password The password for this party, null if there was no password
|
||||
*/
|
||||
public void createParty(McMMOPlayer mcMMOPlayer, String partyName, String password) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
public void createParty(BukkitMMOPlayer mcMMOPlayer, String partyName, String password) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
Party party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName.replace(".", ""), password, pluginRef);
|
||||
|
||||
@@ -507,12 +512,12 @@ public final class PartyManager {
|
||||
*
|
||||
* @param mcMMOPlayer The player to add to the party
|
||||
*/
|
||||
public void joinInvitedParty(McMMOPlayer mcMMOPlayer) {
|
||||
public void joinInvitedParty(BukkitMMOPlayer mcMMOPlayer) {
|
||||
Party invite = mcMMOPlayer.getPartyInvite();
|
||||
|
||||
// Check if the party still exists, it might have been disbanded
|
||||
if (!parties.contains(invite)) {
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getPlayer(), NotificationType.PARTY_MESSAGE, "Party.Disband");
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getNative(), NotificationType.PARTY_MESSAGE, "Party.Disband");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -520,13 +525,13 @@ public final class PartyManager {
|
||||
* Don't let players join a full party
|
||||
*/
|
||||
if (pluginRef.getConfigManager().getConfigParty().isPartySizeCapped() && invite.getMembers().size() >= pluginRef.getConfigManager().getConfigParty().getPartySizeLimit()) {
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getPlayer(),
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getNative(),
|
||||
NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept",
|
||||
invite.getName(), String.valueOf(pluginRef.getConfigManager().getConfigParty().getPartySizeLimit()));
|
||||
return;
|
||||
}
|
||||
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getPlayer(), NotificationType.PARTY_MESSAGE, "Commands.Party.Invite.Accepted", invite.getName());
|
||||
pluginRef.getNotificationManager().sendPlayerInformation(mcMMOPlayer.getNative(), NotificationType.PARTY_MESSAGE, "Commands.Party.Invite.Accepted", invite.getName());
|
||||
mcMMOPlayer.removePartyInvite();
|
||||
addToParty(mcMMOPlayer, invite);
|
||||
}
|
||||
@@ -536,9 +541,9 @@ public final class PartyManager {
|
||||
*
|
||||
* @param mcMMOPlayer The player who accepts the alliance invite
|
||||
*/
|
||||
public void acceptAllianceInvite(McMMOPlayer mcMMOPlayer) {
|
||||
public void acceptAllianceInvite(BukkitMMOPlayer mcMMOPlayer) {
|
||||
Party invite = mcMMOPlayer.getPartyAllianceInvite();
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
|
||||
// Check if the party still exists, it might have been disbanded
|
||||
if (!parties.contains(invite)) {
|
||||
@@ -592,8 +597,8 @@ public final class PartyManager {
|
||||
* @param mcMMOPlayer The player to add to the party
|
||||
* @param party The party
|
||||
*/
|
||||
public void addToParty(McMMOPlayer mcMMOPlayer, Party party) {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
public void addToParty(BukkitMMOPlayer mcMMOPlayer, Party party) {
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
String playerName = player.getName();
|
||||
|
||||
informPartyMembersJoin(party, playerName);
|
||||
@@ -621,7 +626,7 @@ public final class PartyManager {
|
||||
* @param party The party
|
||||
*/
|
||||
public void setPartyLeader(UUID uuid, Party party) {
|
||||
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(uuid);
|
||||
OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(uuid);
|
||||
UUID leaderUniqueId = party.getLeader().getUniqueId();
|
||||
|
||||
for (Player member : party.getOnlineMembers()) {
|
||||
@@ -644,10 +649,10 @@ public final class PartyManager {
|
||||
*
|
||||
* @return true if the player can invite
|
||||
*/
|
||||
public boolean canInvite(McMMOPlayer mcMMOPlayer) {
|
||||
public boolean canInvite(BukkitMMOPlayer mcMMOPlayer) {
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
return !party.isLocked() || party.getLeader().getUniqueId().equals(mcMMOPlayer.getPlayer().getUniqueId());
|
||||
return !party.isLocked() || party.getLeader().getUniqueId().equals(mcMMOPlayer.getNative().getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -842,7 +847,7 @@ public final class PartyManager {
|
||||
*/
|
||||
public boolean handlePartyChangeEvent(Player player, String oldPartyName, String newPartyName, EventReason reason) {
|
||||
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, newPartyName, reason);
|
||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
return !event.isCancelled();
|
||||
}
|
||||
@@ -858,7 +863,7 @@ public final class PartyManager {
|
||||
*/
|
||||
public boolean handlePartyChangeAllianceEvent(Player player, String oldAllyName, String newAllyName, McMMOPartyAllianceChangeEvent.EventReason reason) {
|
||||
McMMOPartyAllianceChangeEvent event = new McMMOPartyAllianceChangeEvent(player, oldAllyName, newAllyName, reason);
|
||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
return !event.isCancelled();
|
||||
}
|
||||
@@ -868,7 +873,7 @@ public final class PartyManager {
|
||||
*
|
||||
* @param mcMMOPlayer The player to remove party data from.
|
||||
*/
|
||||
public void processPartyLeaving(McMMOPlayer mcMMOPlayer) {
|
||||
public void processPartyLeaving(BukkitMMOPlayer mcMMOPlayer) {
|
||||
mcMMOPlayer.removeParty();
|
||||
mcMMOPlayer.disableChat(ChatMode.PARTY);
|
||||
mcMMOPlayer.setItemShareModifier(10);
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.gmail.nossr50.datatypes.experience.XPGainSource;
|
||||
import com.gmail.nossr50.datatypes.party.ItemShareType;
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
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.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Material;
|
||||
@@ -32,7 +32,7 @@ public final class ShareHandler {
|
||||
* @param primarySkillType Skill being used
|
||||
* @return True is the xp has been shared
|
||||
*/
|
||||
public boolean handleXpShare(double xp, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
|
||||
public boolean handleXpShare(double xp, BukkitMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
|
||||
if (party.getXpShareMode() != ShareMode.EQUAL) {
|
||||
return false;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ public final class ShareHandler {
|
||||
return false;
|
||||
}
|
||||
|
||||
nearMembers.add(mcMMOPlayer.getPlayer());
|
||||
nearMembers.add(mcMMOPlayer.getNative());
|
||||
|
||||
int partySize = nearMembers.size();
|
||||
double shareBonus = Math.min(pluginRef.getPartyXPShareSettings().getPartyShareXPBonusBase()
|
||||
@@ -70,7 +70,7 @@ public final class ShareHandler {
|
||||
* @param mcMMOPlayer Player who picked up the item
|
||||
* @return True if the item has been shared
|
||||
*/
|
||||
public boolean handleItemShare(Item drop, McMMOPlayer mcMMOPlayer) {
|
||||
public boolean handleItemShare(Item drop, BukkitMMOPlayer mcMMOPlayer) {
|
||||
ItemStack itemStack = drop.getItemStack();
|
||||
ItemShareType dropType = getShareType(itemStack);
|
||||
|
||||
@@ -97,7 +97,7 @@ public final class ShareHandler {
|
||||
Player winningPlayer = null;
|
||||
ItemStack newStack = itemStack.clone();
|
||||
|
||||
nearMembers.add(mcMMOPlayer.getPlayer());
|
||||
nearMembers.add(mcMMOPlayer.getNative());
|
||||
int partySize = nearMembers.size();
|
||||
|
||||
drop.remove();
|
||||
@@ -111,7 +111,7 @@ public final class ShareHandler {
|
||||
int highestRoll = 0;
|
||||
|
||||
for (Player member : nearMembers) {
|
||||
McMMOPlayer mcMMOMember = pluginRef.getUserManager().getPlayer(member);
|
||||
BukkitMMOPlayer mcMMOMember = pluginRef.getUserManager().getPlayer(member);
|
||||
|
||||
//Profile not loaded
|
||||
if (pluginRef.getUserManager().getPlayer(member) == null) {
|
||||
@@ -129,14 +129,14 @@ public final class ShareHandler {
|
||||
highestRoll = diceRoll;
|
||||
|
||||
if (winningPlayer != null) {
|
||||
McMMOPlayer mcMMOWinning = pluginRef.getUserManager().getPlayer(winningPlayer);
|
||||
BukkitMMOPlayer mcMMOWinning = pluginRef.getUserManager().getPlayer(winningPlayer);
|
||||
mcMMOWinning.setItemShareModifier(mcMMOWinning.getItemShareModifier() + itemWeight);
|
||||
}
|
||||
|
||||
winningPlayer = member;
|
||||
}
|
||||
|
||||
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(winningPlayer);
|
||||
BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(winningPlayer);
|
||||
mcMMOTarget.setItemShareModifier(mcMMOTarget.getItemShareModifier() - itemWeight);
|
||||
awardDrop(winningPlayer, newStack);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,14 @@ package com.gmail.nossr50.runnables;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class MobHealthDisplayUpdaterTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private LivingEntity target;
|
||||
|
||||
@@ -15,15 +19,15 @@ public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) {
|
||||
target.setCustomName(target.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY).get(0).asString());
|
||||
target.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, pluginRef);
|
||||
public void accept(Task task) {
|
||||
if (target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||
target.setCustomName(target.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey()).get(0).asString());
|
||||
target.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
if (target.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY)) {
|
||||
target.setCustomNameVisible(target.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY).get(0).asBoolean());
|
||||
target.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, pluginRef);
|
||||
if (target.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey())) {
|
||||
target.setCustomNameVisible(target.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey()).get(0).asBoolean());
|
||||
target.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,16 @@ package com.gmail.nossr50.runnables;
|
||||
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PistonTrackerTask extends BukkitRunnable {
|
||||
public class PistonTrackerTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private List<Block> blocks;
|
||||
private BlockFace direction;
|
||||
@@ -22,7 +25,7 @@ public class PistonTrackerTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
// Check to see if futureEmptyBlock is empty - if it isn't; the blocks didn't move
|
||||
if (!pluginRef.getBlockTools().isPistonPiece(futureEmptyBlock.getState())) {
|
||||
return;
|
||||
@@ -35,9 +38,9 @@ public class PistonTrackerTask extends BukkitRunnable {
|
||||
for (Block b : blocks) {
|
||||
Block nextBlock = b.getRelative(direction);
|
||||
|
||||
if (nextBlock.hasMetadata(MetadataConstants.PISTON_TRACKING_METAKEY)) {
|
||||
if (nextBlock.hasMetadata(MetadataConstants.PISTON_TRACKING_METAKEY.getKey())) {
|
||||
pluginRef.getPlaceStore().setTrue(nextBlock);
|
||||
nextBlock.removeMetadata(MetadataConstants.PISTON_TRACKING_METAKEY, pluginRef);
|
||||
nextBlock.removeMetadata(MetadataConstants.PISTON_TRACKING_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
} else if (pluginRef.getPlaceStore().isTrue(nextBlock)) {
|
||||
// Block doesn't have metadatakey but isTrue - set it to false
|
||||
pluginRef.getPlaceStore().setFalse(nextBlock);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.gmail.nossr50.runnables;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class SaveTimerTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class SaveTimerTask implements Consumer<Task> {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
@@ -14,12 +16,12 @@ public class SaveTimerTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
// All player data will be saved periodically through this
|
||||
int count = 1;
|
||||
|
||||
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false).runTaskLaterAsynchronously(pluginRef, count);
|
||||
for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder().setAsync(true).setDelay((long) count).setTask(new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false)).schedule();
|
||||
count++;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.gmail.nossr50.runnables;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class StickyPistonTrackerTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class StickyPistonTrackerTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private BlockFace direction;
|
||||
private Block block;
|
||||
@@ -19,7 +22,7 @@ public class StickyPistonTrackerTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (!pluginRef.getPlaceStore().isTrue(movedBlock.getRelative(direction))) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gmail.nossr50.runnables.backups;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.ParseException;
|
||||
@@ -11,8 +11,9 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class CleanBackupFilesTask extends BukkitRunnable {
|
||||
public class CleanBackupFilesTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final File BACKUP_DIR;
|
||||
|
||||
@@ -23,7 +24,7 @@ public class CleanBackupFilesTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
List<Integer> savedDays = new ArrayList<>(); //TODO: Should probably look into why this isn't used...
|
||||
HashMap<Integer, List<Integer>> savedYearsWeeks = new HashMap<>(); //TODO: Should probably look into why this isn't used...
|
||||
List<File> toDelete = new ArrayList<>();
|
||||
|
||||
@@ -3,14 +3,16 @@ package com.gmail.nossr50.runnables.commands;
|
||||
import com.gmail.nossr50.datatypes.database.PlayerStat;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class LeaderboardsCommandAsyncTask extends BukkitRunnable {
|
||||
public class LeaderboardsCommandAsyncTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final CommandSender sender;
|
||||
private final PrimarySkillType skill;
|
||||
@@ -35,9 +37,12 @@ public class LeaderboardsCommandAsyncTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
final List<PlayerStat> userStats = pluginRef.getDatabaseManager().readLeaderboard(skill, page, 10);
|
||||
|
||||
new LeaderboardsCommandDisplayTask(pluginRef, userStats, page, skill, sender, useBoard, useChat).runTaskLater(pluginRef, 1);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(1L)
|
||||
.setTask(new LeaderboardsCommandDisplayTask(pluginRef, userStats, page, skill, sender, useBoard, useChat))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,17 +4,20 @@ import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.database.PlayerStat;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Display the results of {@link LeaderboardsCommandAsyncTask} to the sender.
|
||||
*/
|
||||
public class LeaderboardsCommandDisplayTask extends BukkitRunnable {
|
||||
public class LeaderboardsCommandDisplayTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final List<PlayerStat> userStats;
|
||||
private final CommandSender sender;
|
||||
@@ -33,7 +36,7 @@ public class LeaderboardsCommandDisplayTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
|
||||
displayBoard();
|
||||
}
|
||||
@@ -43,7 +46,7 @@ public class LeaderboardsCommandDisplayTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
if (sender instanceof Player) {
|
||||
((Player) sender).removeMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, pluginRef);
|
||||
((Player) sender).removeMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
if (sender instanceof Player)
|
||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mctop.Tip"));
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package com.gmail.nossr50.runnables.commands;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
//TODO: Rewrite, wrote this in a rush.
|
||||
public class NotifySquelchReminderTask extends BukkitRunnable {
|
||||
public class NotifySquelchReminderTask implements Consumer<Task> {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
@@ -15,7 +18,7 @@ public class NotifySquelchReminderTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (pluginRef.getUserManager().getPlayer(player) != null) {
|
||||
if (!pluginRef.getUserManager().getPlayer(player).useChatNotifications()) {
|
||||
|
||||
@@ -2,14 +2,16 @@ package com.gmail.nossr50.runnables.commands;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class RankCommandAsyncTask extends BukkitRunnable {
|
||||
public class RankCommandAsyncTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final String playerName;
|
||||
private final CommandSender sender;
|
||||
@@ -31,10 +33,13 @@ public class RankCommandAsyncTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
Map<PrimarySkillType, Integer> skills = pluginRef.getDatabaseManager().readRank(playerName);
|
||||
|
||||
new RankCommandDisplayTask(pluginRef, skills, sender, playerName, useBoard, useChat).runTaskLater(pluginRef, 1);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(1L)
|
||||
.setTask(new RankCommandDisplayTask(pluginRef, skills, sender, playerName, useBoard, useChat))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,16 +3,19 @@ package com.gmail.nossr50.runnables.commands;
|
||||
import com.gmail.nossr50.core.MetadataConstants;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Display the results of RankCommandAsyncTask to the sender.
|
||||
*/
|
||||
public class RankCommandDisplayTask extends BukkitRunnable {
|
||||
public class RankCommandDisplayTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final Map<PrimarySkillType, Integer> skills;
|
||||
private final CommandSender sender;
|
||||
@@ -29,7 +32,7 @@ public class RankCommandDisplayTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
|
||||
displayBoard();
|
||||
}
|
||||
@@ -37,7 +40,7 @@ public class RankCommandDisplayTask extends BukkitRunnable {
|
||||
if (useChat) {
|
||||
displayChat();
|
||||
}
|
||||
((Player) sender).removeMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, pluginRef);
|
||||
((Player) sender).removeMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||
}
|
||||
|
||||
private void displayChat() {
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.gmail.nossr50.runnables.commands;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class ScoreboardKeepTask extends BukkitRunnable {
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ScoreboardKeepTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private Player player;
|
||||
|
||||
@@ -14,7 +17,7 @@ public class ScoreboardKeepTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (player.isValid() && pluginRef.getScoreboardManager().isBoardShown(player.getName())) {
|
||||
pluginRef.getScoreboardManager().keepBoard(player.getName());
|
||||
}
|
||||
|
||||
@@ -2,10 +2,13 @@ package com.gmail.nossr50.runnables.database;
|
||||
|
||||
import com.gmail.nossr50.database.DatabaseManager;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class DatabaseConversionTask extends BukkitRunnable {
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class DatabaseConversionTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final DatabaseManager sourceDatabase;
|
||||
private final CommandSender sender;
|
||||
@@ -19,9 +22,8 @@ public class DatabaseConversionTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
sourceDatabase.convertUsers(pluginRef.getDatabaseManager());
|
||||
|
||||
pluginRef.getServer().getScheduler().runTask(pluginRef, () -> sender.sendMessage(message));
|
||||
sender.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package com.gmail.nossr50.runnables.database;
|
||||
|
||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
||||
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.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
//TODO: PUUUUUUUUUUURGE
|
||||
/**
|
||||
@@ -16,7 +19,7 @@ import org.bukkit.scheduler.BukkitRunnable;
|
||||
*
|
||||
* Fix this at some point in the future
|
||||
*/
|
||||
public class FormulaConversionTask extends BukkitRunnable {
|
||||
public class FormulaConversionTask implements Consumer<Task> {
|
||||
private CommandSender sender;
|
||||
private FormulaType previousFormula;
|
||||
private mcMMO pluginRef;
|
||||
@@ -28,11 +31,11 @@ public class FormulaConversionTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
int convertedUsers = 0;
|
||||
long startMillis = System.currentTimeMillis();
|
||||
for (String playerName : pluginRef.getDatabaseManager().getStoredUsers()) {
|
||||
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
|
||||
PlayerProfile profile;
|
||||
|
||||
// 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.
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
package com.gmail.nossr50.runnables.database;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.gmail.nossr50.util.uuid.UUIDFetcher;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class UUIDUpdateAsyncTask extends BukkitRunnable {
|
||||
public class UUIDUpdateAsyncTask implements Consumer<Task> {
|
||||
private mcMMO pluginRef;
|
||||
private final int MAX_LOOKUP = 100;
|
||||
private final int RATE_LIMIT = 300;
|
||||
@@ -31,7 +32,7 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
size = userNames.size();
|
||||
|
||||
pluginRef.getLogger().info("Starting to check and update UUIDs, total amount of users: " + size);
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.gmail.nossr50.runnables.database;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class UserPurgeTask extends BukkitRunnable {
|
||||
public class UserPurgeTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private ReentrantLock lock;
|
||||
|
||||
@@ -15,7 +16,7 @@ public class UserPurgeTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
lock.lock();
|
||||
if (pluginRef.getDatabaseCleaningSettings().isPurgePowerlessUsers())
|
||||
pluginRef.getDatabaseManager().purgePowerlessUsers();
|
||||
|
||||
@@ -1,33 +1,36 @@
|
||||
package com.gmail.nossr50.runnables.items;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.gmail.nossr50.util.ChimaeraWing;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class ChimaeraWingWarmup extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ChimaeraWingWarmup implements Consumer<Task> {
|
||||
private mcMMO pluginRef;
|
||||
private McMMOPlayer mcMMOPlayer;
|
||||
private BukkitMMOPlayer mcMMOPlayer;
|
||||
|
||||
public ChimaeraWingWarmup(mcMMO pluginRef, McMMOPlayer mcMMOPlayer) {
|
||||
public ChimaeraWingWarmup(mcMMO pluginRef, BukkitMMOPlayer mcMMOPlayer) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.mcMMOPlayer = mcMMOPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
checkChimaeraWingTeleport();
|
||||
}
|
||||
|
||||
private void checkChimaeraWingTeleport() {
|
||||
Player player = mcMMOPlayer.getPlayer();
|
||||
Player player = mcMMOPlayer.getNative();
|
||||
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
|
||||
ChimaeraWing chimaeraWing = new ChimaeraWing(pluginRef, mcMMOPlayer);
|
||||
|
||||
if (player.getLocation().distanceSquared(previousLocation) > 1.0 || !player.getInventory().containsAtLeast(pluginRef.getChimaeraWing(), 1)) {
|
||||
if (player.getLocation().distanceSquared(previousLocation) > 1.0 || !player.getInventory().containsAtLeast((ItemStack) pluginRef.getChimaeraWing(), 1)) {
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Teleport.Cancelled"));
|
||||
mcMMOPlayer.setTeleportCommenceLocation(null);
|
||||
return;
|
||||
|
||||
@@ -1,29 +1,32 @@
|
||||
package com.gmail.nossr50.runnables.items;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class TeleportationWarmup extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class TeleportationWarmup implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private McMMOPlayer mcMMOPlayer;
|
||||
private McMMOPlayer mcMMOTarget;
|
||||
private BukkitMMOPlayer mcMMOPlayer;
|
||||
private BukkitMMOPlayer mcMMOTarget;
|
||||
|
||||
public TeleportationWarmup(mcMMO pluginRef, McMMOPlayer mcMMOPlayer, McMMOPlayer mcMMOTarget) {
|
||||
public TeleportationWarmup(mcMMO pluginRef, BukkitMMOPlayer mcMMOPlayer, BukkitMMOPlayer mcMMOTarget) {
|
||||
this.pluginRef = pluginRef;
|
||||
this.mcMMOPlayer = mcMMOPlayer;
|
||||
this.mcMMOTarget = mcMMOTarget;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
Player teleportingPlayer = mcMMOPlayer.getPlayer();
|
||||
Player targetPlayer = mcMMOTarget.getPlayer();
|
||||
public void accept(Task task) {
|
||||
Player teleportingPlayer = mcMMOPlayer.getNative();
|
||||
Player targetPlayer = mcMMOTarget.getNative();
|
||||
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
|
||||
Location newLocation = mcMMOPlayer.getPlayer().getLocation();
|
||||
Location newLocation = mcMMOPlayer.getNative().getLocation();
|
||||
long recentlyHurt = mcMMOPlayer.getRecentlyHurt();
|
||||
|
||||
mcMMOPlayer.setTeleportCommenceLocation(null);
|
||||
|
||||
@@ -2,16 +2,19 @@ package com.gmail.nossr50.runnables.party;
|
||||
|
||||
import com.gmail.nossr50.datatypes.party.Party;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PartyAutoKickTask extends BukkitRunnable {
|
||||
public class PartyAutoKickTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final long KICK_TIME;
|
||||
|
||||
@@ -21,7 +24,7 @@ public class PartyAutoKickTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
HashMap<OfflinePlayer, Party> toRemove = new HashMap<>();
|
||||
List<UUID> processedPlayers = new ArrayList<>();
|
||||
|
||||
@@ -29,7 +32,7 @@ public class PartyAutoKickTask extends BukkitRunnable {
|
||||
|
||||
for (Party party : pluginRef.getPartyManager().getParties()) {
|
||||
for (UUID memberUniqueId : party.getMembers().keySet()) {
|
||||
OfflinePlayer member = pluginRef.getServer().getOfflinePlayer(memberUniqueId);
|
||||
OfflinePlayer member = Bukkit.getServer().getOfflinePlayer(memberUniqueId);
|
||||
boolean isProcessed = processedPlayers.contains(memberUniqueId);
|
||||
|
||||
if ((!member.isOnline() && (currentTime - member.getLastPlayed() > KICK_TIME)) || isProcessed) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.gmail.nossr50.runnables.player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class ClearRegisteredXPGainTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ClearRegisteredXPGainTask implements Consumer<Task> {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
@@ -13,8 +15,8 @@ public class ClearRegisteredXPGainTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
public void accept(Task task) {
|
||||
for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
|
||||
mcMMOPlayer.getProfile().purgeExpiredXpGains();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
package com.gmail.nossr50.runnables.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.mcMMO;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
import com.gmail.nossr50.runnables.commands.ScoreboardKeepTask;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PlayerProfileLoadingTask implements Consumer<Task> {
|
||||
private final mcMMO pluginRef;
|
||||
private final Player player;
|
||||
private int attempt = 0;
|
||||
@@ -27,8 +31,7 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
// WARNING: ASYNC TASK
|
||||
// DO NOT MODIFY THE McMMOPLAYER FROM THIS CODE
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
public void accept(Task task) {
|
||||
if (pluginRef.getMiscTools().isNPCIncludingVillagers(player)) {
|
||||
return;
|
||||
}
|
||||
@@ -42,7 +45,9 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(player.getName(), player.getUniqueId(), true);
|
||||
// If successful, schedule the apply
|
||||
if (profile.isLoaded()) {
|
||||
new ApplySuccessfulProfile(new McMMOPlayer(player, profile, pluginRef)).runTask(pluginRef);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setTask(new ApplySuccessfulProfile(new BukkitMMOPlayer(player, profile, pluginRef)))
|
||||
.schedule();
|
||||
pluginRef.getEventManager().callPlayerProfileLoadEvent(player, profile);
|
||||
return;
|
||||
}
|
||||
@@ -54,7 +59,7 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
player.getName(), String.valueOf(attempt)));
|
||||
|
||||
//Notify the admins
|
||||
pluginRef.getServer().broadcast(pluginRef.getLocaleManager().getString("Profile.Loading.FailureNotice", player.getName()), Server.BROADCAST_CHANNEL_ADMINISTRATIVE);
|
||||
Bukkit.getServer().broadcast(pluginRef.getLocaleManager().getString("Profile.Loading.FailureNotice", player.getName()), Server.BROADCAST_CHANNEL_ADMINISTRATIVE);
|
||||
|
||||
//Notify the player
|
||||
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.Loading.FailurePlayer", String.valueOf(attempt)).split("\n"));
|
||||
@@ -62,21 +67,24 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
|
||||
// Increment attempt counter and try
|
||||
attempt++;
|
||||
|
||||
new PlayerProfileLoadingTask(pluginRef, player, attempt).runTaskLaterAsynchronously(pluginRef, (100 + (attempt * 100)));
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setAsync(true)
|
||||
.setDelay((long) (100 + (attempt * 100)))
|
||||
.setTask(new PlayerProfileLoadingTask(pluginRef, player, attempt))
|
||||
.schedule();
|
||||
}
|
||||
|
||||
private class ApplySuccessfulProfile extends BukkitRunnable {
|
||||
private final McMMOPlayer mcMMOPlayer;
|
||||
private class ApplySuccessfulProfile implements Consumer<Task> {
|
||||
private final BukkitMMOPlayer mcMMOPlayer;
|
||||
|
||||
private ApplySuccessfulProfile(McMMOPlayer mcMMOPlayer) {
|
||||
private ApplySuccessfulProfile(BukkitMMOPlayer mcMMOPlayer) {
|
||||
this.mcMMOPlayer = mcMMOPlayer;
|
||||
}
|
||||
|
||||
// Synchronized task
|
||||
// No database access permitted
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (!player.isOnline()) {
|
||||
pluginRef.getLogger().info("Aborting profile loading recovery for " + player.getName() + " - player logged out");
|
||||
return;
|
||||
@@ -91,7 +99,10 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
|
||||
|
||||
if (pluginRef.getScoreboardSettings().getShowStatsAfterLogin()) {
|
||||
pluginRef.getScoreboardManager().enablePlayerStatsScoreboard(player);
|
||||
new ScoreboardKeepTask(pluginRef, player).runTaskLater(pluginRef, pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
||||
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||
.setDelay(pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||
.setTask(new ScoreboardKeepTask(pluginRef, player))
|
||||
.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user