mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2026-02-18 17:53:00 +01:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21b4bcc21f | ||
|
|
f96ba1b4b5 | ||
|
|
5ba410f4cf | ||
|
|
88767fd0a9 | ||
|
|
a2c88d657c | ||
|
|
a26216b0d0 | ||
|
|
33e0b40e19 | ||
|
|
31a98791f3 | ||
|
|
c2bbe33fe8 | ||
|
|
12abd68add | ||
|
|
326ff1cd70 | ||
|
|
9f0fe26778 | ||
|
|
0a59b79ef9 | ||
|
|
441125dbd1 | ||
|
|
27b1c6b094 | ||
|
|
d661a77c82 | ||
|
|
f50b368b60 | ||
|
|
1204b9a94c | ||
|
|
c2bbbdf24f | ||
|
|
c916070cd1 | ||
|
|
48e547e51f | ||
|
|
4ee86bf6a6 | ||
|
|
21a0a05683 | ||
|
|
ec58a0e81f | ||
|
|
f8a14a7ab3 | ||
|
|
eee09d8d76 | ||
|
|
1fbcf698c6 | ||
|
|
a84a9e9c38 |
@@ -1,4 +1,3 @@
|
||||
<<<<<<< HEAD
|
||||
Version 2.2.0
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@@ -204,6 +203,16 @@ 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.118
|
||||
Fixed another dupe bug
|
||||
Blast Mining no longer reduces debris from explosions due to some issues with the Bukkit API
|
||||
Modified locale string 'Mining.Blast.Effect' to remove debris reduction mention
|
||||
Rupture now fires a FakeEntityDamageByEntityEvent before damaging its victims (cancelling it will be ignored)
|
||||
|
||||
Version 2.1.117
|
||||
Fixed a rare http error when polling Mojang for UUIDs
|
||||
Fixed a bug that allowed duping
|
||||
|
||||
Version 2.1.116
|
||||
Fixed directional plants not maintaining their direction when replanted
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -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,9 +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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class MiningCommand extends SkillCommand {
|
||||
private int bonusTNTDrops;
|
||||
private double blastRadiusIncrease;
|
||||
private String oreBonus;
|
||||
private String debrisReduction;
|
||||
// private String debrisReduction;
|
||||
private String blastDamageDecrease;
|
||||
|
||||
private boolean canSuperBreaker;
|
||||
@@ -42,7 +42,7 @@ public class MiningCommand extends SkillCommand {
|
||||
blastMiningRank = miningManager.getBlastMiningTier();
|
||||
bonusTNTDrops = miningManager.getDropMultiplier();
|
||||
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
|
||||
debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
||||
// debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
|
||||
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
|
||||
blastRadiusIncrease = miningManager.getBlastRadiusModifier();
|
||||
}
|
||||
@@ -81,8 +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, debrisReduction, bonusTNTDrops)));
|
||||
//messages.add(pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
|
||||
messages.add(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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,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)
|
||||
@@ -122,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"))
|
||||
@@ -131,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -161,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);
|
||||
}
|
||||
@@ -287,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;
|
||||
}
|
||||
|
||||
@@ -299,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;
|
||||
}
|
||||
@@ -352,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();
|
||||
|
||||
@@ -500,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)
|
||||
@@ -615,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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,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:
|
||||
@@ -690,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();
|
||||
@@ -722,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;
|
||||
@@ -765,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;
|
||||
@@ -791,8 +795,8 @@ public class EntityListener implements Listener {
|
||||
MiningManager miningManager = pluginRef.getUserManager().getPlayer(player).getMiningManager();
|
||||
|
||||
if (miningManager.canUseBlastMining()) {
|
||||
miningManager.blastMiningDropProcessing(event.getYield(), event.blockList());
|
||||
event.setYield(0);
|
||||
miningManager.blastMiningDropProcessing(event.getYield(), event);
|
||||
// event.setYield(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -929,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
|
||||
@@ -1017,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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.gmail.nossr50.runnables.player;
|
||||
|
||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class PlayerProfileSaveTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PlayerProfileSaveTask implements Consumer<Task> {
|
||||
private PlayerProfile playerProfile;
|
||||
private boolean isSync;
|
||||
|
||||
@@ -13,7 +15,7 @@ public class PlayerProfileSaveTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
playerProfile.save(isSync);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.gmail.nossr50.runnables.player;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class PlayerUpdateInventoryTask extends BukkitRunnable {
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PlayerUpdateInventoryTask implements Consumer<Task> {
|
||||
private Player player;
|
||||
|
||||
public PlayerUpdateInventoryTask(Player player) {
|
||||
@@ -11,7 +14,7 @@ public class PlayerUpdateInventoryTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
player.updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.gmail.nossr50.runnables.player;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||
|
||||
public class PowerLevelUpdatingTask extends BukkitRunnable {
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PowerLevelUpdatingTask implements Consumer<Task> {
|
||||
|
||||
private final mcMMO pluginRef;
|
||||
|
||||
@@ -12,9 +14,9 @@ public class PowerLevelUpdatingTask extends BukkitRunnable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void accept(Task task) {
|
||||
if (!pluginRef.getScoreboardManager().powerLevelHeartbeat()) {
|
||||
this.cancel();
|
||||
task.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user