1
0
mirror of https://github.com/mcMMO-Dev/mcMMO.git synced 2026-02-18 09:43:00 +01:00

Compare commits

...

28 Commits
nbt ... api

Author SHA1 Message Date
Shane Freeder
21b4bcc21f Fix onLoad, restore WG support 2020-03-05 01:12:02 +00:00
Shane Freeder
f96ba1b4b5 Actually use the BukkitMetadataStore 2020-03-04 23:23:20 +00:00
Shane Freeder
5ba410f4cf Implement BukkitMetadataStore, fix legacy setMetadata calls 2020-03-04 23:19:11 +00:00
Shane Freeder
88767fd0a9 Complete BukkitRunnable migration 2020-03-04 16:04:48 +00:00
Shane Freeder
a2c88d657c It compiles
running is a different matter, however...
2020-02-29 05:05:49 +00:00
Shane Freeder
a26216b0d0 Merge branch 'configurable' into api 2020-02-29 01:01:26 +00:00
Shane Freeder
33e0b40e19 Merge remote-tracking branch 'origin/master' into configurable 2020-02-29 00:21:37 +00:00
nossr50
31a98791f3 dev mode 2020-02-28 15:48:48 -08:00
nossr50
c2bbe33fe8 2.1.118 2020-02-28 15:44:22 -08:00
nossr50
12abd68add Rupture fires a FakeEntityDamageByEntityEvent fixes #4122 2020-02-28 15:43:32 -08:00
nossr50
326ff1cd70 Update blast mining info in /mining 2020-02-28 15:27:57 -08:00
nossr50
9f0fe26778 Blast Mining Tweaks 2020-02-27 12:45:35 -08:00
nossr50
0a59b79ef9 Dev mode 2020-02-27 10:50:56 -08:00
nossr50
441125dbd1 2.1.117 2020-02-27 07:36:41 -08:00
nossr50
27b1c6b094 null check on player debug command 2020-02-24 17:08:23 -08:00
nossr50
d661a77c82 Merge branch 'configurable' of github.com:mcMMO-Dev/mcmmo into api 2020-02-24 16:06:38 -08:00
nossr50
f50b368b60 Merge branch 'configurable' of github.com:mcMMO-Dev/mcmmo into api 2020-02-20 17:44:46 -08:00
nossr50
1204b9a94c merge configurable into api, don't hurt me 2020-02-20 16:36:52 -08:00
Shane Freeder
c2bbbdf24f More API work 2020-02-04 23:03:42 +00:00
Shane Freeder
c916070cd1 Create BukkitPlatformScheduler 2020-02-01 02:29:02 +00:00
Shane Freeder
48e547e51f More API refactoring work 2020-01-31 01:48:19 +00:00
Shane Freeder
4ee86bf6a6 Merge branch 'configurable' into api 2020-01-30 10:24:18 +00:00
Shane Freeder
21a0a05683 Current progress on data accessors
Pushing because I started on stuff and don't wanna lose it...
2020-01-20 21:52:52 +00:00
Shane Freeder
ec58a0e81f Merge branch 'configurable' into api 2020-01-16 09:49:49 +00:00
Shane Freeder
f8a14a7ab3 Merge remote-tracking branch 'origin/configurable' into api 2019-10-09 21:54:48 +01:00
Shane Freeder
eee09d8d76 [WIP] Start breakout of mcmmo plugin
This commit starts work on the seperation of mcmmo and platform logic,
there is still a fair amount of work to go before this will compile,
down the line (potentially much further), bukkit logic will be stripped
out of -core
2019-10-09 21:53:04 +01:00
Shane Freeder
1fbcf698c6 Merge branch 'configurable' into api 2019-10-06 01:34:55 +01:00
Shane Freeder
a84a9e9c38 Create api module, McMMOPlayer -> BukkitMMOPlayer 2019-10-05 02:55:03 +01:00
171 changed files with 2038 additions and 1114 deletions

View File

@@ -1,4 +1,3 @@
<<<<<<< HEAD
Version 2.2.0 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 API method to check if a skill was being level capped
Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill
Version 2.1.118
Fixed another dupe bug
Blast Mining no longer reduces debris from explosions due to some issues with the Bukkit API
Modified locale string 'Mining.Blast.Effect' to remove debris reduction mention
Rupture now fires a FakeEntityDamageByEntityEvent before damaging its victims (cancelling it will be ignored)
Version 2.1.117
Fixed a rare http error when polling Mojang for UUIDs
Fixed a bug that allowed duping
Version 2.1.116 Version 2.1.116
Fixed directional plants not maintaining their direction when replanted Fixed directional plants not maintaining their direction when replanted

View 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)
}

View File

@@ -0,0 +1,4 @@
package com.gmail.nossr50.mcmmo.api;
public interface McMMOApi {
}

View File

@@ -0,0 +1,6 @@
package com.gmail.nossr50.mcmmo.api.data;
public interface MMOEntity<N> {
N getNative();
}

View File

@@ -0,0 +1,5 @@
package com.gmail.nossr50.mcmmo.api.data;
public interface MMOPlayer<N> extends MMOEntity<N> {
}

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}

View File

@@ -0,0 +1,9 @@
package com.gmail.nossr50.mcmmo.api.platform.scheduler;
public interface Task {
void cancel();
void run();
}

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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);
}

View 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")
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -1,22 +1,39 @@
package com.gmail.nossr50.util; package com.gmail.nossr50.mcmmo.bukkit.platform.util;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.MobHealthbarType; import com.gmail.nossr50.datatypes.MobHealthbarType;
import com.gmail.nossr50.datatypes.meta.OldName; import com.gmail.nossr50.datatypes.meta.OldName;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
import com.gmail.nossr50.runnables.MobHealthDisplayUpdaterTask; import com.gmail.nossr50.runnables.MobHealthDisplayUpdaterTask;
import com.gmail.nossr50.util.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
public final class MobHealthBarManager { public final class BukkitMobHealthBarManager implements MobHealthBarManager<Player, LivingEntity> {
private final Plugin plugin;
private final mcMMO pluginRef; private final mcMMO pluginRef;
private final boolean healthBarPluginEnabled;
public MobHealthBarManager(mcMMO pluginRef) { public BukkitMobHealthBarManager(Plugin plugin, mcMMO pluginRef) {
this.plugin = plugin;
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
if (healthBarPluginEnabled) {
pluginRef.getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled.");
}
} }
/** /**
@@ -26,8 +43,9 @@ public final class MobHealthBarManager {
* @param player The player who died * @param player The player who died
* @return the fixed death message * @return the fixed death message
*/ */
public String fixDeathMessage(String deathMessage, Player player) { @Override
EntityDamageEvent lastDamageCause = player.getLastDamageCause(); public String fixDeathMessage(String deathMessage, MMOPlayer<Player> player) {
EntityDamageEvent lastDamageCause = player.getNative().getLastDamageCause();
String replaceString = lastDamageCause instanceof EntityDamageByEntityEvent ? StringUtils.getPrettyEntityTypeString(((EntityDamageByEntityEvent) lastDamageCause).getDamager().getType()) : "a mob"; String replaceString = lastDamageCause instanceof EntityDamageByEntityEvent ? StringUtils.getPrettyEntityTypeString(((EntityDamageByEntityEvent) lastDamageCause).getDamager().getType()) : "a mob";
return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString); return deathMessage.replaceAll("(?:\u00A7(?:[0-9A-FK-ORa-fk-or]){1}(?:[\u2764\u25A0]{1,10})){1,2}", replaceString);
@@ -36,13 +54,15 @@ public final class MobHealthBarManager {
/** /**
* Handle the creation of mob healthbars. * Handle the creation of mob healthbars.
* *
* @param target the targetted entity * @param mmoTarget the targetted entity
* @param damage damage done by the attack triggering this * @param damage damage done by the attack triggering this
*/ */
public void handleMobHealthbars(LivingEntity target, double damage, mcMMO plugin) { @Override
if (pluginRef.isHealthBarPluginEnabled() || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) { public void handleMobHealthbars(MMOEntity<LivingEntity> mmoTarget, double damage) {
if (healthBarPluginEnabled || !pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().isEnableHealthBars()) {
return; return;
} }
LivingEntity target = mmoTarget.getNative();
if (isBoss(target)) { if (isBoss(target)) {
return; return;
@@ -60,7 +80,7 @@ public final class MobHealthBarManager {
* Store the name in metadata * Store the name in metadata
*/ */
if (target.getMetadata("mcMMO_oldName").size() <= 0 && originalName != null) if (target.getMetadata("mcMMO_oldName").size() <= 0 && originalName != null)
target.setMetadata("mcMMO_oldName", new OldName(originalName, plugin)); target.setMetadata("mcMMO_oldName", new OldName(originalName, pluginRef));
if (oldName == null) { if (oldName == null) {
oldName = ""; oldName = "";
@@ -79,14 +99,17 @@ public final class MobHealthBarManager {
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName)); boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
if (updateName) { if (updateName) {
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, oldName)); target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, oldName));
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, oldNameVisible)); target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, oldNameVisible));
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) { } else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, "")); target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, ""));
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, false)); target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, false));
} }
new MobHealthDisplayUpdaterTask(pluginRef, target).runTaskLater(pluginRef, displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR); // Clear health display after 3 seconds pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setDelay(displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR) // Clear health display after 3 seconds
.setTask(new MobHealthDisplayUpdaterTask(pluginRef, target))
.schedule();
} }
} }

View File

@@ -13,7 +13,7 @@ description: >
author: nossr50 author: nossr50
authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking, electronicboy, kashike] authors: [GJ, NuclearW, bm01, Glitchfinder, TfT_02, t00thpick1, Riking, electronicboy, kashike]
website: https://www.mcmmo.org website: https://www.mcmmo.org
main: com.gmail.nossr50.mcMMO main: com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap
softdepend: [WorldGuard, WorldEdit, CombatTag, HealthBar] softdepend: [WorldGuard, WorldEdit, CombatTag, HealthBar]
load: POSTWORLD load: POSTWORLD
api-version: 1.13 api-version: 1.13

View File

@@ -9,6 +9,7 @@ plugins {
tasks { tasks {
shadowJar { shadowJar {
/*
dependencies { dependencies {
include(dependency("org.spongepowered:configurate-yaml")) include(dependency("org.spongepowered:configurate-yaml"))
include(dependency("org.spongepowered:configurate-hocon")) include(dependency("org.spongepowered:configurate-hocon"))
@@ -24,6 +25,7 @@ tasks {
include(dependency("net.kyori:text-serializer-gson")) include(dependency("net.kyori:text-serializer-gson"))
exclude(dependency("org.spigotmc:spigot")) exclude(dependency("org.spigotmc:spigot"))
} }
*/
relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging") relocate("org.apache.commons.logging", "com.gmail.nossr50.commons.logging")
relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli") relocate("org.apache.juli", "com.gmail.nossr50.database.tomcat.juli")
relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat") relocate("org.apache.tomcat", "com.gmail.nossr50.database.tomcat")
@@ -57,21 +59,20 @@ tasks.named<ShadowJar>("shadowJar") {
dependencies { dependencies {
api("org.apache.tomcat:tomcat-jdbc:7.0.52") api(project(":mcmmo-api"))
api("com.typesafe:config:1.3.2") compile("org.apache.tomcat:tomcat-jdbc:7.0.52")
api("org.spongepowered:configurate-core:3.7-SNAPSHOT") compile("com.typesafe:config:1.3.2")
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT") compile("org.spongepowered:configurate-core:3.7-SNAPSHOT")
api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT") compile("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments) compile("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
api("co.aikar:acf-paper:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments) compile("net.kyori:text-api:3.0.2")
api("net.kyori:text-api:3.0.2") compile("net.kyori:text-serializer-gson:3.0.2")
api("net.kyori:text-serializer-gson:3.0.2") compile("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
api("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT") compile("org.jetbrains:annotations:17.0.0")
implementation("org.jetbrains:annotations:17.0.0") compile("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1") compile("org.bstats:bstats-bukkit:1.4")
implementation("org.bstats:bstats-bukkit:1.4") compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT") compileOnly("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
testImplementation("junit:junit:4.10") testImplementation("junit:junit:4.10")
} }

View File

@@ -1,12 +1,15 @@
package com.gmail.nossr50.chat; package com.gmail.nossr50.chat;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.events.chat.McMMOAdminChatEvent; import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
import com.gmail.nossr50.events.chat.McMMOPartyChatEvent; import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -14,29 +17,32 @@ import java.util.regex.Pattern;
public class ChatManager { public class ChatManager {
private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat"; private final String ADMIN_CHAT_PERMISSION = "mcmmo.chat.adminchat";
private final mcMMO pluginRef; private final mcMMO pluginRef;
@Deprecated
private final Plugin legacyPlugin;
public ChatManager(mcMMO pluginRef) { public ChatManager(mcMMO pluginRef) {
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
this.legacyPlugin = (Plugin) pluginRef.getPlatformProvider();
} }
public void processAdminChat(Player player, String message) { public void processAdminChat(Player player, String message) {
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, player.getName(), player.getDisplayName(), message)); sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, player.getName(), player.getDisplayName(), message));
} }
public void processAdminChat(String senderName, String displayName, String message) { public void processAdminChat(String senderName, String displayName, String message) {
sendAdminChatMessage(new McMMOAdminChatEvent(pluginRef, senderName, displayName, message)); sendAdminChatMessage(new McMMOAdminChatEvent(legacyPlugin, senderName, displayName, message));
} }
public void processPartyChat(Party party, Player sender, String message) { public void processPartyChat(Party party, Player sender, String message) {
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, sender.getName(), sender.getDisplayName(), party, message)); sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, sender.getName(), sender.getDisplayName(), party, message));
} }
public void processPartyChat(Party party, String senderName, String message) { public void processPartyChat(Party party, String senderName, String message) {
sendPartyChatMessage(new McMMOPartyChatEvent(pluginRef, senderName, senderName, party, message)); sendPartyChatMessage(new McMMOPartyChatEvent(legacyPlugin, senderName, senderName, party, message));
} }
private void sendAdminChatMessage(McMMOAdminChatEvent event) { private void sendAdminChatMessage(McMMOAdminChatEvent event) {
pluginRef.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;
@@ -47,11 +53,11 @@ public class ChatManager {
String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName; String displayName = pluginRef.getConfigManager().getConfigCommands().isUseDisplayNames() ? event.getDisplayName() : senderName;
String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage(); String message = pluginRef.getLocaleManager().formatString(chatPrefix, displayName) + " " + event.getMessage();
pluginRef.getServer().broadcast(message, ADMIN_CHAT_PERMISSION); Bukkit.getServer().broadcast(message, ADMIN_CHAT_PERMISSION);
} }
private void sendPartyChatMessage(McMMOPartyChatEvent event) { private void sendPartyChatMessage(McMMOPartyChatEvent event) {
pluginRef.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;
@@ -79,13 +85,13 @@ public class ChatManager {
} }
} }
pluginRef.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message)); Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.stripColor("[mcMMO] [P]<" + party.getName() + ">" + message));
/* /*
* Party Chat Spying * Party Chat Spying
*/ */
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) { for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
//Check for toggled players //Check for toggled players
if (mcMMOPlayer.isPartyChatSpying()) { if (mcMMOPlayer.isPartyChatSpying()) {

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands; package com.gmail.nossr50.commands;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -21,8 +21,8 @@ public class AbilityToggleCommand extends ToggleCommand {
} }
@Override @Override
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On"))); mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.Ability." + (mcMMOPlayer.getAllowAbilityUse() ? "Off" : "On")));
mcMMOPlayer.toggleAbilityUse(); mcMMOPlayer.toggleAbilityUse();
} }

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands; package com.gmail.nossr50.commands;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -26,7 +26,7 @@ public class ChatNotificationToggleCommand implements TabExecutor {
switch (args.length) { switch (args.length) {
case 0: case 0:
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
//Not Loaded yet //Not Loaded yet
if (mcMMOPlayer == null) if (mcMMOPlayer == null)

View File

@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.notifications.SensitiveCommandType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.StringUtils;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -37,15 +39,15 @@ public class ExperienceRateCommand implements TabExecutor {
if (pluginRef.isXPEventEnabled()) { if (pluginRef.isXPEventEnabled()) {
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) { if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
pluginRef.getNotificationManager().broadcastTitle(pluginRef.getServer(), pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
pluginRef.getLocaleManager().getString("Commands.Event.Stop"), pluginRef.getLocaleManager().getString("Commands.Event.Stop"),
pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"), pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"),
10, 10 * 20, 20); 10, 10 * 20, 20);
} }
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) { if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop")); Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop"));
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle")); Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Stop.Subtitle"));
} }
//Admin notification //Admin notification
@@ -85,15 +87,15 @@ public class ExperienceRateCommand implements TabExecutor {
pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate); pluginRef.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) { if (pluginRef.getConfigManager().getConfigEvent().isSendTitleMessages()) {
pluginRef.getNotificationManager().broadcastTitle(pluginRef.getServer(), pluginRef.getNotificationManager().broadcastTitle(Bukkit.getServer(),
pluginRef.getLocaleManager().getString("Commands.Event.Start"), pluginRef.getLocaleManager().getString("Commands.Event.Start"),
pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate), pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate),
10, 10 * 20, 20); 10, 10 * 20, 20);
} }
if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) { if (pluginRef.getConfigManager().getConfigEvent().isBroadcastXPRateEventMessages()) {
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start")); Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.Start"));
pluginRef.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate)); Bukkit.getServer().broadcastMessage(pluginRef.getLocaleManager().getString("Commands.Event.XP", newXpRate));
} }
//Admin notification //Admin notification

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands; package com.gmail.nossr50.commands;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -21,8 +21,8 @@ public class GodModeCommand extends ToggleCommand {
} }
@Override @Override
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled"))); mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
mcMMOPlayer.toggleGodMode(); mcMMOPlayer.toggleGodMode();
} }

View File

@@ -6,6 +6,7 @@ import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
public class McMMOCommand implements CommandExecutor { public class McMMOCommand implements CommandExecutor {
@@ -34,7 +35,7 @@ public class McMMOCommand implements CommandExecutor {
sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal"); sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
} }
sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", pluginRef.getDescription().getVersion())); sender.sendMessage(pluginRef.getLocaleManager().getString("MOTD.Version", ((Plugin) pluginRef.getPlatformProvider()).getDescription().getVersion()));
// mcMMO.getHolidayManager().anniversaryCheck(sender); // mcMMO.getHolidayManager().anniversaryCheck(sender);
return true; return true;

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands; package com.gmail.nossr50.commands;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -21,13 +21,13 @@ public class RefreshCooldownsCommand extends ToggleCommand {
} }
@Override @Override
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
mcMMOPlayer.setRecentlyHurt(0); mcMMOPlayer.setRecentlyHurt(0);
mcMMOPlayer.resetCooldowns(); mcMMOPlayer.resetCooldowns();
mcMMOPlayer.resetToolPrepMode(); mcMMOPlayer.resetToolPrepMode();
mcMMOPlayer.resetSuperAbilityMode(); mcMMOPlayer.resetSuperAbilityMode();
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh")); mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Ability.Generic.Refresh"));
} }
@Override @Override

View File

@@ -2,7 +2,7 @@ package com.gmail.nossr50.commands;
import com.gmail.nossr50.database.FlatFileDatabaseManager; import com.gmail.nossr50.database.FlatFileDatabaseManager;
import com.gmail.nossr50.database.SQLDatabaseManager; import com.gmail.nossr50.database.SQLDatabaseManager;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -24,7 +24,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) { if (pluginRef.getDatabaseManager() instanceof SQLDatabaseManager) {
SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager(); SQLDatabaseManager sqlDatabaseManager = (SQLDatabaseManager) pluginRef.getDatabaseManager();
sqlDatabaseManager.resetMobHealthSettings(); sqlDatabaseManager.resetMobHealthSettings();
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) { for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType()); player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
} }
sender.sendMessage("Mob health reset"); sender.sendMessage("Mob health reset");
@@ -33,7 +33,7 @@ public class ResetUserHealthBarSettingsCommand implements TabExecutor {
if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) { if (pluginRef.getDatabaseManager() instanceof FlatFileDatabaseManager) {
FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager(); FlatFileDatabaseManager flatFileDatabaseManager = (FlatFileDatabaseManager) pluginRef.getDatabaseManager();
flatFileDatabaseManager.resetMobHealthSettings(); flatFileDatabaseManager.resetMobHealthSettings();
for (McMMOPlayer player : pluginRef.getUserManager().getPlayers()) { for (BukkitMMOPlayer player : pluginRef.getUserManager().getPlayers()) {
player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType()); player.getProfile().setMobHealthbarType(pluginRef.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayBarType());
} }
sender.sendMessage("Mob health reset"); sender.sendMessage("Mob health reset");

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands; package com.gmail.nossr50.commands;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -46,7 +46,7 @@ public abstract class ToggleCommand implements TabExecutor {
} }
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]); String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(playerName);
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, playerName, mcMMOPlayer)) { if (!pluginRef.getCommandTools().checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
return true; return true;
@@ -81,7 +81,7 @@ public abstract class ToggleCommand implements TabExecutor {
protected abstract boolean hasSelfPermission(CommandSender sender); protected abstract boolean hasSelfPermission(CommandSender sender);
protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer); protected abstract void applyCommandAction(BukkitMMOPlayer mcMMOPlayer);
protected abstract void sendSuccessMessage(CommandSender sender, String playerName); protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
} }

View File

@@ -5,7 +5,7 @@ import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Dependency; import co.aikar.commands.annotation.Dependency;
import co.aikar.commands.annotation.Description; 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 com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -21,9 +21,12 @@ public class PlayerDebugCommand extends BaseCommand {
@Default @Default
public void onCommand(CommandSender sender) { public void onCommand(CommandSender sender) {
if(sender instanceof Player) { 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 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 { } else {
//TODO: Localize //TODO: Localize
sender.sendMessage("Players only"); sender.sendMessage("Players only");

View File

@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.chat;
import com.gmail.nossr50.commands.CommandConstants; import com.gmail.nossr50.commands.CommandConstants;
import com.gmail.nossr50.datatypes.chat.ChatMode; import com.gmail.nossr50.datatypes.chat.ChatMode;
import com.gmail.nossr50.datatypes.party.PartyFeature; import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -26,7 +26,7 @@ public abstract class ChatCommand implements TabExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
McMMOPlayer mcMMOPlayer; BukkitMMOPlayer mcMMOPlayer;
switch (args.length) { switch (args.length) {
case 0: case 0:
@@ -109,7 +109,7 @@ public abstract class ChatCommand implements TabExecutor {
protected abstract void handleChatSending(CommandSender sender, String[] args); protected abstract void handleChatSending(CommandSender sender, String[] args);
private void enableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) { private void enableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) { if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
return; return;
@@ -124,7 +124,7 @@ public abstract class ChatCommand implements TabExecutor {
sender.sendMessage(getChatModeEnabledMessage(chatMode, true)); sender.sendMessage(getChatModeEnabledMessage(chatMode, true));
} }
private void disableChatMode(McMMOPlayer mcMMOPlayer, CommandSender sender) { private void disableChatMode(BukkitMMOPlayer mcMMOPlayer, CommandSender sender) {
if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) { if (chatMode == ChatMode.PARTY && mcMMOPlayer.getParty() == null) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
return; return;

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.chat; package com.gmail.nossr50.commands.chat;
import com.gmail.nossr50.commands.ToggleCommand; import com.gmail.nossr50.commands.ToggleCommand;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -22,8 +22,8 @@ public class ChatSpyCommand extends ToggleCommand {
} }
@Override @Override
protected void applyCommandAction(McMMOPlayer mcMMOPlayer) { protected void applyCommandAction(BukkitMMOPlayer mcMMOPlayer) {
mcMMOPlayer.getPlayer().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled"))); mcMMOPlayer.getNative().sendMessage(pluginRef.getLocaleManager().getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
mcMMOPlayer.togglePartyChatSpying(); mcMMOPlayer.togglePartyChatSpying();
} }

View File

@@ -6,6 +6,8 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.database.DatabaseConversionTask; import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask; import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -57,17 +59,24 @@ public class ConvertDatabaseCommand implements CommandExecutor {
pluginRef.getUserManager().saveAll(); pluginRef.getUserManager().saveAll();
pluginRef.getUserManager().clearAll(); pluginRef.getUserManager().clearAll();
for (Player player : pluginRef.getServer().getOnlinePlayers()) { for (Player player : Bukkit.getServer().getOnlinePlayers()) {
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId()); PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
if (profile.isLoaded()) { if (profile.isLoaded()) {
pluginRef.getDatabaseManager().saveUser(profile); pluginRef.getDatabaseManager().saveUser(profile);
} }
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
.schedule();
} }
new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(pluginRef); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setTask(new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()))
.schedule();
return true; return true;
default: default:

View File

@@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.experience.FormulaType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.database.FormulaConversionTask; import com.gmail.nossr50.runnables.database.FormulaConversionTask;
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask; import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -31,10 +33,17 @@ public class ConvertExperienceCommand implements CommandExecutor {
pluginRef.getUserManager().saveAll(); pluginRef.getUserManager().saveAll();
pluginRef.getUserManager().clearAll(); pluginRef.getUserManager().clearAll();
new FormulaConversionTask(pluginRef, sender, previousType).runTaskLater(pluginRef, 1); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setDelay(1L)
.setTask(new FormulaConversionTask(pluginRef, sender, previousType))
.schedule();
for (Player player : pluginRef.getServer().getOnlinePlayers()) { for (Player player : Bukkit.getServer().getOnlinePlayers()) {
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
.schedule();
} }
return true; return true;

View File

@@ -1,10 +1,12 @@
package com.gmail.nossr50.commands.experience; package com.gmail.nossr50.commands.experience;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -96,12 +98,12 @@ public abstract class ExperienceCommand implements TabExecutor {
int value = Integer.parseInt(args[2]); int value = Integer.parseInt(args[2]);
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]); String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
UUID uuid = null; UUID uuid = null;
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName); OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
if (player != null) { if (player != null) {
uuid = player.getUniqueId(); uuid = player.getUniqueId();
} }
@@ -113,7 +115,7 @@ public abstract class ExperienceCommand implements TabExecutor {
editValues(null, profile, skill, value); editValues(null, profile, skill, value);
} else { } else {
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value); editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill, value);
} }
handleSenderMessage(sender, playerName, skill); handleSenderMessage(sender, playerName, skill);

View File

@@ -1,11 +1,13 @@
package com.gmail.nossr50.commands.experience; package com.gmail.nossr50.commands.experience;
import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -81,12 +83,12 @@ public class SkillResetCommand implements TabExecutor {
} }
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]); String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
UUID uuid = null; UUID uuid = null;
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(playerName); OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(playerName);
if (player != null) { if (player != null) {
uuid = player.getUniqueId(); uuid = player.getUniqueId();
} }
@@ -98,7 +100,7 @@ public class SkillResetCommand implements TabExecutor {
editValues(null, profile, skill); editValues(null, profile, skill);
} else { } else {
editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill); editValues(mcMMOPlayer.getNative(), mcMMOPlayer.getProfile(), skill);
} }
handleSenderMessage(sender, playerName, skill); handleSenderMessage(sender, playerName, skill);

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -26,7 +26,7 @@ public class PartyAcceptCommand implements CommandExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (!mcMMOPlayer.hasPartyInvite()) { if (!mcMMOPlayer.hasPartyInvite()) {

View File

@@ -2,6 +2,8 @@ package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -28,7 +30,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor {
Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty(); Party playerParty = pluginRef.getUserManager().getPlayer((Player) sender).getParty();
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]); String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName); OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
if (!playerParty.hasMember(target.getUniqueId())) { if (!playerParty.hasMember(target.getUniqueId())) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName)); sender.sendMessage(pluginRef.getLocaleManager().getString("Party.NotInYourParty", targetName));

View File

@@ -5,7 +5,7 @@ import com.gmail.nossr50.commands.chat.PartyChatCommand;
import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand; import com.gmail.nossr50.commands.party.alliance.PartyAllianceCommand;
import com.gmail.nossr50.commands.party.teleport.PtpCommand; import com.gmail.nossr50.commands.party.teleport.PtpCommand;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -110,7 +110,7 @@ public class PartyCommand implements TabExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (args.length < 1) { if (args.length < 1) {
if (!mcMMOPlayer.inParty()) { if (!mcMMOPlayer.inParty()) {

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -21,7 +21,7 @@ public class PartyCreateCommand implements CommandExecutor {
case 2: case 2:
case 3: case 3:
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (pluginRef.getUserManager().getPlayer(player) == null) { if (pluginRef.getUserManager().getPlayer(player) == null) {
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad")); player.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));

View File

@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.PartyFeature; import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.party.ShareMode; import com.gmail.nossr50.datatypes.party.ShareMode;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.StringUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -33,7 +33,7 @@ public class PartyInfoCommand implements CommandExecutor {
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
Party party = mcMMOPlayer.getParty(); Party party = mcMMOPlayer.getParty();
displayPartyHeader(player, party); displayPartyHeader(player, party);
@@ -133,7 +133,7 @@ public class PartyInfoCommand implements CommandExecutor {
} }
} }
private void displayMemberInfo(Player player, McMMOPlayer mcMMOPlayer, Party party) { private void displayMemberInfo(Player player, BukkitMMOPlayer mcMMOPlayer, Party party) {
/* /*
* Only show members of the party that this member can see * Only show members of the party that this member can see
*/ */

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -21,13 +21,13 @@ public class PartyInviteCommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 2: case 2:
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]); String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) { if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
return false; return false;
} }
Player target = mcMMOTarget.getPlayer(); Player target = mcMMOTarget.getNative();
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) { if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad")); sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
@@ -35,7 +35,7 @@ public class PartyInviteCommand implements CommandExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
String playerName = player.getName(); String playerName = player.getName();
if (player.equals(target)) { if (player.equals(target)) {

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -22,13 +22,13 @@ public class PartyJoinCommand implements CommandExecutor {
case 2: case 2:
case 3: case 3:
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]); String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[1]);
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) { if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
return true; return true;
} }
Player target = mcMMOTarget.getPlayer(); Player target = mcMMOTarget.getNative();
if (!mcMMOTarget.inParty()) { if (!mcMMOTarget.inParty()) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName)); sender.sendMessage(pluginRef.getLocaleManager().getString("Party.PlayerNotInParty", targetName));
@@ -42,7 +42,7 @@ public class PartyJoinCommand implements CommandExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
Party targetParty = mcMMOTarget.getParty(); Party targetParty = mcMMOTarget.getParty();
if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) { if (player.equals(target) || (mcMMOPlayer.inParty() && mcMMOPlayer.getParty().equals(targetParty))) {

View File

@@ -3,6 +3,8 @@ package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -34,7 +36,7 @@ public class PartyKickCommand implements CommandExecutor {
return true; return true;
} }
OfflinePlayer target = pluginRef.getServer().getOfflinePlayer(targetName); OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(targetName);
if (target.isOnline()) { if (target.isOnline()) {
Player onlineTarget = target.getPlayer(); Player onlineTarget = target.getPlayer();

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -28,7 +28,7 @@ public class PartyQuitCommand implements CommandExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
Party playerParty = mcMMOPlayer.getParty(); Party playerParty = mcMMOPlayer.getParty();
if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) { if (!pluginRef.getPartyManager().handlePartyChangeEvent(player, playerParty.getName(), null, EventReason.LEFT_PARTY)) {

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party; package com.gmail.nossr50.commands.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@@ -26,7 +26,7 @@ public class PartyRenameCommand implements CommandExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer((Player) sender);
Party playerParty = mcMMOPlayer.getParty(); Party playerParty = mcMMOPlayer.getParty();
String oldPartyName = playerParty.getName(); String oldPartyName = playerParty.getName();
@@ -38,7 +38,7 @@ public class PartyRenameCommand implements CommandExecutor {
return true; return true;
} }
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
// Check to see if the party exists, and if it does cancel renaming the party // Check to see if the party exists, and if it does cancel renaming the party
if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) { if (pluginRef.getPartyManager().checkPartyExistence(player, newPartyName)) {

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.party.alliance; package com.gmail.nossr50.commands.party.alliance;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -24,7 +24,7 @@ public class PartyAllianceAcceptCommand implements CommandExecutor {
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (!mcMMOPlayer.hasPartyAllianceInvite()) { if (!mcMMOPlayer.hasPartyAllianceInvite()) {
sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites")); sender.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoInvites"));

View File

@@ -3,7 +3,7 @@ package com.gmail.nossr50.commands.party.alliance;
import com.gmail.nossr50.commands.CommandConstants; import com.gmail.nossr50.commands.CommandConstants;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.PartyFeature; import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -48,7 +48,7 @@ public class PartyAllianceCommand implements TabExecutor {
} }
player = (Player) sender; player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
playerParty = mcMMOPlayer.getParty(); playerParty = mcMMOPlayer.getParty();
@@ -132,7 +132,7 @@ public class PartyAllianceCommand implements TabExecutor {
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Ally", playerParty.getName(), targetParty.getName())); player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Ally", playerParty.getName(), targetParty.getName()));
} }
private void displayMemberInfo(McMMOPlayer mcMMOPlayer) { private void displayMemberInfo(BukkitMMOPlayer mcMMOPlayer) {
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header")); player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.Alliance.Members.Header"));
player.sendMessage(playerParty.createMembersList(player)); player.sendMessage(playerParty.createMembersList(player));
player.sendMessage(ChatColor.DARK_GRAY + "----------------------------"); player.sendMessage(ChatColor.DARK_GRAY + "----------------------------");

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party.alliance; package com.gmail.nossr50.commands.party.alliance;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -25,7 +25,7 @@ public class PartyAllianceDisbandCommand implements CommandExecutor {
return true; return true;
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
Party party = mcMMOPlayer.getParty(); Party party = mcMMOPlayer.getParty();
if (party.getAlly() == null) { if (party.getAlly() == null) {

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.party.alliance; package com.gmail.nossr50.commands.party.alliance;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
@@ -21,13 +21,13 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
switch (args.length) { switch (args.length) {
case 3: case 3:
String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[2]); String targetName = pluginRef.getCommandTools().getMatchedPlayerName(args[2]);
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getOfflinePlayer(targetName);
if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) { if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
return false; return false;
} }
Player target = mcMMOTarget.getPlayer(); Player target = mcMMOTarget.getNative();
if (pluginRef.getUserManager().getPlayer((Player) sender) == null) { if (pluginRef.getUserManager().getPlayer((Player) sender) == null) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad")); sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
@@ -35,7 +35,7 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
String playerName = player.getName(); String playerName = player.getName();
if (player.equals(target)) { if (player.equals(target)) {

View File

@@ -4,7 +4,7 @@ import com.gmail.nossr50.commands.CommandConstants;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.PartyFeature; import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord; import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.bukkit.World; import org.bukkit.World;
@@ -61,7 +61,7 @@ public class PtpCommand implements TabExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (!mcMMOPlayer.inParty()) { if (!mcMMOPlayer.inParty()) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Party.None"));
@@ -136,7 +136,7 @@ public class PtpCommand implements TabExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (!mcMMOPlayer.inParty()) { if (!mcMMOPlayer.inParty()) {
return ImmutableList.of(); return ImmutableList.of();
@@ -157,8 +157,8 @@ public class PtpCommand implements TabExecutor {
return; return;
} }
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetName);
Player target = mcMMOTarget.getPlayer(); Player target = mcMMOTarget.getNative();
if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) { if (pluginRef.getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) {
World targetWorld = target.getWorld(); World targetWorld = target.getWorld();

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.player; package com.gmail.nossr50.commands.player;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.scoreboards.SidebarType; import com.gmail.nossr50.util.scoreboards.SidebarType;
@@ -47,7 +47,7 @@ public class CooldownCommand implements TabExecutor {
return true; return true;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Header")); player.sendMessage(pluginRef.getLocaleManager().getString("Commands.Cooldowns.Header"));
player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote")); player.sendMessage(pluginRef.getLocaleManager().getString("mcMMO.NoSkillNote"));

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.player; package com.gmail.nossr50.commands.player;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
@@ -27,7 +27,7 @@ public class InspectCommand implements TabExecutor {
switch (args.length) { switch (args.length) {
case 1: case 1:
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]); String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
// If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process. // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
@@ -65,7 +65,7 @@ public class InspectCommand implements TabExecutor {
} }
} else { } else {
Player target = mcMMOPlayer.getPlayer(); Player target = mcMMOPlayer.getNative();
if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) { if (pluginRef.getCommandTools().hidden(sender, target, pluginRef.getPermissionTools().inspectHidden(sender))) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline")); sender.sendMessage(pluginRef.getLocaleManager().getString("Inspect.Offline"));

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.player; package com.gmail.nossr50.commands.player;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask; import com.gmail.nossr50.runnables.commands.LeaderboardsCommandAsyncTask;
@@ -13,6 +13,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor; import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.StringUtil; import org.bukkit.util.StringUtil;
import java.util.ArrayList; import java.util.ArrayList;
@@ -90,7 +91,7 @@ public class LeaderboardCommand implements TabExecutor {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName()); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
long cooldownMillis = 5000; long cooldownMillis = 5000;
if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) { if (mcMMOPlayer.getDatabaseATS() + cooldownMillis > System.currentTimeMillis()) {
@@ -103,11 +104,11 @@ public class LeaderboardCommand implements TabExecutor {
return; return;
} }
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY)) { if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
return; return;
} else { } else {
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, null)); ((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
} }
mcMMOPlayer.actualizeDatabaseATS(); mcMMOPlayer.actualizeDatabaseATS();
@@ -120,7 +121,10 @@ public class LeaderboardCommand implements TabExecutor {
boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.TOP_BOARD)); boolean useBoard = (sender instanceof Player) && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.TOP_BOARD));
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.TOP_BOARD); boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.TOP_BOARD);
new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat).runTaskAsynchronously(pluginRef); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setTask(new LeaderboardsCommandAsyncTask(pluginRef, page, skill, sender, useBoard, useChat))
.schedule();
} }
private PrimarySkillType extractSkill(CommandSender sender, String skillName) { private PrimarySkillType extractSkill(CommandSender sender, String skillName) {

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.commands.player; package com.gmail.nossr50.commands.player;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.commands.RankCommandAsyncTask; import com.gmail.nossr50.runnables.commands.RankCommandAsyncTask;
import com.gmail.nossr50.util.scoreboards.SidebarType; import com.gmail.nossr50.util.scoreboards.SidebarType;
@@ -11,6 +11,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor; import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.StringUtil; import org.bukkit.util.StringUtil;
import java.util.ArrayList; import java.util.ArrayList;
@@ -56,10 +57,10 @@ public class RankCommand implements TabExecutor {
} }
String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]); String playerName = pluginRef.getCommandTools().getMatchedPlayerName(args[0]);
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
if (mcMMOPlayer != null) { if (mcMMOPlayer != null) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
playerName = player.getName(); playerName = player.getName();
if (pluginRef.getCommandTools().tooFar(sender, player, pluginRef.getPermissionTools().mcrankFar(sender))) { if (pluginRef.getCommandTools().tooFar(sender, player, pluginRef.getPermissionTools().mcrankFar(sender))) {
@@ -89,7 +90,7 @@ public class RankCommand implements TabExecutor {
private void display(CommandSender sender, String playerName) { private void display(CommandSender sender, String playerName) {
if (sender instanceof Player) { if (sender instanceof Player) {
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName()); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(sender.getName());
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad")); sender.sendMessage(pluginRef.getLocaleManager().getString("Profile.PendingLoad"));
@@ -103,11 +104,11 @@ public class RankCommand implements TabExecutor {
return; return;
} }
if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY)) { if (((Player) sender).hasMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey())) {
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.Database.Processing"));
return; return;
} else { } else {
((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY, new FixedMetadataValue(pluginRef, null)); ((Player) sender).setMetadata(MetadataConstants.DATABASE_PROCESSING_COMMAND_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), null));
} }
mcMMOPlayer.actualizeDatabaseATS(); mcMMOPlayer.actualizeDatabaseATS();
@@ -117,10 +118,13 @@ public class RankCommand implements TabExecutor {
&& (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.RANK_BOARD)); && (pluginRef.getScoreboardSettings().isScoreboardEnabled(SidebarType.RANK_BOARD));
boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.RANK_BOARD); boolean useChat = !useBoard || pluginRef.getScoreboardSettings().isScoreboardPrinting(SidebarType.RANK_BOARD);
new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat).runTaskAsynchronously(pluginRef); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setTask(new RankCommandAsyncTask(pluginRef, playerName, sender, useBoard, useChat))
.schedule();
} }
private long getCDSeconds(McMMOPlayer mcMMOPlayer, long cooldownMillis) { private long getCDSeconds(BukkitMMOPlayer mcMMOPlayer, long cooldownMillis) {
return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis()); return ((mcMMOPlayer.getDatabaseATS() + cooldownMillis) - System.currentTimeMillis());
} }
} }

View File

@@ -20,7 +20,7 @@ public class MiningCommand extends SkillCommand {
private int bonusTNTDrops; private int bonusTNTDrops;
private double blastRadiusIncrease; private double blastRadiusIncrease;
private String oreBonus; private String oreBonus;
private String debrisReduction; // private String debrisReduction;
private String blastDamageDecrease; private String blastDamageDecrease;
private boolean canSuperBreaker; private boolean canSuperBreaker;
@@ -42,7 +42,7 @@ public class MiningCommand extends SkillCommand {
blastMiningRank = miningManager.getBlastMiningTier(); blastMiningRank = miningManager.getBlastMiningTier();
bonusTNTDrops = miningManager.getDropMultiplier(); bonusTNTDrops = miningManager.getDropMultiplier();
oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30% oreBonus = percent.format(miningManager.getOreBonus() / 30.0D); // Base received in TNT is 30%
debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30% // debrisReduction = percent.format(miningManager.getDebrisReduction() / 30.0D); // Base received in TNT is 30%
blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D); blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
blastRadiusIncrease = miningManager.getBlastRadiusModifier(); blastRadiusIncrease = miningManager.getBlastRadiusModifier();
} }
@@ -81,8 +81,8 @@ public class MiningCommand extends SkillCommand {
} }
if (canBlast) { if (canBlast) {
messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.MINING_BLAST_MINING)), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, debrisReduction, bonusTNTDrops))); messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(pluginRef.getRankTools().getHighestRank(SubSkillType.MINING_BLAST_MINING)), pluginRef.getLocaleManager().getString("Mining.Blast.Effect", oreBonus, bonusTNTDrops)));
//messages.add(pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), pluginRef.getLocaleManager().getString("SuperAbility.BlastMining.Effect", oreBonus, debrisReduction, bonusTNTDrops))); //messages.add(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
} }
if (canDemoExpert) { if (canDemoExpert) {

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.commands.skills; package com.gmail.nossr50.commands.skills;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
@@ -64,7 +64,7 @@ public abstract class SkillCommand implements TabExecutor {
switch (args.length) { switch (args.length) {
case 0: case 0:
Player player = (Player) sender; Player player = (Player) sender;
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill); boolean isLucky = pluginRef.getPermissionTools().lucky(player, skill);
boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0; boolean hasEndurance = pluginRef.getSkillTools().getEnduranceLength(player) > 0;
@@ -135,7 +135,7 @@ public abstract class SkillCommand implements TabExecutor {
player.sendMessage(pluginRef.getLocaleManager().getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH))); player.sendMessage(pluginRef.getLocaleManager().getString("Guides.Available", skillName, skillName.toLowerCase(Locale.ENGLISH)));
} }
private void sendSkillCommandHeader(Player player, McMMOPlayer mcMMOPlayer, int skillValue) { private void sendSkillCommandHeader(Player player, BukkitMMOPlayer mcMMOPlayer, int skillValue) {
ChatColor hd1 = ChatColor.DARK_AQUA; ChatColor hd1 = ChatColor.DARK_AQUA;
ChatColor c1 = ChatColor.GOLD; ChatColor c1 = ChatColor.GOLD;
ChatColor c2 = ChatColor.RED; ChatColor c2 = ChatColor.RED;

View File

@@ -1,5 +1,7 @@
package com.gmail.nossr50.core; 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; import org.bukkit.metadata.FixedMetadataValue;
/** /**
@@ -8,31 +10,32 @@ import org.bukkit.metadata.FixedMetadataValue;
public class MetadataConstants { public class MetadataConstants {
/* Metadata Values */ /* Metadata Values */
public static final String REPLANT_META_KEY = "mcMMO: Recently Replanted"; public static final MetadataKey<Boolean> REPLANT_META_KEY = new MetadataKey<>("mcMMO: Recently Replanted");
public static final String FISH_HOOK_REF_METAKEY = "mcMMO: Fish Hook Tracker"; public static final MetadataKey<Boolean> FISH_HOOK_REF_METAKEY = new MetadataKey<>("mcMMO: Fish Hook Tracker");
public static final String DODGE_TRACKER = "mcMMO: Dodge Tracker"; public static final MetadataKey<Boolean> DODGE_TRACKER = new MetadataKey<>("mcMMO: Dodge Tracker");
public static final String CUSTOM_DAMAGE_METAKEY = "mcMMO: Custom Damage"; public static final MetadataKey<Boolean> CUSTOM_DAMAGE_METAKEY = new MetadataKey<>("mcMMO: Custom Damage");
public final static String UNNATURAL_MOB_METAKEY = "mcMMO: Spawned Entity"; public final static MetadataKey<Boolean> UNNATURAL_MOB_METAKEY = new MetadataKey<>("mcMMO: Spawned Entity");
public final static String PISTON_TRACKING_METAKEY = "mcMMO: Piston Tracking"; public final static MetadataKey<Boolean> PISTON_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Piston Tracking");
public final static String FURNACE_TRACKING_METAKEY = "mcMMO: Tracked Furnace"; public final static MetadataKey<Boolean> FURNACE_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Furnace");
public final static String TNT_TRACKING_METAKEY = "mcMMO: Tracked TNT"; public final static MetadataKey<Boolean> TNT_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked TNT");
public final static String SPAWNED_FIREWORKS_METAKEY = "mcMMO: Funfetti"; public final static MetadataKey<Boolean> SPAWNED_FIREWORKS_METAKEY = new MetadataKey<>("mcMMO: Funfetti");
public final static String SAFE_TNT_METAKEY = "mcMMO: Safe TNT"; public final static MetadataKey<Boolean> SAFE_TNT_METAKEY = new MetadataKey<>("mcMMO: Safe TNT");
public final static String CUSTOM_NAME_METAKEY = "mcMMO: Custom Name"; public final static MetadataKey<String> CUSTOM_NAME_METAKEY = new MetadataKey<>("mcMMO: Custom Name");
public final static String NAME_VISIBILITY_METAKEY = "mcMMO: Name Visibility"; public final static MetadataKey<Boolean> NAME_VISIBILITY_METAKEY = new MetadataKey<>("mcMMO: Name Visibility");
public final static String DROPPED_ITEM_TRACKING_METAKEY = "mcMMO: Tracked Item"; public final static MetadataKey<Boolean> DROPPED_ITEM_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Item");
public final static String INFINITE_ARROW_METAKEY = "mcMMO: Infinite Arrow"; public final static MetadataKey<Boolean> INFINITE_ARROW_METAKEY = new MetadataKey<>("mcMMO: Infinite Arrow");
public final static String BOW_FORCE_METAKEY = "mcMMO: Bow Force"; public final static MetadataKey<Boolean> BOW_FORCE_METAKEY = new MetadataKey<>("mcMMO: Bow Force");
public final static String ARROW_DISTANCE_METAKEY = "mcMMO: Arrow Distance"; public final static MetadataKey<Boolean> ARROW_DISTANCE_METAKEY = new MetadataKey<>("mcMMO: Arrow Distance");
public final static String ARROW_TRACKER_METAKEY = "mcMMO: Arrow Tracker"; public final static MetadataKey<Boolean> ARROW_TRACKER_METAKEY = new MetadataKey<>("mcMMO: Arrow Tracker");
public final static String BONUS_DROPS_METAKEY = "mcMMO: Bonus Drops"; public final static MetadataKey<Boolean> BONUS_DROPS_METAKEY = new MetadataKey<>("mcMMO: Bonus Drops");
public final static String DISARMED_ITEM_METAKEY = "mcMMO: Disarmed Item"; public final static MetadataKey<Boolean> DISARMED_ITEM_METAKEY = new MetadataKey<>("mcMMO: Disarmed Item");
public final static String PLAYER_DATA_METAKEY = "mcMMO: Player Data"; public final static MetadataKey<MMOPlayer<?>> PLAYER_DATA_METAKEY = new MetadataKey<>("mcMMO: Player Data");
public final static String GREEN_THUMB_METAKEY = "mcMMO: Green Thumb"; public final static MetadataKey<Boolean> GREEN_THUMB_METAKEY = new MetadataKey<>("mcMMO: Green Thumb");
public final static String DATABASE_PROCESSING_COMMAND_METAKEY = "mcMMO: Processing Database Command"; public final static MetadataKey<Boolean> DATABASE_PROCESSING_COMMAND_METAKEY = new MetadataKey<>("mcMMO: Processing Database Command");
public final static String PETS_ANIMAL_TRACKING_METAKEY = "mcMMO: Pet Animal"; public final static MetadataKey<Boolean> PETS_ANIMAL_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Pet Animal");
public static final String COTW_TEMPORARY_SUMMON = "mcMMO: COTW Entity"; public static final MetadataKey<Boolean> COTW_TEMPORARY_SUMMON = new MetadataKey<>("mcMMO: COTW Entity");
@Deprecated
public static FixedMetadataValue metadataValue; //Gains value in onEnable public static FixedMetadataValue metadataValue; //Gains value in onEnable
} }

View File

@@ -9,6 +9,8 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import java.io.*; import java.io.*;
@@ -179,7 +181,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
e.printStackTrace(); e.printStackTrace();
} }
if (lastPlayed == 0) { if (lastPlayed == 0) {
OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(name); OfflinePlayer player = Bukkit.getServer().getOfflinePlayer(name);
lastPlayed = player.getLastPlayed(); lastPlayed = player.getLastPlayed();
rewrite = true; rewrite = true;
} }

View File

@@ -2,6 +2,7 @@ package com.gmail.nossr50.datatypes.meta;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
/** /**
* Stores how many bonus drops a block should give * Stores how many bonus drops a block should give
@@ -9,6 +10,6 @@ import org.bukkit.metadata.FixedMetadataValue;
public class BonusDropMeta extends FixedMetadataValue { public class BonusDropMeta extends FixedMetadataValue {
public BonusDropMeta(int value, mcMMO plugin) { public BonusDropMeta(int value, mcMMO plugin) {
super(plugin, value); super((Plugin) plugin.getPlatformProvider(), value);
} }
} }

View File

@@ -2,6 +2,7 @@ package com.gmail.nossr50.datatypes.meta;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
/** /**
* This class is for storing mob names since we switch them to heart values * 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 class OldName extends FixedMetadataValue {
public OldName(String oldName, mcMMO plugin) { public OldName(String oldName, mcMMO plugin) {
super(plugin, oldName); super((Plugin) plugin.getPlatformProvider(), oldName);
} }
} }

View File

@@ -1,6 +1,6 @@
package com.gmail.nossr50.datatypes.party; 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.mcMMO;
import com.gmail.nossr50.party.ShareHandler; import com.gmail.nossr50.party.ShareHandler;
import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.StringUtils;
@@ -250,7 +250,7 @@ public class Party {
} }
if (!pluginRef.getConfigManager().getConfigParty().getPartyXP().getPartyLevel().isInformPartyMembersOnLevelup()) { 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) { if (leader != null) {
leader.sendMessage(pluginRef.getLocaleManager().getString("Party.LevelUp", levelsGained, getLevel())); leader.sendMessage(pluginRef.getLocaleManager().getString("Party.LevelUp", levelsGained, getLevel()));
@@ -503,12 +503,12 @@ public class Party {
* @param mcMMOPlayer The player to check * @param mcMMOPlayer The player to check
* @return the near party members * @return the near party members
*/ */
public List<Player> getNearMembers(McMMOPlayer mcMMOPlayer) { public List<Player> getNearMembers(BukkitMMOPlayer mcMMOPlayer) {
List<Player> nearMembers = new ArrayList<Player>(); List<Player> nearMembers = new ArrayList<Player>();
Party party = mcMMOPlayer.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
double range = pluginRef.getConfigManager().getConfigParty().getPartyXP().getPartyExperienceSharing().getPartyShareRange(); double range = pluginRef.getConfigManager().getConfigParty().getPartyXP().getPartyExperienceSharing().getPartyShareRange();
for (Player member : party.getOnlineMembers()) { for (Player member : party.getOnlineMembers()) {

View File

@@ -11,6 +11,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.datatypes.skills.ToolType; import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.mcMMO; 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.AbilityDisableTask;
import com.gmail.nossr50.runnables.skills.ToolLowerTask; import com.gmail.nossr50.runnables.skills.ToolLowerTask;
import com.gmail.nossr50.skills.SkillManager; import com.gmail.nossr50.skills.SkillManager;
@@ -45,7 +46,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
public class McMMOPlayer { public class BukkitMMOPlayer implements MMOPlayer<Player> {
private final mcMMO pluginRef; private final mcMMO pluginRef;
private final Map<PrimarySkillType, SkillManager> skillManagerMap = new HashMap<>(); private final Map<PrimarySkillType, SkillManager> skillManagerMap = new HashMap<>();
private final Map<SuperAbilityType, Boolean> superAbilityModeMap = new HashMap<>(); private final Map<SuperAbilityType, Boolean> superAbilityModeMap = new HashMap<>();
@@ -78,13 +79,13 @@ public class McMMOPlayer {
private HashMap<PrimarySkillType, Double> personalXPModifiers; private HashMap<PrimarySkillType, Double> personalXPModifiers;
private String playerName; private String playerName;
public McMMOPlayer(Player player, PlayerProfile profile, mcMMO pluginRef) { public BukkitMMOPlayer(Player player, PlayerProfile profile, mcMMO pluginRef) {
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
this.playerName = player.getName(); this.playerName = player.getName();
UUID uuid = player.getUniqueId(); UUID uuid = player.getUniqueId();
this.player = player; this.player = player;
playerMetadata = new FixedMetadataValue(pluginRef, playerName); playerMetadata = new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), playerName);
this.profile = profile; this.profile = profile;
if (profile.getUniqueId() == null) { if (profile.getUniqueId() == null) {
@@ -321,7 +322,9 @@ public class McMMOPlayer {
public void resetSuperAbilityMode() { public void resetSuperAbilityMode() {
for (SuperAbilityType superAbilityType : SuperAbilityType.values()) { for (SuperAbilityType superAbilityType : SuperAbilityType.values()) {
// Correctly disable and handle any special deactivate code // 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; return;
if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) { if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) {
processPostXpEvent(primarySkillType, pluginRef, xpGainSource); processPostXpEvent(primarySkillType, (Plugin) pluginRef.getPlatformProvider(), xpGainSource);
return; return;
} }
@@ -686,14 +689,15 @@ public class McMMOPlayer {
pluginRef.getNotificationManager().sendPlayerLevelUpNotification(this, primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType)); pluginRef.getNotificationManager().sendPlayerLevelUpNotification(this, primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType));
//UPDATE XP BARS //UPDATE XP BARS
processPostXpEvent(primarySkillType, pluginRef, xpGainSource); processPostXpEvent(primarySkillType, (Plugin) pluginRef.getPlatformProvider(), xpGainSource);
} }
/* /*
* Players & Profiles * Players & Profiles
*/ */
public Player getPlayer() { @Override
public Player getNative() {
return player; return player;
} }
@@ -767,7 +771,7 @@ public class McMMOPlayer {
} }
public void loginParty() { public void loginParty() {
party.addOnlineMember(this.getPlayer()); party.addOnlineMember(this.getNative());
} }
public int getItemShareModifier() { 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 //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) //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); int diff = pluginRef.getRankTools().getSuperAbilityUnlockRequirement(pluginRef.getSkillTools().getSuperAbility(primarySkillType)) - getSkillLevel(primarySkillType);
//Inform the player they are not yet skilled enough //Inform the player they are not yet skilled enough
@@ -949,7 +953,10 @@ public class McMMOPlayer {
} }
setToolPreparationMode(tool, false); 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) { public void processAbilityActivation(PrimarySkillType primarySkillType) {
@@ -996,7 +1003,10 @@ public class McMMOPlayer {
} }
setToolPreparationMode(tool, true); 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 * @param syncSave if true, data is saved synchronously
*/ */
public void logout(boolean syncSave) { public void logout(boolean syncSave) {
Player thisPlayer = getPlayer(); Player thisPlayer = getNative();
resetSuperAbilityMode(); resetSuperAbilityMode();
pluginRef.getBleedTimerTask().bleedOut(thisPlayer); pluginRef.getBleedTimerTask().bleedOut(thisPlayer);
cleanup(); cleanup();

View File

@@ -76,20 +76,32 @@ public class PlayerProfile {
} }
public void scheduleAsyncSave() { public void scheduleAsyncSave() {
new PlayerProfileSaveTask(this, false).runTaskAsynchronously(pluginRef); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setAsync(true)
.setTask(new PlayerProfileSaveTask(this, false))
.schedule();
} }
public void scheduleSyncSave() { public void scheduleSyncSave() {
new PlayerProfileSaveTask(this, true).runTask(pluginRef); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setTask(new PlayerProfileSaveTask(this, true))
.schedule();
} }
public void scheduleAsyncSaveDelay() { 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 @Deprecated
public void scheduleSyncSaveDelay() { 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) { public void save(boolean useSync) {

View File

@@ -9,6 +9,7 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
/** /**
* These behaviour classes are a band-aid fix for a larger problem * 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 * @param livingEntity The entity hit by the arrows
*/ */
public void arrowRetrievalCheck(LivingEntity livingEntity) { public void arrowRetrievalCheck(LivingEntity livingEntity) {
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) { if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
pluginRef.getMiscTools().dropItems(livingEntity.getLocation(), new ItemStack(Material.ARROW), livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).get(0).asInt()); pluginRef.getMiscTools().dropItems(livingEntity.getLocation(), new ItemStack(Material.ARROW), livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).get(0).asInt());
} }
} }
public void incrementArrowCount(LivingEntity livingEntity) { public void incrementArrowCount(LivingEntity livingEntity) {
if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) { if(livingEntity.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
int arrowCount = livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).get(0).asInt(); int arrowCount = livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).get(0).asInt();
livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY).set(0, new FixedMetadataValue(pluginRef, arrowCount + 1)); livingEntity.getMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey()).set(0, new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), arrowCount + 1));
} else { } else {
livingEntity.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, new TrackedArrowMeta(pluginRef, 1)); livingEntity.setMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), new TrackedArrowMeta((Plugin) pluginRef.getPlatformProvider(), 1));
} }
} }

View File

@@ -4,6 +4,8 @@ import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.skills.mining.MiningManager;
import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -63,12 +65,12 @@ public class MiningBehaviour {
} }
public boolean processBlastMiningExplosion(EntityDamageByEntityEvent event, TNTPrimed tnt, Player defender) { 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; return false;
} }
// We can make this assumption because we (should) be the only ones using this exact metadata // 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)) { if (!player.equals(defender)) {
return false; return false;

View File

@@ -2,7 +2,7 @@ package com.gmail.nossr50.datatypes.skills.subskills.acrobatics;
import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType; 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.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
@@ -62,7 +62,7 @@ public class Roll extends AcrobaticsSubSkill {
case FALL: case FALL:
//Grab the player //Grab the player
McMMOPlayer mcMMOPlayer = pluginRef.getEventManager().getMcMMOPlayer(entityDamageEvent.getEntity()); BukkitMMOPlayer mcMMOPlayer = pluginRef.getEventManager().getMcMMOPlayer(entityDamageEvent.getEntity());
if (mcMMOPlayer == null) if (mcMMOPlayer == null)
break; break;
@@ -188,7 +188,7 @@ public class Roll extends AcrobaticsSubSkill {
* @param damage The amount of damage initially dealt by the event * @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 * @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()); int skillLevel = mcMMOPlayer.getSkillLevel(getPrimarySkill());
@@ -221,8 +221,8 @@ public class Roll extends AcrobaticsSubSkill {
return damage; return damage;
} }
private int getActivationChance(McMMOPlayer mcMMOPlayer) { private int getActivationChance(BukkitMMOPlayer mcMMOPlayer) {
return pluginRef.getPerkUtils().handleLuckyPerks(mcMMOPlayer.getPlayer(), getPrimarySkill()); 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 * @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 * @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); double modifiedDamage = calculateModifiedRollDamage(damage, pluginRef.getConfigManager().getConfigAcrobatics().getRollDamageThreshold() * 2);
RandomChanceSkill rcs = new RandomChanceSkill(pluginRef, player, subSkillType); RandomChanceSkill rcs = new RandomChanceSkill(pluginRef, player, subSkillType);
@@ -272,11 +272,11 @@ public class Roll extends AcrobaticsSubSkill {
return false; 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 (pluginRef.getItemTools().hasItemInEitherHand(player, Material.ENDER_PEARL) || player.isInsideVehicle()) {
if(mcMMOPlayer.isDebugMode()) { 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; return true;
} }
@@ -288,7 +288,7 @@ public class Roll extends AcrobaticsSubSkill {
if (pluginRef.getUserManager().getPlayer(player).getAcrobaticsManager().hasFallenInLocationBefore(getBlockLocation(player))) if (pluginRef.getUserManager().getPlayer(player).getAcrobaticsManager().hasFallenInLocationBefore(getBlockLocation(player)))
{ {
if(mcMMOPlayer.isDebugMode()) { 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; return true;

View File

@@ -2,7 +2,7 @@ package com.gmail.nossr50.listeners;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.meta.BonusDropMeta; 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.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.datatypes.skills.ToolType; 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.mining.MiningManager;
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager; import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
import com.gmail.nossr50.util.sounds.SoundType; import com.gmail.nossr50.util.sounds.SoundType;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
@@ -30,6 +32,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.*; import org.bukkit.event.block.*;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.MetadataValue; import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@@ -81,8 +84,8 @@ public class BlockListener implements Listener {
} }
} }
if (event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY).size() > 0) { if (event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()).size() > 0) {
BonusDropMeta bonusDropMeta = (BonusDropMeta) event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY).get(0); BonusDropMeta bonusDropMeta = (BonusDropMeta) event.getBlock().getMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()).get(0);
int bonusCount = bonusDropMeta.asInt(); int bonusCount = bonusDropMeta.asInt();
for (int i = 0; i < bonusCount; i++) { for (int i = 0; i < bonusCount; i++) {
@@ -92,8 +95,8 @@ public class BlockListener implements Listener {
} }
} }
if(event.getBlock().hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY)) if(event.getBlock().hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey()))
event.getBlock().removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY, pluginRef); event.getBlock().removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
/** /**
@@ -205,7 +208,7 @@ public class BlockListener implements Listener {
pluginRef.getPlaceStore().setTrue(blockState); pluginRef.getPlaceStore().setTrue(blockState);
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
if (mcMMOPlayer == null) if (mcMMOPlayer == null)
return; return;
@@ -304,7 +307,7 @@ public class BlockListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
//Check if profile is loaded //Check if profile is loaded
if (mcMMOPlayer == null) if (mcMMOPlayer == null)
@@ -397,7 +400,7 @@ public class BlockListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
BlockState blockState = event.getBlock().getState(); BlockState blockState = event.getBlock().getState();
ItemStack heldItem = player.getInventory().getItemInMainHand(); ItemStack heldItem = player.getInventory().getItemInMainHand();
@@ -455,7 +458,7 @@ public class BlockListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
//Profile not loaded //Profile not loaded
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
@@ -511,13 +514,13 @@ public class BlockListener implements Listener {
} }
private Player getPlayerFromFurnace(Block furnaceBlock) { 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()) { if (metadata.isEmpty()) {
return null; 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; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
//Profile not loaded //Profile not loaded
if (pluginRef.getUserManager().getPlayer(player) == null) { if (pluginRef.getUserManager().getPlayer(player) == null) {
@@ -639,7 +642,7 @@ public class BlockListener implements Listener {
if (blockState instanceof Furnace) { if (blockState instanceof Furnace) {
Furnace furnace = (Furnace) blockState; 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.sendMessage("[mcMMO DEBUG] This furnace has a registered owner");
Player furnacePlayer = getPlayerFromFurnace(furnace.getBlock()); Player furnacePlayer = getPlayerFromFurnace(furnace.getBlock());
if (furnacePlayer != null) { if (furnacePlayer != null) {

View File

@@ -1,17 +1,20 @@
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.subskills.interfaces.InteractType; import com.gmail.nossr50.datatypes.skills.subskills.interfaces.InteractType;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent; import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent; import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
import com.gmail.nossr50.events.fake.FakeEntityTameEvent; import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
import com.gmail.nossr50.mcMMO; 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.mining.MiningManager;
import com.gmail.nossr50.skills.taming.TamingManager; import com.gmail.nossr50.skills.taming.TamingManager;
import com.gmail.nossr50.skills.unarmed.UnarmedManager; import com.gmail.nossr50.skills.unarmed.UnarmedManager;
import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.skills.SkillActivationType;
import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.block.Block; 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.ItemStack;
import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.bukkit.projectiles.ProjectileSource; import org.bukkit.projectiles.ProjectileSource;
@@ -40,10 +44,10 @@ public class EntityListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onEntityTransform(EntityTransformEvent event) { public void onEntityTransform(EntityTransformEvent event) {
//Transfer metadata keys from mob-spawned mobs to new mobs //Transfer metadata keys from mob-spawned mobs to new mobs
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY) if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())
|| event.getEntity().getMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY).size() >= 1) { || event.getEntity().getMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey()).size() >= 1) {
for (Entity entity : event.getTransformedEntities()) { 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 //Prevent entities from giving XP if they target endermite
if (event.getTarget() instanceof Endermite) { if (event.getTarget() instanceof Endermite) {
if (!event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) if (!event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey()))
event.getEntity().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue); event.getEntity().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
} }
} }
@@ -91,14 +95,14 @@ public class EntityListener implements Listener {
if (bow != null if (bow != null
&& bow.containsEnchantment(Enchantment.ARROW_INFINITE)) { && 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, projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey(),
new FixedMetadataValue(pluginRef, new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(),
Math.min(event.getForce() Math.min(event.getForce()
* pluginRef.getConfigManager().getConfigExperience().getExperienceArchery().getForceMultiplier(), 1.0))); * 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) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -122,8 +126,8 @@ public class EntityListener implements Listener {
if(!(projectile instanceof Arrow)) if(!(projectile instanceof Arrow))
return; return;
projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY, new FixedMetadataValue(pluginRef, 1.0)); projectile.setMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), 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()));
for(Enchantment enchantment : player.getInventory().getItemInMainHand().getEnchantments().keySet()) { for(Enchantment enchantment : player.getInventory().getItemInMainHand().getEnchantments().keySet()) {
if(enchantment.getName().equalsIgnoreCase("piercing")) 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)) { 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(); Entity entity = event.getEntity();
if (entity instanceof FallingBlock || entity instanceof Enderman) { 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) { if (pluginRef.getPlaceStore().isTrue(block) && !isTracked) {
pluginRef.getPlaceStore().setFalse(block); pluginRef.getPlaceStore().setFalse(block);
entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue); entity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
} else if (isTracked) { } else if (isTracked) {
pluginRef.getPlaceStore().setTrue(block); 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, // 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 // However, for entities, we do not wanna cancel this event to allow plugins to observe changes
// properly // properly
if (defender.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY).size() > 0) { if (defender.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey()).size() > 0) {
return; return;
} }
@@ -299,7 +303,7 @@ public class EntityListener implements Listener {
return; return;
} }
if (event.getDamager().hasMetadata(MetadataConstants.SPAWNED_FIREWORKS_METAKEY)) { if (event.getDamager().hasMetadata(MetadataConstants.SPAWNED_FIREWORKS_METAKEY.getKey())) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@@ -352,7 +356,7 @@ public class EntityListener implements Listener {
} }
//Deflect checks //Deflect checks
final McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(defendingPlayer); final BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(defendingPlayer);
if (mcMMOPlayer != null) { if (mcMMOPlayer != null) {
UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager(); UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
@@ -500,7 +504,7 @@ public class EntityListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
//Profile not loaded //Profile not loaded
if (mcMMOPlayer == null) if (mcMMOPlayer == null)
@@ -615,18 +619,18 @@ public class EntityListener implements Listener {
return; return;
} }
if (entity.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) { if (entity.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
entity.setCustomName(entity.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY).get(0).asString()); entity.setCustomName(entity.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey()).get(0).asString());
entity.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, pluginRef); entity.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
if (entity.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY)) { if (entity.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey())) {
entity.setCustomNameVisible(entity.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY).get(0).asBoolean()); entity.setCustomNameVisible(entity.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey()).get(0).asBoolean());
entity.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, pluginRef); entity.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
if (entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) { if (entity.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())) {
entity.removeMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, pluginRef); entity.removeMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
} }
@@ -668,18 +672,18 @@ public class EntityListener implements Listener {
case SPAWNER: case SPAWNER:
case SPAWNER_EGG: case SPAWNER_EGG:
if (pluginRef.getConfigManager().getConfigExploitPrevention().doSpawnedEntitiesGiveModifiedXP()) { 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(); Entity passenger = entity.getPassenger();
if (passenger != null) { if (passenger != null) {
passenger.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue); passenger.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
} }
} }
return; return;
case BREEDING: case BREEDING:
entity.setMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY, MetadataConstants.metadataValue); entity.setMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY.getKey(), MetadataConstants.metadataValue);
return; return;
default: default:
@@ -690,7 +694,7 @@ public class EntityListener implements Listener {
public void onEntityBreed(EntityBreedEvent event) { public void onEntityBreed(EntityBreedEvent event) {
if(pluginRef.getConfigManager().getConfigExploitPrevention().areSummonsBreedable()) { if(pluginRef.getConfigManager().getConfigExploitPrevention().areSummonsBreedable()) {
//TODO: Change to NBT //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); event.setCancelled(true);
Animals mom = (Animals) event.getMother(); Animals mom = (Animals) event.getMother();
Animals father = (Animals) event.getFather(); Animals father = (Animals) event.getFather();
@@ -722,13 +726,13 @@ public class EntityListener implements Listener {
Entity entity = event.getEntity(); 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; return;
} }
// We can make this assumption because we (should) be the only ones // We can make this assumption because we (should) be the only ones
// using this exact metadata // 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)) { if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
return; return;
@@ -765,13 +769,13 @@ public class EntityListener implements Listener {
Entity entity = event.getEntity(); 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; return;
} }
// We can make this assumption because we (should) be the only ones // We can make this assumption because we (should) be the only ones
// using this exact metadata // 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)) { if (!pluginRef.getUserManager().hasPlayerDataKey(player)) {
return; return;
@@ -791,8 +795,8 @@ public class EntityListener implements Listener {
MiningManager miningManager = pluginRef.getUserManager().getPlayer(player).getMiningManager(); MiningManager miningManager = pluginRef.getUserManager().getPlayer(player).getMiningManager();
if (miningManager.canUseBlastMining()) { if (miningManager.canUseBlastMining()) {
miningManager.blastMiningDropProcessing(event.getYield(), event.blockList()); miningManager.blastMiningDropProcessing(event.getYield(), event);
event.setYield(0); // event.setYield(0);
} }
} }
@@ -929,12 +933,12 @@ public class EntityListener implements Listener {
LivingEntity entity = event.getEntity(); 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; return;
} }
if (pluginRef.getConfigManager().getConfigExploitPrevention().doTamedEntitiesGiveXP()) 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 //Profile not loaded
//TODO: Redundant //TODO: Redundant
@@ -1017,8 +1021,8 @@ public class EntityListener implements Listener {
if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName())) if (pluginRef.getDynamicSettingsManager().isWorldBlacklisted(event.getEntity().getWorld().getName()))
return; return;
if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY)) { if (event.getEntity().hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey())) {
event.getPigZombie().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue); event.getPigZombie().setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
} }
} }
} }

View File

@@ -5,6 +5,8 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.player.PlayerUpdateInventoryTask; import com.gmail.nossr50.runnables.player.PlayerUpdateInventoryTask;
import org.bukkit.Bukkit;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.block.BrewingStand; import org.bukkit.block.BrewingStand;
@@ -17,6 +19,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.inventory.*; import org.bukkit.event.inventory.*;
import org.bukkit.inventory.*; import org.bukkit.inventory.*;
import org.bukkit.metadata.MetadataValue; import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
import java.util.List; import java.util.List;
@@ -50,8 +53,8 @@ public class InventoryListener implements Listener {
return; return;
} }
if (!furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY) && furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY).size() == 0) if (!furnaceBlock.hasMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()) && furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()).size() == 0)
furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef.getUserManager().getPlayer((Player) player).getPlayerMetadata()); furnaceBlock.setMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), pluginRef.getUserManager().getPlayer((Player) player).getPlayerMetadata());
} }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -62,7 +65,7 @@ public class InventoryListener implements Listener {
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory()); 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; return;
} }
@@ -72,7 +75,7 @@ public class InventoryListener implements Listener {
return; return;
} }
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef); furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -189,15 +192,15 @@ public class InventoryListener implements Listener {
Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory()); Block furnaceBlock = processInventoryOpenOrCloseEvent(event.getInventory());
if (furnaceBlock != null) { if (furnaceBlock != null) {
if (furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY).size() > 0) if (furnaceBlock.getMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey()).size() > 0)
furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY, pluginRef); furnaceBlock.removeMetadata(MetadataConstants.FURNACE_TRACKING_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
//Profile not loaded //Profile not loaded
if (pluginRef.getUserManager().getPlayer(player) == null) { if (pluginRef.getUserManager().getPlayer(player) == null) {
return; 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(); final HumanEntity whoClicked = event.getWhoClicked();
if (!whoClicked.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY)) { if (!whoClicked.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey())) {
return; return;
} }
@@ -470,7 +473,9 @@ public class InventoryListener implements Listener {
return; return;
} }
new PlayerUpdateInventoryTask((Player) whoClicked).runTaskLater(pluginRef, 0); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
.setTask(new PlayerUpdateInventoryTask((Player) whoClicked))
.schedule();
} }
private Block processInventoryOpenOrCloseEvent(Inventory inventory) { private Block processInventoryOpenOrCloseEvent(Inventory inventory) {
@@ -488,12 +493,12 @@ public class InventoryListener implements Listener {
} }
private Player getPlayerFromFurnace(Block furnaceBlock) { 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()) { if (metadata.isEmpty()) {
return null; return null;
} }
return pluginRef.getServer().getPlayerExact(metadata.get(0).asString()); return Bukkit.getServer().getPlayerExact(metadata.get(0).asString());
} }
} }

View File

@@ -4,7 +4,7 @@ import com.gmail.nossr50.chat.ChatManager;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.chat.ChatMode; import com.gmail.nossr50.datatypes.chat.ChatMode;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent; 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.event.player.*;
import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import java.util.Locale; import java.util.Locale;
@@ -117,7 +118,7 @@ public class PlayerListener implements Listener {
} }
Player player = event.getEntity(); 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(); 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; return;
} }
@@ -194,7 +195,7 @@ public class PlayerListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
mcMMOPlayer.checkGodMode(); mcMMOPlayer.checkGodMode();
mcMMOPlayer.checkParty(); mcMMOPlayer.checkParty();
@@ -225,7 +226,7 @@ public class PlayerListener implements Listener {
ItemStack dropStack = drop.getItemStack(); ItemStack dropStack = drop.getItemStack();
if (pluginRef.getItemTools().isSharable(dropStack)) { 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); pluginRef.getSkillTools().removeAbilityBuff(dropStack);
@@ -342,7 +343,7 @@ public class PlayerListener implements Listener {
//Track the hook //Track the hook
if (pluginRef.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitFishing().isPreventFishingExploits()) { 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()); fishingManager.setFishHookReference(event.getHook());
} }
@@ -438,17 +439,17 @@ public class PlayerListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
Item drop = event.getItem(); Item drop = event.getItem();
//Remove tracking //Remove tracking
ItemStack dropStack = drop.getItemStack(); ItemStack dropStack = drop.getItemStack();
if(drop.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) { if(drop.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
drop.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, pluginRef); drop.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
if (drop.hasMetadata(MetadataConstants.DISARMED_ITEM_METAKEY)) { if (drop.hasMetadata(MetadataConstants.DISARMED_ITEM_METAKEY.getKey())) {
if (!player.getName().equals(drop.getMetadata(MetadataConstants.DISARMED_ITEM_METAKEY).get(0).asString())) { if (!player.getName().equals(drop.getMetadata(MetadataConstants.DISARMED_ITEM_METAKEY.getKey()).get(0).asString())) {
event.setCancelled(true); 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)); event.setCancelled(mcMMOPlayer.getParty().getShareHandler().handleItemShare(drop, mcMMOPlayer));
pluginRef.getSoundManager().sendSound(player, player.getLocation(), SoundType.POP); pluginRef.getSoundManager().sendSound(player, player.getLocation(), SoundType.POP);
@@ -497,7 +498,7 @@ public class PlayerListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
//There's an issue with using Async saves on player quit //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 //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); mcMMOPlayer.logout(true);
@@ -517,7 +518,11 @@ public class PlayerListener implements Listener {
Player player = event.getPlayer(); 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 //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()) { if (pluginRef.getConfigManager().getConfigMOTD().isEnableMOTD()) {
pluginRef.getMessageOfTheDayUtils().displayAll(player); pluginRef.getMessageOfTheDayUtils().displayAll(player);
@@ -528,7 +533,7 @@ public class PlayerListener implements Listener {
} }
//TODO: Remove this warning after 2.2 is done //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!"); 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; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
MiningManager miningManager = mcMMOPlayer.getMiningManager(); MiningManager miningManager = mcMMOPlayer.getMiningManager();
Block block = event.getClickedBlock(); Block block = event.getClickedBlock();
ItemStack heldItem = player.getInventory().getItemInMainHand(); ItemStack heldItem = player.getInventory().getItemInMainHand();
@@ -706,7 +711,7 @@ public class PlayerListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
ItemStack heldItem = player.getInventory().getItemInMainHand(); ItemStack heldItem = player.getInventory().getItemInMainHand();
//Spam Fishing Detection //Spam Fishing Detection
@@ -845,7 +850,7 @@ public class PlayerListener implements Listener {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(player);
if (mcMMOPlayer == null) { if (mcMMOPlayer == null) {
pluginRef.debug(player.getName() + "is chatting, but is currently not logged in to the server."); pluginRef.debug(player.getName() + "is chatting, but is currently not logged in to the server.");

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.listeners; package com.gmail.nossr50.listeners;
import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent; import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent; import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
@@ -58,12 +58,12 @@ public class SelfListener implements Listener {
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlayerXpGain(McMMOPlayerXpGainEvent event) { public void onPlayerXpGain(McMMOPlayerXpGainEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
PrimarySkillType primarySkillType = event.getSkill(); PrimarySkillType primarySkillType = event.getSkill();
if(mcMMOPlayer.isDebugMode()) { if(mcMMOPlayer.isDebugMode()) {
mcMMOPlayer.getPlayer().sendMessage(event.getSkill().toString() + " XP Gained"); mcMMOPlayer.getNative().sendMessage(event.getSkill().toString() + " XP Gained");
mcMMOPlayer.getPlayer().sendMessage("Incoming Raw XP: "+event.getRawXpGained()); mcMMOPlayer.getNative().sendMessage("Incoming Raw XP: "+event.getRawXpGained());
} }
//WorldGuard XP Check //WorldGuard XP Check
@@ -77,7 +77,7 @@ public class SelfListener implements Listener {
event.setCancelled(true); event.setCancelled(true);
if(mcMMOPlayer.isDebugMode()) { 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 (threshold <= 0 || !pluginRef.getConfigManager().getConfigLeveling().getConfigLevelingDiminishedReturns().isDiminishedReturnsEnabled()) {
if(mcMMOPlayer.isDebugMode()) { if(mcMMOPlayer.isDebugMode()) {
mcMMOPlayer.getPlayer().sendMessage("Final Raw XP: "+event.getRawXpGained()); mcMMOPlayer.getNative().sendMessage("Final Raw XP: "+event.getRawXpGained());
} }
// Diminished returns is turned off // Diminished returns is turned off
return; return;
@@ -149,7 +149,7 @@ public class SelfListener implements Listener {
} }
if(mcMMOPlayer.isDebugMode()) { if(mcMMOPlayer.isDebugMode()) {
mcMMOPlayer.getPlayer().sendMessage("Final Raw XP: "+event.getRawXpGained()); mcMMOPlayer.getNative().sendMessage("Final Raw XP: "+event.getRawXpGained());
} }
} }

View File

@@ -10,13 +10,14 @@ import com.gmail.nossr50.config.playerleveling.ConfigLeveling;
import com.gmail.nossr50.config.scoreboard.ConfigScoreboard; import com.gmail.nossr50.config.scoreboard.ConfigScoreboard;
import com.gmail.nossr50.core.DynamicSettingsManager; import com.gmail.nossr50.core.DynamicSettingsManager;
import com.gmail.nossr50.core.MaterialMapStore; import com.gmail.nossr50.core.MaterialMapStore;
import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.core.PlatformManager; import com.gmail.nossr50.core.PlatformManager;
import com.gmail.nossr50.database.DatabaseManager; import com.gmail.nossr50.database.DatabaseManager;
import com.gmail.nossr50.database.DatabaseManagerFactory; import com.gmail.nossr50.database.DatabaseManagerFactory;
import com.gmail.nossr50.datatypes.skills.subskills.acrobatics.Roll; 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.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.party.PartyManager;
import com.gmail.nossr50.runnables.SaveTimerTask; import com.gmail.nossr50.runnables.SaveTimerTask;
import com.gmail.nossr50.runnables.backups.CleanBackupFilesTask; 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.WorldGuardManager;
import com.gmail.nossr50.worldguard.WorldGuardUtils; import com.gmail.nossr50.worldguard.WorldGuardUtils;
import net.shatteredlands.shatt.backup.ZipLibrary; import net.shatteredlands.shatt.backup.ZipLibrary;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.Recipe; import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.ShapelessRecipe; import org.bukkit.inventory.ShapelessRecipe;
import org.bukkit.inventory.meta.ItemMeta; 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.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.logging.Logger;
public class mcMMO extends JavaPlugin { public class mcMMO implements McMMOApi {
/* Managers */ /* Managers */
private ChunkManager placeStore; private ChunkManager placeStore;
private ConfigManager configManager; private ConfigManager configManager;
@@ -79,7 +76,6 @@ public class mcMMO extends JavaPlugin {
private PartyManager partyManager; private PartyManager partyManager;
private LocaleManager localeManager; private LocaleManager localeManager;
private ChatManager chatManager; private ChatManager chatManager;
private MobHealthBarManager mobHealthBarManager;
private EventManager eventManager; private EventManager eventManager;
private UserManager userManager; private UserManager userManager;
private ScoreboardManager scoreboardManager; private ScoreboardManager scoreboardManager;
@@ -119,29 +115,23 @@ public class mcMMO extends JavaPlugin {
private String usersFile; private String usersFile;
private String modDirectory; private String modDirectory;
/* Plugin Checks */
private boolean healthBarPluginEnabled;
// API checks // API checks
private boolean serverAPIOutdated = false; private boolean serverAPIOutdated = false;
// XP Event Check // XP Event Check
private boolean xpEventEnabled; private boolean xpEventEnabled;
private PlatformProvider platformProvider;
public mcMMO(PlatformProvider platformProvider) {
this.platformProvider = platformProvider;
}
/** /**
* Things to be run when the plugin is enabled. * Things to be run when the plugin is enabled.
*/ */
@Override
public void onEnable() { public void onEnable() {
try { try {
getLogger().setFilter(new LogFilter(this)); //platformProvider.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;
//Init Permission Tools //Init Permission Tools
permissionTools = new PermissionTools(this); permissionTools = new PermissionTools(this);
@@ -171,56 +161,42 @@ public class mcMMO extends JavaPlugin {
//Init TextComponentFactory //Init TextComponentFactory
textComponentFactory = new TextComponentFactory(this); 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... //TODO: Strange design...
databaseManagerFactory = new DatabaseManagerFactory(this); databaseManagerFactory = new DatabaseManagerFactory(this);
databaseManager = getDatabaseManagerFactory().getDatabaseManager(); databaseManager = getDatabaseManagerFactory().getDatabaseManager();
//Check for the newer API and tell them what to do if its missing //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) { if (!platformProvider.isSupported(true)) {
Bukkit org.bukkit.Bukkit.getLogger().info("WE DEAD");
.getScheduler() return;
.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);
}
} else { } else {
registerEvents(); platformProvider.earlyInit();
registerCoreSkills(); registerCoreSkills();
registerCustomRecipes(); registerCustomRecipes();
initParties(); initParties();
formulaManager = new FormulaManager(this); formulaManager = new FormulaManager(this);
for (Player player : getServer().getOnlinePlayers()) { // Don't do this for now
new PlayerProfileLoadingTask(this, player).runTaskLaterAsynchronously(this, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading //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(); scheduleTasks();
commandRegistrationManager = new CommandRegistrationManager(this); commandRegistrationManager = new CommandRegistrationManager(this);
commandRegistrationManager.registerACFCommands(); commandRegistrationManager.registerACFCommands();
commandRegistrationManager.registerCommands(); commandRegistrationManager.registerCommands();
/*
nbtManager = new NBTManager(); nbtManager = new NBTManager();
*/
//Init Chunk Manager Factory //Init Chunk Manager Factory
chunkManagerFactory = new ChunkManagerFactory(this); chunkManagerFactory = new ChunkManagerFactory(this);
placeStore = chunkManagerFactory.getChunkManager(); // Get our ChunkletManager placeStore = chunkManagerFactory.getChunkManager(); // Get our ChunkletManager
@@ -236,21 +212,7 @@ public class mcMMO extends JavaPlugin {
rankTools.populateRanks(); rankTools.populateRanks();
} }
//If anonymous statistics are enabled then use them platformProvider.checkMetrics();
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"));
}
} catch (Throwable t) { } catch (Throwable t) {
getLogger().severe("There was an error while enabling mcMMO!"); getLogger().severe("There was an error while enabling mcMMO!");
t.printStackTrace(); t.printStackTrace();
@@ -272,9 +234,6 @@ public class mcMMO extends JavaPlugin {
//Init Chat Manager //Init Chat Manager
chatManager = new ChatManager(this); chatManager = new ChatManager(this);
//Init Mob Health Bar Manager
mobHealthBarManager = new MobHealthBarManager(this);
//Init Event Manager //Init Event Manager
eventManager = new EventManager(this); eventManager = new EventManager(this);
@@ -313,12 +272,16 @@ public class mcMMO extends JavaPlugin {
particleEffectUtils = new ParticleEffectUtils(this); particleEffectUtils = new ParticleEffectUtils(this);
} }
@Override private String getVersion() {
return platformProvider.getVersion();
}
public void onLoad() public void onLoad()
{ {
worldGuardUtils = new WorldGuardUtils(this); //Init WGU 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()) { if(worldGuardUtils.isWorldGuardLoaded()) {
//Register flags //Register flags
@@ -332,7 +295,6 @@ public class mcMMO extends JavaPlugin {
/** /**
* Things to be run when the plugin is disabled. * Things to be run when the plugin is disabled.
*/ */
@Override
public void onDisable() { public void onDisable() {
try { try {
userManager.saveAll(); // Make sure to save player information if the server shuts down userManager.saveAll(); // Make sure to save player information if the server shuts down
@@ -349,10 +311,7 @@ public class mcMMO extends JavaPlugin {
e.printStackTrace(); e.printStackTrace();
} }
debug("Canceling all tasks..."); platformProvider.tearDown();
getServer().getScheduler().cancelTasks(this); // This removes our tasks
debug("Unregister all events...");
HandlerList.unregisterAll(this); // Cancel event registrations
if (getConfigManager().getConfigAutomatedBackups().isZipBackupsEnabled()) { if (getConfigManager().getConfigAutomatedBackups().isZipBackupsEnabled()) {
// Remove other tasks BEFORE starting the Backup, or we just cancel it straight away. // 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; 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() { public MaterialMapStore getMaterialMapStore() {
return materialMapStore; return materialMapStore;
@@ -521,14 +450,14 @@ public class mcMMO extends JavaPlugin {
return configManager.getConfigScoreboard(); return configManager.getConfigScoreboard();
} }
public boolean isHealthBarPluginEnabled() {
return healthBarPluginEnabled;
}
public ConfigManager getConfigManager() { public ConfigManager getConfigManager() {
return configManager; return configManager;
} }
public PlatformProvider getPlatformProvider() {
return platformProvider;
}
/** /**
* The directory in which override locales are kept * The directory in which override locales are kept
* *
@@ -573,11 +502,15 @@ public class mcMMO extends JavaPlugin {
getLogger().info("[Debug] " + message); getLogger().info("[Debug] " + message);
} }
@Deprecated
public Logger getLogger() {
return platformProvider.getLogger();
}
/** /**
* Setup the various storage file paths * Setup the various storage file paths
*/ */
private void setupFilePaths() { private void setupFilePaths() {
mainDirectory = getDataFolder().getPath() + File.separator; mainDirectory = platformProvider.getDataFolder().getPath() + File.separator;
localesDirectory = mainDirectory + "locales" + File.separator; localesDirectory = mainDirectory + "locales" + File.separator;
flatFileDirectory = mainDirectory + "flatfile" + File.separator; flatFileDirectory = mainDirectory + "flatfile" + File.separator;
usersFile = flatFileDirectory + "mcmmo.users"; usersFile = flatFileDirectory + "mcmmo.users";
@@ -619,18 +552,6 @@ public class mcMMO extends JavaPlugin {
configManager.loadConfigs(); 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 * Registers core skills
* This enables the skills in the new skill system * This enables the skills in the new skill system
@@ -653,35 +574,49 @@ public class mcMMO extends JavaPlugin {
} }
private void registerCustomRecipes() { private void registerCustomRecipes() {
getServer().getScheduler().scheduleSyncDelayedTask(this, () -> { getPlatformProvider().registerCustomRecipes();
if (configManager.getConfigItems().isChimaeraWingEnabled()) {
Recipe recipe = getChimaeraWingRecipe();
if(!getSkillTools().hasRecipeBeenRegistered(recipe))
getServer().addRecipe(getChimaeraWingRecipe());
}
}, 40);
} }
private void scheduleTasks() { private void scheduleTasks() {
// Periodic save timer (Saves every 10 minutes by default) // Periodic save timer (Saves every 10 minutes by default)
long saveIntervalTicks = Math.max(1200, (getConfigManager().getConfigDatabase().getConfigSectionDatabaseGeneral().getSaveIntervalMinutes() * (20 * 60))); 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 // 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) // Bleed timer (Runs every 0.5 seconds)
bleedTimerTask = new BleedTimerTask(this); 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 // Old & Powerless User remover
long purgeIntervalTicks = getConfigManager().getConfigDatabase().getConfigSectionCleaning().getPurgeInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR; long purgeIntervalTicks = getConfigManager().getConfigDatabase().getConfigSectionCleaning().getPurgeInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR;
if (getDatabaseCleaningSettings().isOnlyPurgeAtStartup()) { 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) { } 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 //Party System Stuff
@@ -690,71 +625,48 @@ public class mcMMO extends JavaPlugin {
long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR; long kickIntervalTicks = getConfigManager().getConfigParty().getPartyCleanup().getPartyAutoKickHoursInterval() * 60L * 60L * miscTools.TICK_CONVERSION_FACTOR;
if (kickIntervalTicks == 0) { 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) { } 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 // 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 // Clear the registered XP data so players can earn XP again
if (getConfigManager().getConfigLeveling().getConfigLevelingDiminishedReturns().isDiminishedReturnsEnabled()) { 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()) { 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() { public DynamicSettingsManager getDynamicSettingsManager() {
return dynamicSettingsManager; return dynamicSettingsManager;
} }
private enum ServerSoftwareType {
PAPER,
SPIGOT,
CRAFTBUKKIT
}
public NotificationManager getNotificationManager() { public NotificationManager getNotificationManager() {
return notificationManager; return notificationManager;
} }
@@ -775,10 +687,6 @@ public class mcMMO extends JavaPlugin {
return chatManager; return chatManager;
} }
public MobHealthBarManager getMobHealthBarManager() {
return mobHealthBarManager;
}
public EventManager getEventManager() { public EventManager getEventManager() {
return eventManager; return eventManager;
} }
@@ -835,6 +743,7 @@ public class mcMMO extends JavaPlugin {
return permissionTools; return permissionTools;
} }
@Deprecated // This needs to be removed...
public WorldGuardUtils getWorldGuardUtils() { public WorldGuardUtils getWorldGuardUtils() {
return worldGuardUtils; return worldGuardUtils;
} }
@@ -874,4 +783,13 @@ public class mcMMO extends JavaPlugin {
public ParticleEffectUtils getParticleEffectUtils() { public ParticleEffectUtils getParticleEffectUtils() {
return particleEffectUtils; return particleEffectUtils;
} }
public File getDataFolder() {
return platformProvider.getDataFolder();
}
@Deprecated
public Object getChimaeraWing() {
return platformProvider.getChimaeraWing();
}
} }

View File

@@ -3,13 +3,15 @@ package com.gmail.nossr50.party;
import com.gmail.nossr50.datatypes.chat.ChatMode; import com.gmail.nossr50.datatypes.chat.ChatMode;
import com.gmail.nossr50.datatypes.interactions.NotificationType; import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.party.*; 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.McMMOPartyAllianceChangeEvent;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent;
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.items.TeleportationWarmup; import com.gmail.nossr50.runnables.items.TeleportationWarmup;
import com.gmail.nossr50.util.sounds.SoundType; import com.gmail.nossr50.util.sounds.SoundType;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@@ -34,13 +36,13 @@ public final class PartyManager {
} }
public boolean canTeleport(CommandSender sender, Player player, String targetName) { 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)) { if (!pluginRef.getCommandTools().checkPlayerExistence(sender, targetName, mcMMOTarget)) {
return false; return false;
} }
Player target = mcMMOTarget.getPlayer(); Player target = mcMMOTarget.getNative();
if (player.equals(target)) { if (player.equals(target)) {
player.sendMessage(pluginRef.getLocaleManager().getString("Party.Teleport.Self")); player.sendMessage(pluginRef.getLocaleManager().getString("Party.Teleport.Self"));
@@ -76,8 +78,8 @@ public final class PartyManager {
return; return;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(teleportingPlayer); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(teleportingPlayer);
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetPlayer); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(targetPlayer);
long warmup = pluginRef.getConfigManager().getConfigParty().getPTP().getPtpWarmup(); long warmup = pluginRef.getConfigManager().getConfigParty().getPTP().getPtpWarmup();
@@ -85,7 +87,10 @@ public final class PartyManager {
if (warmup > 0) { if (warmup > 0) {
teleportingPlayer.sendMessage(pluginRef.getLocaleManager().getString("Teleport.Commencing", warmup)); 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 { } else {
pluginRef.getEventManager().handlePartyTeleportEvent(teleportingPlayer, targetPlayer); pluginRef.getEventManager().handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
} }
@@ -139,8 +144,8 @@ public final class PartyManager {
* @param newPartyName The name of the party being joined * @param newPartyName The name of the party being joined
* @return true if the party was joined successfully, false otherwise * @return true if the party was joined successfully, false otherwise
*/ */
public boolean changeOrJoinParty(McMMOPlayer mcMMOPlayer, String newPartyName) { public boolean changeOrJoinParty(BukkitMMOPlayer mcMMOPlayer, String newPartyName) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
if (mcMMOPlayer.inParty()) { if (mcMMOPlayer.inParty()) {
Party oldParty = mcMMOPlayer.getParty(); Party oldParty = mcMMOPlayer.getParty();
@@ -218,12 +223,12 @@ public final class PartyManager {
* @param mcMMOPlayer The player to check * @param mcMMOPlayer The player to check
* @return the near party members * @return the near party members
*/ */
public List<Player> getNearMembers(McMMOPlayer mcMMOPlayer) { public List<Player> getNearMembers(BukkitMMOPlayer mcMMOPlayer) {
List<Player> nearMembers = new ArrayList<>(); List<Player> nearMembers = new ArrayList<>();
Party party = mcMMOPlayer.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
double range = pluginRef.getPartyXPShareSettings().getPartyShareRange(); double range = pluginRef.getPartyXPShareSettings().getPartyShareRange();
for (Player member : party.getOnlineMembers()) { for (Player member : party.getOnlineMembers()) {
@@ -236,12 +241,12 @@ public final class PartyManager {
return nearMembers; return nearMembers;
} }
public List<Player> getNearVisibleMembers(McMMOPlayer mcMMOPlayer) { public List<Player> getNearVisibleMembers(BukkitMMOPlayer mcMMOPlayer) {
List<Player> nearMembers = new ArrayList<>(); List<Player> nearMembers = new ArrayList<>();
Party party = mcMMOPlayer.getParty(); Party party = mcMMOPlayer.getParty();
if (party != null) { if (party != null) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
double range = pluginRef.getPartyXPShareSettings().getPartyShareRange(); double range = pluginRef.getPartyXPShareSettings().getPartyShareRange();
for (Player member : party.getVisibleMembers(player)) { for (Player member : party.getVisibleMembers(player)) {
@@ -373,7 +378,7 @@ public final class PartyManager {
return null; return null;
} }
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getPlayer(player);
return mcMMOPlayer.getParty(); return mcMMOPlayer.getParty();
} }
@@ -420,8 +425,8 @@ public final class PartyManager {
* *
* @param mcMMOPlayer The player to remove * @param mcMMOPlayer The player to remove
*/ */
public void removeFromParty(McMMOPlayer mcMMOPlayer) { public void removeFromParty(BukkitMMOPlayer mcMMOPlayer) {
removeFromParty(mcMMOPlayer.getPlayer(), mcMMOPlayer.getParty()); removeFromParty(mcMMOPlayer.getNative(), mcMMOPlayer.getParty());
processPartyLeaving(mcMMOPlayer); processPartyLeaving(mcMMOPlayer);
} }
@@ -456,8 +461,8 @@ public final class PartyManager {
* @param partyName The party to add the player to * @param partyName The party to add the player to
* @param password The password for this party, null if there was no password * @param password The password for this party, null if there was no password
*/ */
public void createParty(McMMOPlayer mcMMOPlayer, String partyName, String password) { public void createParty(BukkitMMOPlayer mcMMOPlayer, String partyName, String password) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
Party party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName.replace(".", ""), password, pluginRef); 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 * @param mcMMOPlayer The player to add to the party
*/ */
public void joinInvitedParty(McMMOPlayer mcMMOPlayer) { public void joinInvitedParty(BukkitMMOPlayer mcMMOPlayer) {
Party invite = mcMMOPlayer.getPartyInvite(); Party invite = mcMMOPlayer.getPartyInvite();
// Check if the party still exists, it might have been disbanded // Check if the party still exists, it might have been disbanded
if (!parties.contains(invite)) { 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; return;
} }
@@ -520,13 +525,13 @@ public final class PartyManager {
* Don't let players join a full party * Don't let players join a full party
*/ */
if (pluginRef.getConfigManager().getConfigParty().isPartySizeCapped() && invite.getMembers().size() >= pluginRef.getConfigManager().getConfigParty().getPartySizeLimit()) { 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", NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull.InviteAccept",
invite.getName(), String.valueOf(pluginRef.getConfigManager().getConfigParty().getPartySizeLimit())); invite.getName(), String.valueOf(pluginRef.getConfigManager().getConfigParty().getPartySizeLimit()));
return; 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(); mcMMOPlayer.removePartyInvite();
addToParty(mcMMOPlayer, invite); addToParty(mcMMOPlayer, invite);
} }
@@ -536,9 +541,9 @@ public final class PartyManager {
* *
* @param mcMMOPlayer The player who accepts the alliance invite * @param mcMMOPlayer The player who accepts the alliance invite
*/ */
public void acceptAllianceInvite(McMMOPlayer mcMMOPlayer) { public void acceptAllianceInvite(BukkitMMOPlayer mcMMOPlayer) {
Party invite = mcMMOPlayer.getPartyAllianceInvite(); Party invite = mcMMOPlayer.getPartyAllianceInvite();
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
// Check if the party still exists, it might have been disbanded // Check if the party still exists, it might have been disbanded
if (!parties.contains(invite)) { if (!parties.contains(invite)) {
@@ -592,8 +597,8 @@ public final class PartyManager {
* @param mcMMOPlayer The player to add to the party * @param mcMMOPlayer The player to add to the party
* @param party The party * @param party The party
*/ */
public void addToParty(McMMOPlayer mcMMOPlayer, Party party) { public void addToParty(BukkitMMOPlayer mcMMOPlayer, Party party) {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
String playerName = player.getName(); String playerName = player.getName();
informPartyMembersJoin(party, playerName); informPartyMembersJoin(party, playerName);
@@ -621,7 +626,7 @@ public final class PartyManager {
* @param party The party * @param party The party
*/ */
public void setPartyLeader(UUID uuid, Party 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(); UUID leaderUniqueId = party.getLeader().getUniqueId();
for (Player member : party.getOnlineMembers()) { for (Player member : party.getOnlineMembers()) {
@@ -644,10 +649,10 @@ public final class PartyManager {
* *
* @return true if the player can invite * @return true if the player can invite
*/ */
public boolean canInvite(McMMOPlayer mcMMOPlayer) { public boolean canInvite(BukkitMMOPlayer mcMMOPlayer) {
Party party = mcMMOPlayer.getParty(); 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) { public boolean handlePartyChangeEvent(Player player, String oldPartyName, String newPartyName, EventReason reason) {
McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, newPartyName, reason); McMMOPartyChangeEvent event = new McMMOPartyChangeEvent(player, oldPartyName, newPartyName, reason);
pluginRef.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
return !event.isCancelled(); return !event.isCancelled();
} }
@@ -858,7 +863,7 @@ public final class PartyManager {
*/ */
public boolean handlePartyChangeAllianceEvent(Player player, String oldAllyName, String newAllyName, McMMOPartyAllianceChangeEvent.EventReason reason) { public boolean handlePartyChangeAllianceEvent(Player player, String oldAllyName, String newAllyName, McMMOPartyAllianceChangeEvent.EventReason reason) {
McMMOPartyAllianceChangeEvent event = new McMMOPartyAllianceChangeEvent(player, oldAllyName, newAllyName, reason); McMMOPartyAllianceChangeEvent event = new McMMOPartyAllianceChangeEvent(player, oldAllyName, newAllyName, reason);
pluginRef.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
return !event.isCancelled(); return !event.isCancelled();
} }
@@ -868,7 +873,7 @@ public final class PartyManager {
* *
* @param mcMMOPlayer The player to remove party data from. * @param mcMMOPlayer The player to remove party data from.
*/ */
public void processPartyLeaving(McMMOPlayer mcMMOPlayer) { public void processPartyLeaving(BukkitMMOPlayer mcMMOPlayer) {
mcMMOPlayer.removeParty(); mcMMOPlayer.removeParty();
mcMMOPlayer.disableChat(ChatMode.PARTY); mcMMOPlayer.disableChat(ChatMode.PARTY);
mcMMOPlayer.setItemShareModifier(10); mcMMOPlayer.setItemShareModifier(10);

View File

@@ -5,7 +5,7 @@ import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.party.ItemShareType; import com.gmail.nossr50.datatypes.party.ItemShareType;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.ShareMode; import com.gmail.nossr50.datatypes.party.ShareMode;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.Material; import org.bukkit.Material;
@@ -32,7 +32,7 @@ public final class ShareHandler {
* @param primarySkillType Skill being used * @param primarySkillType Skill being used
* @return True is the xp has been shared * @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) { if (party.getXpShareMode() != ShareMode.EQUAL) {
return false; return false;
} }
@@ -43,7 +43,7 @@ public final class ShareHandler {
return false; return false;
} }
nearMembers.add(mcMMOPlayer.getPlayer()); nearMembers.add(mcMMOPlayer.getNative());
int partySize = nearMembers.size(); int partySize = nearMembers.size();
double shareBonus = Math.min(pluginRef.getPartyXPShareSettings().getPartyShareXPBonusBase() double shareBonus = Math.min(pluginRef.getPartyXPShareSettings().getPartyShareXPBonusBase()
@@ -70,7 +70,7 @@ public final class ShareHandler {
* @param mcMMOPlayer Player who picked up the item * @param mcMMOPlayer Player who picked up the item
* @return True if the item has been shared * @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(); ItemStack itemStack = drop.getItemStack();
ItemShareType dropType = getShareType(itemStack); ItemShareType dropType = getShareType(itemStack);
@@ -97,7 +97,7 @@ public final class ShareHandler {
Player winningPlayer = null; Player winningPlayer = null;
ItemStack newStack = itemStack.clone(); ItemStack newStack = itemStack.clone();
nearMembers.add(mcMMOPlayer.getPlayer()); nearMembers.add(mcMMOPlayer.getNative());
int partySize = nearMembers.size(); int partySize = nearMembers.size();
drop.remove(); drop.remove();
@@ -111,7 +111,7 @@ public final class ShareHandler {
int highestRoll = 0; int highestRoll = 0;
for (Player member : nearMembers) { for (Player member : nearMembers) {
McMMOPlayer mcMMOMember = pluginRef.getUserManager().getPlayer(member); BukkitMMOPlayer mcMMOMember = pluginRef.getUserManager().getPlayer(member);
//Profile not loaded //Profile not loaded
if (pluginRef.getUserManager().getPlayer(member) == null) { if (pluginRef.getUserManager().getPlayer(member) == null) {
@@ -129,14 +129,14 @@ public final class ShareHandler {
highestRoll = diceRoll; highestRoll = diceRoll;
if (winningPlayer != null) { if (winningPlayer != null) {
McMMOPlayer mcMMOWinning = pluginRef.getUserManager().getPlayer(winningPlayer); BukkitMMOPlayer mcMMOWinning = pluginRef.getUserManager().getPlayer(winningPlayer);
mcMMOWinning.setItemShareModifier(mcMMOWinning.getItemShareModifier() + itemWeight); mcMMOWinning.setItemShareModifier(mcMMOWinning.getItemShareModifier() + itemWeight);
} }
winningPlayer = member; winningPlayer = member;
} }
McMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(winningPlayer); BukkitMMOPlayer mcMMOTarget = pluginRef.getUserManager().getPlayer(winningPlayer);
mcMMOTarget.setItemShareModifier(mcMMOTarget.getItemShareModifier() - itemWeight); mcMMOTarget.setItemShareModifier(mcMMOTarget.getItemShareModifier() - itemWeight);
awardDrop(winningPlayer, newStack); awardDrop(winningPlayer, newStack);
} }

View File

@@ -2,10 +2,14 @@ package com.gmail.nossr50.runnables;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.entity.LivingEntity; import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.scheduler.BukkitRunnable;
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 final mcMMO pluginRef;
private LivingEntity target; private LivingEntity target;
@@ -15,15 +19,15 @@ public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) { if (target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
target.setCustomName(target.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY).get(0).asString()); target.setCustomName(target.getMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey()).get(0).asString());
target.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, pluginRef); target.removeMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
if (target.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY)) { if (target.hasMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey())) {
target.setCustomNameVisible(target.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY).get(0).asBoolean()); target.setCustomNameVisible(target.getMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey()).get(0).asBoolean());
target.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, pluginRef); target.removeMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
} }
} }
} }

View File

@@ -2,13 +2,16 @@ package com.gmail.nossr50.runnables;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.plugin.Plugin;
import java.util.List; 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 final mcMMO pluginRef;
private List<Block> blocks; private List<Block> blocks;
private BlockFace direction; private BlockFace direction;
@@ -22,7 +25,7 @@ public class PistonTrackerTask extends BukkitRunnable {
} }
@Override @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 // Check to see if futureEmptyBlock is empty - if it isn't; the blocks didn't move
if (!pluginRef.getBlockTools().isPistonPiece(futureEmptyBlock.getState())) { if (!pluginRef.getBlockTools().isPistonPiece(futureEmptyBlock.getState())) {
return; return;
@@ -35,9 +38,9 @@ public class PistonTrackerTask extends BukkitRunnable {
for (Block b : blocks) { for (Block b : blocks) {
Block nextBlock = b.getRelative(direction); Block nextBlock = b.getRelative(direction);
if (nextBlock.hasMetadata(MetadataConstants.PISTON_TRACKING_METAKEY)) { if (nextBlock.hasMetadata(MetadataConstants.PISTON_TRACKING_METAKEY.getKey())) {
pluginRef.getPlaceStore().setTrue(nextBlock); 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)) { } else if (pluginRef.getPlaceStore().isTrue(nextBlock)) {
// Block doesn't have metadatakey but isTrue - set it to false // Block doesn't have metadatakey but isTrue - set it to false
pluginRef.getPlaceStore().setFalse(nextBlock); pluginRef.getPlaceStore().setFalse(nextBlock);

View File

@@ -1,11 +1,13 @@
package com.gmail.nossr50.runnables; 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;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask; 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; private final mcMMO pluginRef;
@@ -14,12 +16,12 @@ public class SaveTimerTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
// All player data will be saved periodically through this // All player data will be saved periodically through this
int count = 1; int count = 1;
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) { for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false).runTaskLaterAsynchronously(pluginRef, count); pluginRef.getPlatformProvider().getScheduler().getTaskBuilder().setAsync(true).setDelay((long) count).setTask(new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false)).schedule();
count++; count++;
} }

View File

@@ -1,11 +1,14 @@
package com.gmail.nossr50.runnables; package com.gmail.nossr50.runnables;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; 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 final mcMMO pluginRef;
private BlockFace direction; private BlockFace direction;
private Block block; private Block block;
@@ -19,7 +22,7 @@ public class StickyPistonTrackerTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (!pluginRef.getPlaceStore().isTrue(movedBlock.getRelative(direction))) { if (!pluginRef.getPlaceStore().isTrue(movedBlock.getRelative(direction))) {
return; return;
} }

View File

@@ -1,7 +1,7 @@
package com.gmail.nossr50.runnables.backups; package com.gmail.nossr50.runnables.backups;
import com.gmail.nossr50.mcMMO; 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.io.File;
import java.text.ParseException; import java.text.ParseException;
@@ -11,8 +11,9 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; 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 mcMMO pluginRef;
private final File BACKUP_DIR; private final File BACKUP_DIR;
@@ -23,7 +24,7 @@ public class CleanBackupFilesTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
List<Integer> savedDays = new ArrayList<>(); //TODO: Should probably look into why this isn't used... 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... HashMap<Integer, List<Integer>> savedYearsWeeks = new HashMap<>(); //TODO: Should probably look into why this isn't used...
List<File> toDelete = new ArrayList<>(); List<File> toDelete = new ArrayList<>();

View File

@@ -3,14 +3,16 @@ package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.datatypes.database.PlayerStat; import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List; 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 mcMMO pluginRef;
private final CommandSender sender; private final CommandSender sender;
private final PrimarySkillType skill; private final PrimarySkillType skill;
@@ -35,9 +37,12 @@ public class LeaderboardsCommandAsyncTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
final List<PlayerStat> userStats = pluginRef.getDatabaseManager().readLeaderboard(skill, page, 10); 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();
} }
} }

View File

@@ -4,17 +4,20 @@ import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.database.PlayerStat; import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.plugin.Plugin;
import java.util.List; import java.util.List;
import java.util.function.Consumer;
/** /**
* Display the results of {@link LeaderboardsCommandAsyncTask} to the sender. * 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 mcMMO pluginRef;
private final List<PlayerStat> userStats; private final List<PlayerStat> userStats;
private final CommandSender sender; private final CommandSender sender;
@@ -33,7 +36,7 @@ public class LeaderboardsCommandDisplayTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) { if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
displayBoard(); displayBoard();
} }
@@ -43,7 +46,7 @@ public class LeaderboardsCommandDisplayTask extends BukkitRunnable {
} }
if (sender instanceof Player) { 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) if (sender instanceof Player)
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mctop.Tip")); sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mctop.Tip"));

View File

@@ -1,12 +1,15 @@
package com.gmail.nossr50.runnables.commands; package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.function.Consumer;
//TODO: Rewrite, wrote this in a rush. //TODO: Rewrite, wrote this in a rush.
public class NotifySquelchReminderTask extends BukkitRunnable { public class NotifySquelchReminderTask implements Consumer<Task> {
private final mcMMO pluginRef; private final mcMMO pluginRef;
@@ -15,7 +18,7 @@ public class NotifySquelchReminderTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
if (pluginRef.getUserManager().getPlayer(player) != null) { if (pluginRef.getUserManager().getPlayer(player) != null) {
if (!pluginRef.getUserManager().getPlayer(player).useChatNotifications()) { if (!pluginRef.getUserManager().getPlayer(player).useChatNotifications()) {

View File

@@ -2,14 +2,16 @@ package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.Map; 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 mcMMO pluginRef;
private final String playerName; private final String playerName;
private final CommandSender sender; private final CommandSender sender;
@@ -31,10 +33,13 @@ public class RankCommandAsyncTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
Map<PrimarySkillType, Integer> skills = pluginRef.getDatabaseManager().readRank(playerName); 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();
} }
} }

View File

@@ -3,16 +3,19 @@ package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.core.MetadataConstants; import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.plugin.Plugin;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer;
/** /**
* Display the results of RankCommandAsyncTask to the sender. * 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 mcMMO pluginRef;
private final Map<PrimarySkillType, Integer> skills; private final Map<PrimarySkillType, Integer> skills;
private final CommandSender sender; private final CommandSender sender;
@@ -29,7 +32,7 @@ public class RankCommandDisplayTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) { if (useBoard && pluginRef.getScoreboardSettings().getScoreboardsEnabled()) {
displayBoard(); displayBoard();
} }
@@ -37,7 +40,7 @@ public class RankCommandDisplayTask extends BukkitRunnable {
if (useChat) { if (useChat) {
displayChat(); 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() { private void displayChat() {

View File

@@ -1,10 +1,13 @@
package com.gmail.nossr50.runnables.commands; package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.entity.Player; import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.scheduler.BukkitRunnable;
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 final mcMMO pluginRef;
private Player player; private Player player;
@@ -14,7 +17,7 @@ public class ScoreboardKeepTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (player.isValid() && pluginRef.getScoreboardManager().isBoardShown(player.getName())) { if (player.isValid() && pluginRef.getScoreboardManager().isBoardShown(player.getName())) {
pluginRef.getScoreboardManager().keepBoard(player.getName()); pluginRef.getScoreboardManager().keepBoard(player.getName());
} }

View File

@@ -2,10 +2,13 @@ package com.gmail.nossr50.runnables.database;
import com.gmail.nossr50.database.DatabaseManager; import com.gmail.nossr50.database.DatabaseManager;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import org.bukkit.command.CommandSender; import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.scheduler.BukkitRunnable;
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 mcMMO pluginRef;
private final DatabaseManager sourceDatabase; private final DatabaseManager sourceDatabase;
private final CommandSender sender; private final CommandSender sender;
@@ -19,9 +22,8 @@ public class DatabaseConversionTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
sourceDatabase.convertUsers(pluginRef.getDatabaseManager()); sourceDatabase.convertUsers(pluginRef.getDatabaseManager());
sender.sendMessage(message);
pluginRef.getServer().getScheduler().runTask(pluginRef, () -> sender.sendMessage(message));
} }
} }

View File

@@ -1,12 +1,15 @@
package com.gmail.nossr50.runnables.database; package com.gmail.nossr50.runnables.database;
import com.gmail.nossr50.datatypes.experience.FormulaType; 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.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.function.Consumer;
//TODO: PUUUUUUUUUUURGE //TODO: PUUUUUUUUUUURGE
/** /**
@@ -16,7 +19,7 @@ import org.bukkit.scheduler.BukkitRunnable;
* *
* Fix this at some point in the future * Fix this at some point in the future
*/ */
public class FormulaConversionTask extends BukkitRunnable { public class FormulaConversionTask implements Consumer<Task> {
private CommandSender sender; private CommandSender sender;
private FormulaType previousFormula; private FormulaType previousFormula;
private mcMMO pluginRef; private mcMMO pluginRef;
@@ -28,11 +31,11 @@ public class FormulaConversionTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
int convertedUsers = 0; int convertedUsers = 0;
long startMillis = System.currentTimeMillis(); long startMillis = System.currentTimeMillis();
for (String playerName : pluginRef.getDatabaseManager().getStoredUsers()) { for (String playerName : pluginRef.getDatabaseManager().getStoredUsers()) {
McMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName); BukkitMMOPlayer mcMMOPlayer = pluginRef.getUserManager().getOfflinePlayer(playerName);
PlayerProfile profile; 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. // 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.

View File

@@ -1,16 +1,17 @@
package com.gmail.nossr50.runnables.database; package com.gmail.nossr50.runnables.database;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import com.gmail.nossr50.util.uuid.UUIDFetcher; import com.gmail.nossr50.util.uuid.UUIDFetcher;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer;
import java.util.logging.Level; import java.util.logging.Level;
public class UUIDUpdateAsyncTask extends BukkitRunnable { public class UUIDUpdateAsyncTask implements Consumer<Task> {
private mcMMO pluginRef; private mcMMO pluginRef;
private final int MAX_LOOKUP = 100; private final int MAX_LOOKUP = 100;
private final int RATE_LIMIT = 300; private final int RATE_LIMIT = 300;
@@ -31,7 +32,7 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
size = userNames.size(); size = userNames.size();
pluginRef.getLogger().info("Starting to check and update UUIDs, total amount of users: " + size); pluginRef.getLogger().info("Starting to check and update UUIDs, total amount of users: " + size);

View File

@@ -1,11 +1,12 @@
package com.gmail.nossr50.runnables.database; package com.gmail.nossr50.runnables.database;
import com.gmail.nossr50.mcMMO; 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.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
public class UserPurgeTask extends BukkitRunnable { public class UserPurgeTask implements Consumer<Task> {
private final mcMMO pluginRef; private final mcMMO pluginRef;
private ReentrantLock lock; private ReentrantLock lock;
@@ -15,7 +16,7 @@ public class UserPurgeTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
lock.lock(); lock.lock();
if (pluginRef.getDatabaseCleaningSettings().isPurgePowerlessUsers()) if (pluginRef.getDatabaseCleaningSettings().isPurgePowerlessUsers())
pluginRef.getDatabaseManager().purgePowerlessUsers(); pluginRef.getDatabaseManager().purgePowerlessUsers();

View File

@@ -1,33 +1,36 @@
package com.gmail.nossr50.runnables.items; 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;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import com.gmail.nossr50.util.ChimaeraWing; import com.gmail.nossr50.util.ChimaeraWing;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; 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 mcMMO pluginRef;
private McMMOPlayer mcMMOPlayer; private BukkitMMOPlayer mcMMOPlayer;
public ChimaeraWingWarmup(mcMMO pluginRef, McMMOPlayer mcMMOPlayer) { public ChimaeraWingWarmup(mcMMO pluginRef, BukkitMMOPlayer mcMMOPlayer) {
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
this.mcMMOPlayer = mcMMOPlayer; this.mcMMOPlayer = mcMMOPlayer;
} }
@Override @Override
public void run() { public void accept(Task task) {
checkChimaeraWingTeleport(); checkChimaeraWingTeleport();
} }
private void checkChimaeraWingTeleport() { private void checkChimaeraWingTeleport() {
Player player = mcMMOPlayer.getPlayer(); Player player = mcMMOPlayer.getNative();
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation(); Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
ChimaeraWing chimaeraWing = new ChimaeraWing(pluginRef, mcMMOPlayer); 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")); player.sendMessage(pluginRef.getLocaleManager().getString("Teleport.Cancelled"));
mcMMOPlayer.setTeleportCommenceLocation(null); mcMMOPlayer.setTeleportCommenceLocation(null);
return; return;

View File

@@ -1,29 +1,32 @@
package com.gmail.nossr50.runnables.items; 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;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; 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 final mcMMO pluginRef;
private McMMOPlayer mcMMOPlayer; private BukkitMMOPlayer mcMMOPlayer;
private McMMOPlayer mcMMOTarget; private BukkitMMOPlayer mcMMOTarget;
public TeleportationWarmup(mcMMO pluginRef, McMMOPlayer mcMMOPlayer, McMMOPlayer mcMMOTarget) { public TeleportationWarmup(mcMMO pluginRef, BukkitMMOPlayer mcMMOPlayer, BukkitMMOPlayer mcMMOTarget) {
this.pluginRef = pluginRef; this.pluginRef = pluginRef;
this.mcMMOPlayer = mcMMOPlayer; this.mcMMOPlayer = mcMMOPlayer;
this.mcMMOTarget = mcMMOTarget; this.mcMMOTarget = mcMMOTarget;
} }
@Override @Override
public void run() { public void accept(Task task) {
Player teleportingPlayer = mcMMOPlayer.getPlayer(); Player teleportingPlayer = mcMMOPlayer.getNative();
Player targetPlayer = mcMMOTarget.getPlayer(); Player targetPlayer = mcMMOTarget.getNative();
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation(); Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
Location newLocation = mcMMOPlayer.getPlayer().getLocation(); Location newLocation = mcMMOPlayer.getNative().getLocation();
long recentlyHurt = mcMMOPlayer.getRecentlyHurt(); long recentlyHurt = mcMMOPlayer.getRecentlyHurt();
mcMMOPlayer.setTeleportCommenceLocation(null); mcMMOPlayer.setTeleportCommenceLocation(null);

View File

@@ -2,16 +2,19 @@ package com.gmail.nossr50.runnables.party;
import com.gmail.nossr50.datatypes.party.Party; import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.UUID; 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 mcMMO pluginRef;
private final long KICK_TIME; private final long KICK_TIME;
@@ -21,7 +24,7 @@ public class PartyAutoKickTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
HashMap<OfflinePlayer, Party> toRemove = new HashMap<>(); HashMap<OfflinePlayer, Party> toRemove = new HashMap<>();
List<UUID> processedPlayers = new ArrayList<>(); List<UUID> processedPlayers = new ArrayList<>();
@@ -29,7 +32,7 @@ public class PartyAutoKickTask extends BukkitRunnable {
for (Party party : pluginRef.getPartyManager().getParties()) { for (Party party : pluginRef.getPartyManager().getParties()) {
for (UUID memberUniqueId : party.getMembers().keySet()) { for (UUID memberUniqueId : party.getMembers().keySet()) {
OfflinePlayer member = pluginRef.getServer().getOfflinePlayer(memberUniqueId); OfflinePlayer member = Bukkit.getServer().getOfflinePlayer(memberUniqueId);
boolean isProcessed = processedPlayers.contains(memberUniqueId); boolean isProcessed = processedPlayers.contains(memberUniqueId);
if ((!member.isOnline() && (currentTime - member.getLastPlayed() > KICK_TIME)) || isProcessed) { if ((!member.isOnline() && (currentTime - member.getLastPlayed() > KICK_TIME)) || isProcessed) {

View File

@@ -1,10 +1,12 @@
package com.gmail.nossr50.runnables.player; 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 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; private final mcMMO pluginRef;
@@ -13,8 +15,8 @@ public class ClearRegisteredXPGainTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
for (McMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) { for (BukkitMMOPlayer mcMMOPlayer : pluginRef.getUserManager().getPlayers()) {
mcMMOPlayer.getProfile().purgeExpiredXpGains(); mcMMOPlayer.getProfile().purgeExpiredXpGains();
} }
} }

View File

@@ -1,14 +1,18 @@
package com.gmail.nossr50.runnables.player; 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.datatypes.player.PlayerProfile;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import com.gmail.nossr50.runnables.commands.ScoreboardKeepTask; import com.gmail.nossr50.runnables.commands.ScoreboardKeepTask;
import org.bukkit.Bukkit;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.entity.Player; 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 mcMMO pluginRef;
private final Player player; private final Player player;
private int attempt = 0; private int attempt = 0;
@@ -27,8 +31,7 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
// WARNING: ASYNC TASK // WARNING: ASYNC TASK
// DO NOT MODIFY THE McMMOPLAYER FROM THIS CODE // DO NOT MODIFY THE McMMOPLAYER FROM THIS CODE
@Override @Override
public void run() { public void accept(Task task) {
if (pluginRef.getMiscTools().isNPCIncludingVillagers(player)) { if (pluginRef.getMiscTools().isNPCIncludingVillagers(player)) {
return; return;
} }
@@ -42,7 +45,9 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(player.getName(), player.getUniqueId(), true); PlayerProfile profile = pluginRef.getDatabaseManager().loadPlayerProfile(player.getName(), player.getUniqueId(), true);
// If successful, schedule the apply // If successful, schedule the apply
if (profile.isLoaded()) { 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); pluginRef.getEventManager().callPlayerProfileLoadEvent(player, profile);
return; return;
} }
@@ -54,7 +59,7 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
player.getName(), String.valueOf(attempt))); player.getName(), String.valueOf(attempt)));
//Notify the admins //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 //Notify the player
player.sendMessage(pluginRef.getLocaleManager().getString("Profile.Loading.FailurePlayer", String.valueOf(attempt)).split("\n")); 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 // Increment attempt counter and try
attempt++; attempt++;
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
new PlayerProfileLoadingTask(pluginRef, player, attempt).runTaskLaterAsynchronously(pluginRef, (100 + (attempt * 100))); .setAsync(true)
.setDelay((long) (100 + (attempt * 100)))
.setTask(new PlayerProfileLoadingTask(pluginRef, player, attempt))
.schedule();
} }
private class ApplySuccessfulProfile extends BukkitRunnable { private class ApplySuccessfulProfile implements Consumer<Task> {
private final McMMOPlayer mcMMOPlayer; private final BukkitMMOPlayer mcMMOPlayer;
private ApplySuccessfulProfile(McMMOPlayer mcMMOPlayer) { private ApplySuccessfulProfile(BukkitMMOPlayer mcMMOPlayer) {
this.mcMMOPlayer = mcMMOPlayer; this.mcMMOPlayer = mcMMOPlayer;
} }
// Synchronized task // Synchronized task
// No database access permitted // No database access permitted
@Override @Override
public void run() { public void accept(Task task) {
if (!player.isOnline()) { if (!player.isOnline()) {
pluginRef.getLogger().info("Aborting profile loading recovery for " + player.getName() + " - player logged out"); pluginRef.getLogger().info("Aborting profile loading recovery for " + player.getName() + " - player logged out");
return; return;
@@ -91,7 +99,10 @@ public class PlayerProfileLoadingTask extends BukkitRunnable {
if (pluginRef.getScoreboardSettings().getShowStatsAfterLogin()) { if (pluginRef.getScoreboardSettings().getShowStatsAfterLogin()) {
pluginRef.getScoreboardManager().enablePlayerStatsScoreboard(player); 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();
} }
} }

View File

@@ -1,9 +1,11 @@
package com.gmail.nossr50.runnables.player; package com.gmail.nossr50.runnables.player;
import com.gmail.nossr50.datatypes.player.PlayerProfile; 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 PlayerProfile playerProfile;
private boolean isSync; private boolean isSync;
@@ -13,7 +15,7 @@ public class PlayerProfileSaveTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
playerProfile.save(isSync); playerProfile.save(isSync);
} }
} }

View File

@@ -1,9 +1,12 @@
package com.gmail.nossr50.runnables.player; package com.gmail.nossr50.runnables.player;
import org.bukkit.entity.Player; import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
import org.bukkit.scheduler.BukkitRunnable;
public class PlayerUpdateInventoryTask extends BukkitRunnable { import org.bukkit.entity.Player;
import java.util.function.Consumer;
public class PlayerUpdateInventoryTask implements Consumer<Task> {
private Player player; private Player player;
public PlayerUpdateInventoryTask(Player player) { public PlayerUpdateInventoryTask(Player player) {
@@ -11,7 +14,7 @@ public class PlayerUpdateInventoryTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
player.updateInventory(); player.updateInventory();
} }
} }

View File

@@ -1,9 +1,11 @@
package com.gmail.nossr50.runnables.player; package com.gmail.nossr50.runnables.player;
import com.gmail.nossr50.mcMMO; 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; private final mcMMO pluginRef;
@@ -12,9 +14,9 @@ public class PowerLevelUpdatingTask extends BukkitRunnable {
} }
@Override @Override
public void run() { public void accept(Task task) {
if (!pluginRef.getScoreboardManager().powerLevelHeartbeat()) { if (!pluginRef.getScoreboardManager().powerLevelHeartbeat()) {
this.cancel(); task.cancel();
} }
} }
} }

Some files were not shown because too many files have changed in this diff Show More