mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
It compiles
running is a different matter, however...
This commit is contained in:
parent
a26216b0d0
commit
a2c88d657c
@ -5,4 +5,5 @@ plugins {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.jetbrains:annotations:17.0.0")
|
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)
|
||||||
}
|
}
|
@ -1,12 +1,18 @@
|
|||||||
package com.gmail.nossr50.mcmmo.api.platform;
|
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.scheduler.PlatformScheduler;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import co.aikar.commands.CommandIssuer;
|
||||||
|
import co.aikar.commands.CommandManager;
|
||||||
|
import co.aikar.commands.CommandOperationContext;
|
||||||
|
|
||||||
public interface PlatformProvider {
|
public interface PlatformProvider {
|
||||||
|
|
||||||
Logger getLogger();
|
Logger getLogger();
|
||||||
@ -38,4 +44,19 @@ public interface PlatformProvider {
|
|||||||
void checkMetrics();
|
void checkMetrics();
|
||||||
|
|
||||||
MobHealthBarManager getHealthBarManager();
|
MobHealthBarManager getHealthBarManager();
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
void registerCustomRecipes();
|
||||||
|
|
||||||
|
CommandManager getCommandManager();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// EVIL - EVILNESS FROM BEYOND THIS POINT - EVIL
|
||||||
|
// THOU HAST BEEN WARNED
|
||||||
|
@Deprecated
|
||||||
|
MMOEntity<?> getEntity(UUID uniqueId);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
Object getChimaeraWing();
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,9 @@ public interface PlatformScheduler {
|
|||||||
Task scheduleTask(TaskBuilder taskBuilder);
|
Task scheduleTask(TaskBuilder taskBuilder);
|
||||||
|
|
||||||
|
|
||||||
class TaskBuilder {
|
abstract class TaskBuilder {
|
||||||
Integer delay;
|
Long delay;
|
||||||
Integer repeatTime;
|
Long repeatTime;
|
||||||
|
|
||||||
public boolean isAsync() {
|
public boolean isAsync() {
|
||||||
return isAsync;
|
return isAsync;
|
||||||
@ -25,20 +25,20 @@ public interface PlatformScheduler {
|
|||||||
boolean isAsync = false;
|
boolean isAsync = false;
|
||||||
Consumer<Task> task;
|
Consumer<Task> task;
|
||||||
|
|
||||||
public Integer getDelay() {
|
public Long getDelay() {
|
||||||
return delay;
|
return delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TaskBuilder setDelay(Integer delay) {
|
public TaskBuilder setDelay(Long delay) {
|
||||||
this.delay = delay;
|
this.delay = delay;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getRepeatTime() {
|
public Long getRepeatTime() {
|
||||||
return repeatTime;
|
return repeatTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TaskBuilder setRepeatTime(Integer repeatTime) {
|
public TaskBuilder setRepeatTime(Long repeatTime) {
|
||||||
this.repeatTime = repeatTime;
|
this.repeatTime = repeatTime;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -51,5 +51,13 @@ public interface PlatformScheduler {
|
|||||||
this.task = task;
|
this.task = task;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public TaskBuilder setTask(Runnable runnableTask) {
|
||||||
|
this.setTask(task -> runnableTask.run());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract Task schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,14 @@ tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
|
/*
|
||||||
dependencies {
|
dependencies {
|
||||||
include(dependency("org.bstats:bstats-bukkit"))
|
include(dependency("org.bstats:bstats-bukkit"))
|
||||||
exclude(dependency("org.spigotmc:spigot"))
|
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.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")
|
||||||
@ -29,14 +33,15 @@ tasks {
|
|||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(project(":mcmmo-api"))
|
compile(project(":mcmmo-api"))
|
||||||
implementation(project(":mcmmo-core"))
|
compile(project(":mcmmo-core"))
|
||||||
|
|
||||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||||
api("net.kyori:event-api:3.0.0")
|
api("net.kyori:event-api:3.0.0")
|
||||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
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")
|
implementation("org.bstats:bstats-bukkit:1.4")
|
||||||
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
implementation("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")
|
||||||
}
|
}
|
||||||
|
@ -1,29 +1,50 @@
|
|||||||
package com.gmail.nossr50.mcmmo.bukkit;
|
package com.gmail.nossr50.mcmmo.bukkit;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.listeners.*;
|
import com.gmail.nossr50.listeners.*;
|
||||||
import com.gmail.nossr50.mcMMO;
|
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.PlatformProvider;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.ServerSoftwareType;
|
import com.gmail.nossr50.mcmmo.api.platform.ServerSoftwareType;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.PlatformScheduler;
|
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.MetadataStore;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.util.MobHealthBarManager;
|
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.scheduler.BukkitPlatformScheduler;
|
||||||
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMobHealthBarManager;
|
import com.gmail.nossr50.mcmmo.bukkit.platform.util.BukkitMobHealthBarManager;
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.Bukkit;
|
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.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.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
import co.aikar.commands.CommandManager;
|
||||||
|
import co.aikar.commands.PaperCommandManager;
|
||||||
|
|
||||||
|
public class BukkitBootstrap extends JavaPlugin implements PlatformProvider {
|
||||||
|
|
||||||
private mcMMO core = new mcMMO(this);
|
private mcMMO core = new mcMMO(this);
|
||||||
private final BukkitPlatformScheduler scheduler = new BukkitPlatformScheduler(this);
|
private final BukkitPlatformScheduler scheduler = new BukkitPlatformScheduler(this);
|
||||||
private final MobHealthBarManager healthBarManager = new BukkitMobHealthBarManager(core);
|
private final MobHealthBarManager healthBarManager = new BukkitMobHealthBarManager(this, core);
|
||||||
|
private PaperCommandManager paperCommandManager;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Logger getLogger() {
|
public @NotNull Logger getLogger() {
|
||||||
@ -45,7 +66,7 @@ public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
return this.getVersion();
|
return getDescription().getVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -57,7 +78,8 @@ public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
registerEvents();
|
registerEvents();
|
||||||
|
paperCommandManager = new PaperCommandManager(this);
|
||||||
|
paperCommandManager.registerDependency(mcMMO.class, core);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -122,9 +144,77 @@ public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MobHealthBarManager getHealthBarManager() {
|
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) {
|
||||||
|
final Entity entity = Bukkit.getEntity(uniqueId);
|
||||||
|
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;
|
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() {
|
private void registerEvents() {
|
||||||
PluginManager pluginManager = getServer().getPluginManager();
|
PluginManager pluginManager = getServer().getPluginManager();
|
||||||
@ -137,4 +227,9 @@ public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
|||||||
pluginManager.registerEvents(new SelfListener(core), this);
|
pluginManager.registerEvents(new SelfListener(core), this);
|
||||||
pluginManager.registerEvents(new WorldListener(core), this);
|
pluginManager.registerEvents(new WorldListener(core), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
core.onEnable();
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.entity;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
|
||||||
|
public class BukkitMMOEntity implements MMOEntity<Entity> {
|
||||||
|
|
||||||
|
Entity entity;
|
||||||
|
|
||||||
|
public BukkitMMOEntity(Entity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity getNative() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.bukkit.platform.entity.living;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
|
||||||
|
public class BukkitMMOLivingEntity implements MMOEntity<LivingEntity> {
|
||||||
|
|
||||||
|
LivingEntity entity;
|
||||||
|
|
||||||
|
public BukkitMMOLivingEntity(LivingEntity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LivingEntity getNative() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@ 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.PlatformScheduler;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
import com.gmail.nossr50.mcmmo.bukkit.BukkitBoostrap;
|
import com.gmail.nossr50.mcmmo.bukkit.BukkitBootstrap;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
@ -11,21 +11,26 @@ import java.util.function.Consumer;
|
|||||||
|
|
||||||
public class BukkitPlatformScheduler implements PlatformScheduler {
|
public class BukkitPlatformScheduler implements PlatformScheduler {
|
||||||
|
|
||||||
private final BukkitBoostrap bukkitBoostrap;
|
private final BukkitBootstrap bukkitBootstrap;
|
||||||
|
|
||||||
public BukkitPlatformScheduler(BukkitBoostrap bukkitBoostrap) {
|
public BukkitPlatformScheduler(BukkitBootstrap bukkitBootstrap) {
|
||||||
this.bukkitBoostrap = bukkitBoostrap;
|
this.bukkitBootstrap = bukkitBootstrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskBuilder getTaskBuilder() {
|
public TaskBuilder getTaskBuilder() {
|
||||||
return new TaskBuilder();
|
return new TaskBuilder() {
|
||||||
|
@Override
|
||||||
|
public Task schedule() {
|
||||||
|
return BukkitPlatformScheduler.this.scheduleTask(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Task scheduleTask(TaskBuilder taskBuilder) {
|
public Task scheduleTask(TaskBuilder taskBuilder) {
|
||||||
final Integer repeatTime = taskBuilder.getRepeatTime();
|
final Long repeatTime = taskBuilder.getRepeatTime();
|
||||||
final Integer delay = taskBuilder.getDelay();
|
final Long delay = taskBuilder.getDelay();
|
||||||
final boolean isAsync = taskBuilder.isAsync();
|
final boolean isAsync = taskBuilder.isAsync();
|
||||||
final Consumer<Task> taskConsumer = taskBuilder.getTask();
|
final Consumer<Task> taskConsumer = taskBuilder.getTask();
|
||||||
|
|
||||||
@ -35,19 +40,19 @@ public class BukkitPlatformScheduler implements PlatformScheduler {
|
|||||||
final BukkitTask bukkitTask;
|
final BukkitTask bukkitTask;
|
||||||
if (!isAsync) {
|
if (!isAsync) {
|
||||||
if (delay == null && repeatTime == null) {
|
if (delay == null && repeatTime == null) {
|
||||||
bukkitTask = bukkitScheduler.runTask(bukkitBoostrap, task);
|
bukkitTask = bukkitScheduler.runTask(bukkitBootstrap, task);
|
||||||
} else if (delay != null && repeatTime == null) {
|
} else if (delay != null && repeatTime == null) {
|
||||||
bukkitTask = bukkitScheduler.runTaskLater(bukkitBoostrap, task, delay);
|
bukkitTask = bukkitScheduler.runTaskLater(bukkitBootstrap, task, delay);
|
||||||
} else {
|
} else {
|
||||||
bukkitTask = bukkitScheduler.runTaskTimer(bukkitBoostrap, task, delay != null ? delay : 0, repeatTime);
|
bukkitTask = bukkitScheduler.runTaskTimer(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (delay == null && repeatTime == null) {
|
if (delay == null && repeatTime == null) {
|
||||||
bukkitTask = bukkitScheduler.runTaskAsynchronously(bukkitBoostrap, task);
|
bukkitTask = bukkitScheduler.runTaskAsynchronously(bukkitBootstrap, task);
|
||||||
} else if (delay != null && repeatTime == null) {
|
} else if (delay != null && repeatTime == null) {
|
||||||
bukkitTask = bukkitScheduler.runTaskLaterAsynchronously(bukkitBoostrap, task, delay);
|
bukkitTask = bukkitScheduler.runTaskLaterAsynchronously(bukkitBootstrap, task, delay);
|
||||||
} else {
|
} else {
|
||||||
bukkitTask = bukkitScheduler.runTaskTimerAsynchronously(bukkitBoostrap, task, delay != null ? delay : 0, repeatTime);
|
bukkitTask = bukkitScheduler.runTaskTimerAsynchronously(bukkitBootstrap, task, delay != null ? delay : 0, repeatTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,16 @@ 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;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
public final class BukkitMobHealthBarManager implements MobHealthBarManager<Player, LivingEntity> {
|
public final class BukkitMobHealthBarManager implements MobHealthBarManager<Player, LivingEntity> {
|
||||||
|
private final Plugin plugin;
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
private final boolean healthBarPluginEnabled;
|
private final boolean healthBarPluginEnabled;
|
||||||
|
|
||||||
public BukkitMobHealthBarManager(mcMMO pluginRef) {
|
public BukkitMobHealthBarManager(Plugin plugin, mcMMO pluginRef) {
|
||||||
|
this.plugin = plugin;
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
||||||
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
||||||
@ -51,7 +54,7 @@ public final class BukkitMobHealthBarManager implements MobHealthBarManager<Play
|
|||||||
/**
|
/**
|
||||||
* 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
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -96,14 +99,17 @@ public final class BukkitMobHealthBarManager implements MobHealthBarManager<Play
|
|||||||
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
boolean updateName = !ChatColor.stripColor(oldName).equalsIgnoreCase(ChatColor.stripColor(newName));
|
||||||
|
|
||||||
if (updateName) {
|
if (updateName) {
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, oldName));
|
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, oldName));
|
||||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, oldNameVisible));
|
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, oldNameVisible));
|
||||||
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY)) {
|
} else if (!target.hasMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey())) {
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY, new FixedMetadataValue(pluginRef, ""));
|
target.setMetadata(MetadataConstants.CUSTOM_NAME_METAKEY.getKey(), new FixedMetadataValue(plugin, ""));
|
||||||
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY, new FixedMetadataValue(pluginRef, false));
|
target.setMetadata(MetadataConstants.NAME_VISIBILITY_METAKEY.getKey(), new FixedMetadataValue(plugin, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
new MobHealthDisplayUpdaterTask(pluginRef, target).runTaskLater(pluginRef, displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR); // Clear health display after 3 seconds
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR) // Clear health display after 3 seconds
|
||||||
|
.setTask(new MobHealthDisplayUpdaterTask(pluginRef, target))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,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
|
||||||
|
@ -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")
|
||||||
@ -58,21 +60,19 @@ tasks.named<ShadowJar>("shadowJar") {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(project(":mcmmo-api"))
|
api(project(":mcmmo-api"))
|
||||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
compile("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||||
api("com.typesafe:config:1.3.2")
|
compile("com.typesafe:config:1.3.2")
|
||||||
api("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
compile("org.spongepowered:configurate-core:3.7-SNAPSHOT")
|
||||||
api("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
compile("org.spongepowered:configurate-yaml:3.7-SNAPSHOT")
|
||||||
api("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
compile("org.spongepowered:configurate-hocon:3.7-SNAPSHOT")
|
||||||
api("co.aikar:acf-core:0.5.0-SNAPSHOT") //Don't change without updating the artifacts for its dependencies (see the other comments)
|
compile("net.kyori:text-api:3.0.2")
|
||||||
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-serializer-gson:3.0.2")
|
||||||
api("net.kyori:text-api:3.0.2")
|
compile("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
||||||
api("net.kyori:text-serializer-gson:3.0.2")
|
compile("org.jetbrains:annotations:17.0.0")
|
||||||
api("net.kyori:text-adapter-bukkit:3.0.4-SNAPSHOT")
|
compile("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||||
implementation("org.jetbrains:annotations:17.0.0")
|
compile("org.bstats:bstats-bukkit:1.4")
|
||||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
compileOnly("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
implementation("org.bstats:bstats-bukkit:1.4")
|
compileOnly("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
||||||
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
|
||||||
implementation("com.sk89q.worldguard:worldguard-legacy:7.0.0-SNAPSHOT")
|
|
||||||
testImplementation("junit:junit:4.10")
|
testImplementation("junit:junit:4.10")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,8 +5,11 @@ 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,7 +85,7 @@ 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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -6,6 +6,8 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
import com.gmail.nossr50.runnables.database.DatabaseConversionTask;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -57,17 +59,24 @@ public class ConvertDatabaseCommand implements CommandExecutor {
|
|||||||
pluginRef.getUserManager().saveAll();
|
pluginRef.getUserManager().saveAll();
|
||||||
pluginRef.getUserManager().clearAll();
|
pluginRef.getUserManager().clearAll();
|
||||||
|
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
PlayerProfile profile = oldDatabase.loadPlayerProfile(player.getUniqueId());
|
||||||
|
|
||||||
if (profile.isLoaded()) {
|
if (profile.isLoaded()) {
|
||||||
pluginRef.getDatabaseManager().saveUser(profile);
|
pluginRef.getDatabaseManager().saveUser(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
|
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()).runTaskAsynchronously(pluginRef);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setTask(new DatabaseConversionTask(pluginRef, oldDatabase, sender, previousType.toString(), newType.toString()))
|
||||||
|
.schedule();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -4,6 +4,8 @@ import com.gmail.nossr50.datatypes.experience.FormulaType;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
import com.gmail.nossr50.runnables.database.FormulaConversionTask;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -31,10 +33,17 @@ public class ConvertExperienceCommand implements CommandExecutor {
|
|||||||
pluginRef.getUserManager().saveAll();
|
pluginRef.getUserManager().saveAll();
|
||||||
pluginRef.getUserManager().clearAll();
|
pluginRef.getUserManager().clearAll();
|
||||||
|
|
||||||
new FormulaConversionTask(pluginRef, sender, previousType).runTaskLater(pluginRef, 1);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(1L)
|
||||||
|
.setTask(new FormulaConversionTask(pluginRef, sender, previousType))
|
||||||
|
.schedule();
|
||||||
|
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
new PlayerProfileLoadingTask(pluginRef, player).runTaskLaterAsynchronously(pluginRef, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setAsync(true)
|
||||||
|
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
|
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -5,6 +5,8 @@ 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;
|
||||||
@ -101,7 +103,7 @@ public abstract class ExperienceCommand implements TabExecutor {
|
|||||||
// 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();
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ 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;
|
||||||
@ -86,7 +88,7 @@ public class SkillResetCommand implements TabExecutor {
|
|||||||
// 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();
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
@ -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) {
|
||||||
|
@ -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;
|
||||||
@ -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,7 +118,10 @@ 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(BukkitMMOPlayer mcMMOPlayer, long cooldownMillis) {
|
private long getCDSeconds(BukkitMMOPlayer mcMMOPlayer, long cooldownMillis) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
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 com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
@ -28,7 +29,7 @@ public class MetadataConstants {
|
|||||||
public final static MetadataKey<Boolean> ARROW_TRACKER_METAKEY = new MetadataKey<>("mcMMO: Arrow Tracker");
|
public final static MetadataKey<Boolean> ARROW_TRACKER_METAKEY = new MetadataKey<>("mcMMO: Arrow Tracker");
|
||||||
public final static MetadataKey<Boolean> BONUS_DROPS_METAKEY = new MetadataKey<>("mcMMO: Bonus Drops");
|
public final static MetadataKey<Boolean> BONUS_DROPS_METAKEY = new MetadataKey<>("mcMMO: Bonus Drops");
|
||||||
public final static MetadataKey<Boolean> DISARMED_ITEM_METAKEY = new MetadataKey<>("mcMMO: Disarmed Item");
|
public final static MetadataKey<Boolean> DISARMED_ITEM_METAKEY = new MetadataKey<>("mcMMO: Disarmed Item");
|
||||||
public final static MetadataKey<Boolean> PLAYER_DATA_METAKEY = new MetadataKey<>("mcMMO: Player Data");
|
public final static MetadataKey<MMOPlayer> PLAYER_DATA_METAKEY = new MetadataKey<>("mcMMO: Player Data");
|
||||||
public final static MetadataKey<Boolean> GREEN_THUMB_METAKEY = new MetadataKey<>("mcMMO: Green Thumb");
|
public final static MetadataKey<Boolean> GREEN_THUMB_METAKEY = new MetadataKey<>("mcMMO: Green Thumb");
|
||||||
public final static MetadataKey<Boolean> DATABASE_PROCESSING_COMMAND_METAKEY = new MetadataKey<>("mcMMO: Processing Database Command");
|
public final static MetadataKey<Boolean> DATABASE_PROCESSING_COMMAND_METAKEY = new MetadataKey<>("mcMMO: Processing Database Command");
|
||||||
public final static MetadataKey<Boolean> PETS_ANIMAL_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Pet Animal");
|
public final static MetadataKey<Boolean> PETS_ANIMAL_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Pet Animal");
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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()));
|
||||||
|
@ -85,7 +85,7 @@ public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
|||||||
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) {
|
||||||
@ -656,7 +656,7 @@ public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) {
|
if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) {
|
||||||
processPostXpEvent(primarySkillType, pluginRef, xpGainSource);
|
processPostXpEvent(primarySkillType, (Plugin) pluginRef.getPlatformProvider(), xpGainSource);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -687,7 +687,7 @@ public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -951,7 +951,10 @@ public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
||||||
@ -998,7 +1001,10 @@ public class BukkitMMOPlayer implements MMOPlayer<Player> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -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();
|
||||||
|
|
||||||
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -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) {
|
||||||
|
@ -8,10 +8,13 @@ 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();
|
||||||
|
|
||||||
@ -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;
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,12 +444,12 @@ public class PlayerListener implements Listener {
|
|||||||
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);
|
||||||
@ -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!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ public class mcMMO implements McMMOApi {
|
|||||||
*/
|
*/
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
try {
|
try {
|
||||||
platformProvider.getLogger().setFilter(new LogFilter(this));
|
//platformProvider.getLogger().setFilter(new LogFilter(this));
|
||||||
|
|
||||||
//Init Permission Tools
|
//Init Permission Tools
|
||||||
permissionTools = new PermissionTools(this);
|
permissionTools = new PermissionTools(this);
|
||||||
@ -168,6 +168,7 @@ public class mcMMO implements McMMOApi {
|
|||||||
CompatibilityCheck.checkForOutdatedAPI(this, serverAPIOutdated, platformProvider.getServerType().getFriendlyName());
|
CompatibilityCheck.checkForOutdatedAPI(this, serverAPIOutdated, platformProvider.getServerType().getFriendlyName());
|
||||||
|
|
||||||
if (!platformProvider.isSupported(true)) {
|
if (!platformProvider.isSupported(true)) {
|
||||||
|
org.bukkit.Bukkit.getLogger().info("WE DEAD");
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
platformProvider.earlyInit();
|
platformProvider.earlyInit();
|
||||||
@ -177,9 +178,10 @@ public class mcMMO implements McMMOApi {
|
|||||||
|
|
||||||
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 " + getVersion() + " is enabled!");
|
debug("Version " + getVersion() + " is enabled!");
|
||||||
|
|
||||||
@ -227,9 +229,6 @@ public class mcMMO implements McMMOApi {
|
|||||||
//Init Chat Manager
|
//Init Chat Manager
|
||||||
chatManager = new ChatManager(this);
|
chatManager = new ChatManager(this);
|
||||||
|
|
||||||
//Init Mob Health Bar Manager
|
|
||||||
bukkitMobHealthBarManager = new BukkitMobHealthBarManager(this);
|
|
||||||
|
|
||||||
//Init Event Manager
|
//Init Event Manager
|
||||||
eventManager = new EventManager(this);
|
eventManager = new EventManager(this);
|
||||||
|
|
||||||
@ -277,6 +276,8 @@ public class mcMMO implements McMMOApi {
|
|||||||
platformProvider.onLoad();
|
platformProvider.onLoad();
|
||||||
worldGuardUtils = new WorldGuardUtils(this); //Init WGU
|
worldGuardUtils = new WorldGuardUtils(this); //Init WGU
|
||||||
|
|
||||||
|
// TODO: 2.2 - MIGRATE
|
||||||
|
/*
|
||||||
if(getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
if(getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
||||||
|
|
||||||
if(worldGuardUtils.isWorldGuardLoaded()) {
|
if(worldGuardUtils.isWorldGuardLoaded()) {
|
||||||
@ -286,6 +287,7 @@ public class mcMMO implements McMMOApi {
|
|||||||
worldGuardManager.registerFlags();
|
worldGuardManager.registerFlags();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -450,6 +452,10 @@ public class mcMMO implements McMMOApi {
|
|||||||
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
|
||||||
*
|
*
|
||||||
@ -566,35 +572,49 @@ public class mcMMO implements McMMOApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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
|
||||||
@ -603,61 +623,44 @@ public class mcMMO implements McMMOApi {
|
|||||||
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;
|
||||||
}
|
}
|
||||||
@ -778,4 +781,13 @@ public class mcMMO implements McMMOApi {
|
|||||||
public ParticleEffectUtils getParticleEffectUtils() {
|
public ParticleEffectUtils getParticleEffectUtils() {
|
||||||
return particleEffectUtils;
|
return particleEffectUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public File getDataFolder() {
|
||||||
|
return platformProvider.getDataFolder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public Object getChimaeraWing() {
|
||||||
|
return platformProvider.getChimaeraWing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ 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;
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
@ -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()) {
|
||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ 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 org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
|
public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
|
||||||
@ -16,14 +17,14 @@ public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.gmail.nossr50.core.MetadataConstants;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -35,9 +36,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);
|
||||||
|
@ -5,7 +5,7 @@ import com.gmail.nossr50.mcMMO;
|
|||||||
import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class SaveTimerTask extends BukkitRunnable {
|
public class SaveTimerTask implements Runnable {
|
||||||
|
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ public class SaveTimerTask extends BukkitRunnable {
|
|||||||
int count = 1;
|
int count = 1;
|
||||||
|
|
||||||
for (BukkitMMOPlayer 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++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,9 @@ public class LeaderboardsCommandAsyncTask extends BukkitRunnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import com.gmail.nossr50.mcMMO;
|
|||||||
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.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -43,7 +44,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"));
|
||||||
|
@ -34,7 +34,10 @@ public class RankCommandAsyncTask extends BukkitRunnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
|||||||
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;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -37,7 +38,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() {
|
||||||
|
@ -2,10 +2,14 @@ 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 com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class DatabaseConversionTask extends BukkitRunnable {
|
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 +23,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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public class ChimaeraWingWarmup extends BukkitRunnable {
|
|||||||
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;
|
||||||
|
@ -2,6 +2,9 @@ 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 org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@ -10,8 +13,9 @@ 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 +25,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 +33,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) {
|
||||||
|
@ -4,6 +4,8 @@ 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.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;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
@ -42,7 +44,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 BukkitMMOPlayer(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 +58,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,8 +66,11 @@ 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 extends BukkitRunnable {
|
||||||
@ -91,7 +98,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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,9 +56,11 @@ public class AbilityDisableTask extends BukkitRunnable {
|
|||||||
|
|
||||||
pluginRef.getSkillTools().sendSkillMessage(player, NotificationType.SUPER_ABILITY_ALERT_OTHERS,
|
pluginRef.getSkillTools().sendSkillMessage(player, NotificationType.SUPER_ABILITY_ALERT_OTHERS,
|
||||||
pluginRef.getSkillTools().getSuperAbilityOtherPlayerDeactivationLocaleKey(superAbilityType));
|
pluginRef.getSkillTools().getSuperAbilityOtherPlayerDeactivationLocaleKey(superAbilityType));
|
||||||
new AbilityCooldownTask(pluginRef, mcMMOPlayer, superAbilityType).runTaskLater(pluginRef,
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
pluginRef.getPerkUtils().handleCooldownPerks(player,
|
.setDelay(pluginRef.getPerkUtils().handleCooldownPerks(player, (pluginRef.getSkillTools().getSuperAbilityCooldown(superAbilityType) * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)))
|
||||||
pluginRef.getSkillTools().getSuperAbilityCooldown(superAbilityType) * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR));
|
.setTask(new AbilityCooldownTask(pluginRef, mcMMOPlayer, superAbilityType))
|
||||||
|
.schedule();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resendChunkRadiusAt(Player player) {
|
private void resendChunkRadiusAt(Player player) {
|
||||||
|
@ -136,7 +136,7 @@ public class BleedTimerTask extends BukkitRunnable {
|
|||||||
// debugMessage+="Rank4Bonus=["+String.valueOf(containerEntry.getValue().bleedRank >= 3)+"], ";
|
// debugMessage+="Rank4Bonus=["+String.valueOf(containerEntry.getValue().bleedRank >= 3)+"], ";
|
||||||
|
|
||||||
|
|
||||||
pluginRef.getMobHealthBarManager().handleMobHealthbars(target, damage, pluginRef); //Update health bars
|
pluginRef.getPlatformProvider().getHealthBarManager().handleMobHealthbars(pluginRef.getPlatformProvider().getEntity(target.getUniqueId()), damage); //Update health bars
|
||||||
}
|
}
|
||||||
|
|
||||||
// debugMessage+="FullArmor=["+String.valueOf(armorCount > 3)+"], ";
|
// debugMessage+="FullArmor=["+String.valueOf(armorCount > 3)+"], ";
|
||||||
|
@ -12,6 +12,7 @@ import org.bukkit.block.data.Ageable;
|
|||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.Directional;
|
import org.bukkit.block.data.Directional;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class DelayedCropReplant extends BukkitRunnable {
|
public class DelayedCropReplant extends BukkitRunnable {
|
||||||
@ -52,7 +53,10 @@ public class DelayedCropReplant extends BukkitRunnable {
|
|||||||
BlockState currentState = cropBlock.getState();
|
BlockState currentState = cropBlock.getState();
|
||||||
|
|
||||||
//Remove the metadata marking the block as recently replanted
|
//Remove the metadata marking the block as recently replanted
|
||||||
new markPlantAsOld(blockBreakEvent.getBlock().getLocation()).runTaskLater(pluginRef, 10);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(10L)
|
||||||
|
.setTask(new markPlantAsOld(blockBreakEvent.getBlock().getLocation()))
|
||||||
|
.schedule();
|
||||||
|
|
||||||
if(blockBreakEvent.isCancelled()) {
|
if(blockBreakEvent.isCancelled()) {
|
||||||
wasImmaturePlant = true;
|
wasImmaturePlant = true;
|
||||||
@ -112,8 +116,8 @@ public class DelayedCropReplant extends BukkitRunnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
Block cropBlock = cropLoc.getBlock();
|
Block cropBlock = cropLoc.getBlock();
|
||||||
|
|
||||||
if(cropBlock.getMetadata(MetadataConstants.REPLANT_META_KEY).size() > 0) {
|
if(cropBlock.getMetadata(MetadataConstants.REPLANT_META_KEY.getKey()).size() > 0) {
|
||||||
cropBlock.setMetadata(MetadataConstants.REPLANT_META_KEY, new RecentlyReplantedCropMeta(pluginRef, false));
|
cropBlock.setMetadata(MetadataConstants.REPLANT_META_KEY.getKey(), new RecentlyReplantedCropMeta((Plugin) pluginRef.getPlatformProvider(), false));
|
||||||
pluginRef.getParticleEffectUtils().playFluxEffect(cropLocation);
|
pluginRef.getParticleEffectUtils().playFluxEffect(cropLocation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import org.bukkit.entity.Entity;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import org.bukkit.metadata.MetadataValue;
|
import org.bukkit.metadata.MetadataValue;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
public class AcrobaticsManager extends SkillManager {
|
public class AcrobaticsManager extends SkillManager {
|
||||||
|
|
||||||
@ -95,18 +96,18 @@ public class AcrobaticsManager extends SkillManager {
|
|||||||
if (pluginRef.getSkillTools().cooldownExpired(mcMMOPlayer.getRespawnATS(), pluginRef.getMiscTools().PLAYER_RESPAWN_COOLDOWN_SECONDS)) {
|
if (pluginRef.getSkillTools().cooldownExpired(mcMMOPlayer.getRespawnATS(), pluginRef.getMiscTools().PLAYER_RESPAWN_COOLDOWN_SECONDS)) {
|
||||||
if(!(attacker instanceof Player)) {
|
if(!(attacker instanceof Player)) {
|
||||||
//Check to see how many dodge XP rewards this mob has handed out
|
//Check to see how many dodge XP rewards this mob has handed out
|
||||||
if(attacker.hasMetadata(MetadataConstants.DODGE_TRACKER) && pluginRef.getConfigManager().getConfigExploitPrevention().isPreventAcrobaticsAbuse()) {
|
if(attacker.hasMetadata(MetadataConstants.DODGE_TRACKER.getKey()) && pluginRef.getConfigManager().getConfigExploitPrevention().isPreventAcrobaticsAbuse()) {
|
||||||
//If Dodge XP has been handed out 5 times then consider it being exploited
|
//If Dodge XP has been handed out 5 times then consider it being exploited
|
||||||
MetadataValue metadataValue = attacker.getMetadata(MetadataConstants.DODGE_TRACKER).get(0);
|
MetadataValue metadataValue = attacker.getMetadata(MetadataConstants.DODGE_TRACKER.getKey()).get(0);
|
||||||
int count = attacker.getMetadata(MetadataConstants.DODGE_TRACKER).get(0).asInt();
|
int count = attacker.getMetadata(MetadataConstants.DODGE_TRACKER.getKey()).get(0).asInt();
|
||||||
|
|
||||||
if(count <= 5) {
|
if(count <= 5) {
|
||||||
applyXpGain((float) (damage * acrobaticsBehaviour.getDodgeXpModifier()), XPGainReason.PVE);
|
applyXpGain((float) (damage * acrobaticsBehaviour.getDodgeXpModifier()), XPGainReason.PVE);
|
||||||
attacker.setMetadata(MetadataConstants.DODGE_TRACKER, new FixedMetadataValue(pluginRef, count + 1));
|
attacker.setMetadata(MetadataConstants.DODGE_TRACKER.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), count + 1));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
applyXpGain((float) (damage * acrobaticsBehaviour.getDodgeXpModifier()), XPGainReason.PVE);
|
applyXpGain((float) (damage * acrobaticsBehaviour.getDodgeXpModifier()), XPGainReason.PVE);
|
||||||
attacker.setMetadata(MetadataConstants.DODGE_TRACKER, new FixedMetadataValue(pluginRef, 1));
|
attacker.setMetadata(MetadataConstants.DODGE_TRACKER.getKey(), new FixedMetadataValue((Plugin) pluginRef.getPlatformProvider(), 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.bukkit.entity.Entity;
|
|||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
|
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;
|
||||||
|
|
||||||
@ -57,10 +58,10 @@ public class ArcheryManager extends SkillManager {
|
|||||||
*/
|
*/
|
||||||
public double distanceXpBonusMultiplier(LivingEntity target, Entity damager) {
|
public double distanceXpBonusMultiplier(LivingEntity target, Entity damager) {
|
||||||
//Hacky Fix - some plugins spawn arrows and assign them to players after the ProjectileLaunchEvent fires
|
//Hacky Fix - some plugins spawn arrows and assign them to players after the ProjectileLaunchEvent fires
|
||||||
if(!damager.hasMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY))
|
if(!damager.hasMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY.getKey()))
|
||||||
return damager.getLocation().distance(target.getLocation());
|
return damager.getLocation().distance(target.getLocation());
|
||||||
|
|
||||||
Location firedLocation = (Location) damager.getMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY).get(0).value();
|
Location firedLocation = (Location) damager.getMetadata(MetadataConstants.ARROW_DISTANCE_METAKEY.getKey()).get(0).value();
|
||||||
Location targetLocation = target.getLocation();
|
Location targetLocation = target.getLocation();
|
||||||
|
|
||||||
if (firedLocation.getWorld() != targetLocation.getWorld()) {
|
if (firedLocation.getWorld() != targetLocation.getWorld()) {
|
||||||
@ -76,9 +77,9 @@ public class ArcheryManager extends SkillManager {
|
|||||||
* @param target The {@link LivingEntity} damaged by the arrow
|
* @param target The {@link LivingEntity} damaged by the arrow
|
||||||
*/
|
*/
|
||||||
public void processArrowRetrievalActivation(LivingEntity target, Projectile projectile) {
|
public void processArrowRetrievalActivation(LivingEntity target, Projectile projectile) {
|
||||||
if(projectile.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY)) {
|
if(projectile.hasMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey())) {
|
||||||
archeryBehaviour.incrementArrowCount(target);
|
archeryBehaviour.incrementArrowCount(target);
|
||||||
projectile.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY, pluginRef); //Only 1 entity per projectile
|
projectile.removeMetadata(MetadataConstants.ARROW_TRACKER_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider()); //Only 1 entity per projectile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,10 +76,10 @@ public class FishingManager extends SkillManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setFishHookReference(FishHook fishHook) {
|
public void setFishHookReference(FishHook fishHook) {
|
||||||
if (fishHook.getMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY).size() > 0)
|
if (fishHook.getMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY.getKey()).size() > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
fishHook.setMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY, MetadataConstants.metadataValue);
|
fishHook.setMetadata(MetadataConstants.FISH_HOOK_REF_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||||
fishHookSpawnTimestamp = System.currentTimeMillis();
|
fishHookSpawnTimestamp = System.currentTimeMillis();
|
||||||
fishingRodCastTimestamp = System.currentTimeMillis();
|
fishingRodCastTimestamp = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -139,10 +140,10 @@ public class HerbalismManager extends SkillManager {
|
|||||||
if(blockBreakEvent.getBlock().getBlockData() instanceof Ageable) {
|
if(blockBreakEvent.getBlock().getBlockData() instanceof Ageable) {
|
||||||
Ageable ageableCrop = (Ageable) blockBreakEvent.getBlock().getBlockData();
|
Ageable ageableCrop = (Ageable) blockBreakEvent.getBlock().getBlockData();
|
||||||
|
|
||||||
if(blockBreakEvent.getBlock().getMetadata(MetadataConstants.REPLANT_META_KEY).size() >= 1) {
|
if(blockBreakEvent.getBlock().getMetadata(MetadataConstants.REPLANT_META_KEY.getKey()).size() >= 1) {
|
||||||
if(blockBreakEvent.getBlock().getMetadata(MetadataConstants.REPLANT_META_KEY).get(0).asBoolean()) {
|
if(blockBreakEvent.getBlock().getMetadata(MetadataConstants.REPLANT_META_KEY.getKey()).get(0).asBoolean()) {
|
||||||
if(isAgeableMature(ageableCrop)) {
|
if(isAgeableMature(ageableCrop)) {
|
||||||
blockBreakEvent.getBlock().removeMetadata(MetadataConstants.REPLANT_META_KEY, pluginRef);
|
blockBreakEvent.getBlock().removeMetadata(MetadataConstants.REPLANT_META_KEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||||
} else {
|
} else {
|
||||||
//Crop is recently replanted to back out of destroying it
|
//Crop is recently replanted to back out of destroying it
|
||||||
blockBreakEvent.setCancelled(true);
|
blockBreakEvent.setCancelled(true);
|
||||||
@ -239,10 +240,10 @@ public class HerbalismManager extends SkillManager {
|
|||||||
|
|
||||||
if(delayedChorusBlocks.size() > 0) {
|
if(delayedChorusBlocks.size() > 0) {
|
||||||
//Check XP for chorus blocks
|
//Check XP for chorus blocks
|
||||||
DelayedHerbalismXPCheckTask delayedHerbalismXPCheckTask = new DelayedHerbalismXPCheckTask(mcMMOPlayer, delayedChorusBlocks);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(20L) //Large delay because the tree takes a while to break
|
||||||
//Large delay because the tree takes a while to break
|
.setTask(new DelayedHerbalismXPCheckTask(mcMMOPlayer, delayedChorusBlocks))
|
||||||
delayedHerbalismXPCheckTask.runTaskLater(pluginRef, 20); //Calculate Chorus XP + Bonus Drops 1 tick later
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -416,8 +417,8 @@ public class HerbalismManager extends SkillManager {
|
|||||||
BlockState brokenBlockNewState = blockSnapshot.getBlockRef().getState();
|
BlockState brokenBlockNewState = blockSnapshot.getBlockRef().getState();
|
||||||
|
|
||||||
//Remove metadata from the snapshot of blocks
|
//Remove metadata from the snapshot of blocks
|
||||||
if(brokenBlockNewState.hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY)) {
|
if(brokenBlockNewState.hasMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey())) {
|
||||||
brokenBlockNewState.removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY, pluginRef);
|
brokenBlockNewState.removeMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
//If the block is not AIR that means it wasn't broken
|
//If the block is not AIR that means it wasn't broken
|
||||||
@ -676,8 +677,11 @@ public class HerbalismManager extends SkillManager {
|
|||||||
*/
|
*/
|
||||||
private void startReplantTask(int desiredCropAge, BlockBreakEvent blockBreakEvent, BlockState cropState, boolean isImmature) {
|
private void startReplantTask(int desiredCropAge, BlockBreakEvent blockBreakEvent, BlockState cropState, boolean isImmature) {
|
||||||
//Mark the plant as recently replanted to avoid accidental breakage
|
//Mark the plant as recently replanted to avoid accidental breakage
|
||||||
new DelayedCropReplant(pluginRef, blockBreakEvent, cropState, desiredCropAge, isImmature).runTaskLater(pluginRef, 20 * 2);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
blockBreakEvent.getBlock().setMetadata(MetadataConstants.REPLANT_META_KEY, new RecentlyReplantedCropMeta(pluginRef, true));
|
.setDelay(20 * 2L)
|
||||||
|
.setTask(new DelayedCropReplant(pluginRef, blockBreakEvent, cropState, desiredCropAge, isImmature))
|
||||||
|
.schedule();
|
||||||
|
blockBreakEvent.getBlock().setMetadata(MetadataConstants.REPLANT_META_KEY.getKey(), new RecentlyReplantedCropMeta((Plugin) pluginRef.getPlatformProvider(), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -124,15 +124,16 @@ public class MiningManager extends SkillManager {
|
|||||||
pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.SUPER_ABILITY, "miningBehaviour.Blast.Boom");
|
pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.SUPER_ABILITY, "miningBehaviour.Blast.Boom");
|
||||||
//player.sendMessage(pluginRef.getLocaleManager().getString("miningBehaviour.Blast.Boom"));
|
//player.sendMessage(pluginRef.getLocaleManager().getString("miningBehaviour.Blast.Boom"));
|
||||||
|
|
||||||
tnt.setMetadata(MetadataConstants.TNT_TRACKING_METAKEY, mcMMOPlayer.getPlayerMetadata());
|
tnt.setMetadata(MetadataConstants.TNT_TRACKING_METAKEY.getKey(), mcMMOPlayer.getPlayerMetadata());
|
||||||
tnt.setFuseTicks(0);
|
tnt.setFuseTicks(0);
|
||||||
targetBlock.setType(Material.AIR);
|
targetBlock.setType(Material.AIR);
|
||||||
|
|
||||||
mcMMOPlayer.setAbilityDATS(SuperAbilityType.BLAST_MINING, System.currentTimeMillis());
|
mcMMOPlayer.setAbilityDATS(SuperAbilityType.BLAST_MINING, System.currentTimeMillis());
|
||||||
mcMMOPlayer.setAbilityInformed(SuperAbilityType.BLAST_MINING, false);
|
mcMMOPlayer.setAbilityInformed(SuperAbilityType.BLAST_MINING, false);
|
||||||
new AbilityCooldownTask(pluginRef, mcMMOPlayer, SuperAbilityType.BLAST_MINING)
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
.runTaskLater(pluginRef, pluginRef.getSkillTools().getSuperAbilityCooldown(SuperAbilityType.BLAST_MINING)
|
.setDelay( pluginRef.getSkillTools().getSuperAbilityCooldown(SuperAbilityType.BLAST_MINING) * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||||
* pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
.setTask(new AbilityCooldownTask(pluginRef, mcMMOPlayer, SuperAbilityType.BLAST_MINING))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -417,10 +417,10 @@ public class TamingManager extends SkillManager {
|
|||||||
|
|
||||||
private void applyMetaDataToCOTWEntity(LivingEntity callOfWildEntity) {
|
private void applyMetaDataToCOTWEntity(LivingEntity callOfWildEntity) {
|
||||||
//This is used to prevent XP gains for damaging this entity
|
//This is used to prevent XP gains for damaging this entity
|
||||||
callOfWildEntity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY, MetadataConstants.metadataValue);
|
callOfWildEntity.setMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||||
|
|
||||||
//This helps identify the entity as being summoned by COTW
|
//This helps identify the entity as being summoned by COTW
|
||||||
callOfWildEntity.setMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON, MetadataConstants.metadataValue);
|
callOfWildEntity.setMetadata(MetadataConstants.COTW_TEMPORARY_SUMMON.getKey(), MetadataConstants.metadataValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,6 +2,8 @@ package com.gmail.nossr50.skills.taming;
|
|||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
|
import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
|
||||||
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.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -9,12 +11,12 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
|||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class TrackedTamingEntity extends BukkitRunnable {
|
public class TrackedTamingEntity implements Consumer<Task> {
|
||||||
private LivingEntity livingEntity;
|
private LivingEntity livingEntity;
|
||||||
private final CallOfTheWildType callOfTheWildType;
|
private final CallOfTheWildType callOfTheWildType;
|
||||||
private UUID id;
|
private UUID id;
|
||||||
private int length;
|
|
||||||
private final TamingManager tamingManagerRef;
|
private final TamingManager tamingManagerRef;
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
|
||||||
@ -28,13 +30,15 @@ public class TrackedTamingEntity extends BukkitRunnable {
|
|||||||
int tamingCOTWLength = pluginRef.getConfigManager().getConfigTaming().getSubSkills().getCallOfTheWild().getCOTWSummon(callOfTheWildType).getSummonLifespan();
|
int tamingCOTWLength = pluginRef.getConfigManager().getConfigTaming().getSubSkills().getCallOfTheWild().getCOTWSummon(callOfTheWildType).getSummonLifespan();
|
||||||
|
|
||||||
if (tamingCOTWLength > 0) {
|
if (tamingCOTWLength > 0) {
|
||||||
this.length = tamingCOTWLength * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR;
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
this.runTaskLater(pluginRef, length);
|
.setDelay(tamingCOTWLength * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||||
|
.setTask(this)
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void accept(Task task) {
|
||||||
if (livingEntity.isValid()) {
|
if (livingEntity.isValid()) {
|
||||||
Location location = livingEntity.getLocation();
|
Location location = livingEntity.getLocation();
|
||||||
location.getWorld().playSound(location, Sound.BLOCK_FIRE_EXTINGUISH, 0.8F, 0.8F);
|
location.getWorld().playSound(location, Sound.BLOCK_FIRE_EXTINGUISH, 0.8F, 0.8F);
|
||||||
@ -48,7 +52,7 @@ public class TrackedTamingEntity extends BukkitRunnable {
|
|||||||
livingEntity.remove();
|
livingEntity.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cancel();
|
task.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
public CallOfTheWildType getCallOfTheWildType() {
|
public CallOfTheWildType getCallOfTheWildType() {
|
||||||
|
@ -110,7 +110,7 @@ public class UnarmedManager extends SkillManager {
|
|||||||
Item item = pluginRef.getMiscTools().dropItem(defender.getLocation(), defender.getInventory().getItemInMainHand());
|
Item item = pluginRef.getMiscTools().dropItem(defender.getLocation(), defender.getInventory().getItemInMainHand());
|
||||||
|
|
||||||
if (item != null && pluginRef.getConfigManager().getConfigUnarmed().doesDisarmPreventTheft()) {
|
if (item != null && pluginRef.getConfigManager().getConfigUnarmed().doesDisarmPreventTheft()) {
|
||||||
item.setMetadata(MetadataConstants.DISARMED_ITEM_METAKEY, pluginRef.getUserManager().getPlayer(defender).getPlayerMetadata());
|
item.setMetadata(MetadataConstants.DISARMED_ITEM_METAKEY.getKey(), pluginRef.getUserManager().getPlayer(defender).getPlayerMetadata());
|
||||||
}
|
}
|
||||||
|
|
||||||
defender.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
defender.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
@ -30,9 +30,9 @@ public final class BlockTools {
|
|||||||
*/
|
*/
|
||||||
public void markDropsAsBonus(BlockState blockState, boolean triple) {
|
public void markDropsAsBonus(BlockState blockState, boolean triple) {
|
||||||
if (triple)
|
if (triple)
|
||||||
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY, new BonusDropMeta(2, pluginRef));
|
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), new BonusDropMeta(2, pluginRef));
|
||||||
else
|
else
|
||||||
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY, new BonusDropMeta(1, pluginRef));
|
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), new BonusDropMeta(1, pluginRef));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,7 +42,7 @@ public final class BlockTools {
|
|||||||
* @param amount amount of extra items to drop
|
* @param amount amount of extra items to drop
|
||||||
*/
|
*/
|
||||||
public void markDropsAsBonus(BlockState blockState, int amount) {
|
public void markDropsAsBonus(BlockState blockState, int amount) {
|
||||||
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY, new BonusDropMeta(amount, pluginRef));
|
blockState.setMetadata(MetadataConstants.BONUS_DROPS_METAKEY.getKey(), new BonusDropMeta(amount, pluginRef));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,7 +94,10 @@ public final class ChimaeraWing {
|
|||||||
|
|
||||||
if (warmup > 0) {
|
if (warmup > 0) {
|
||||||
pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.ITEM_MESSAGE, "Teleport.Commencing", String.valueOf(warmup));
|
pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.ITEM_MESSAGE, "Teleport.Commencing", String.valueOf(warmup));
|
||||||
new ChimaeraWingWarmup(pluginRef, mcMMOPlayer).runTaskLater(pluginRef, 20 * warmup);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(20 * warmup)
|
||||||
|
.setTask(new ChimaeraWingWarmup(pluginRef, mcMMOPlayer))
|
||||||
|
.schedule();
|
||||||
} else {
|
} else {
|
||||||
chimaeraExecuteTeleport();
|
chimaeraExecuteTeleport();
|
||||||
}
|
}
|
||||||
|
@ -165,14 +165,14 @@ public class EventManager {
|
|||||||
|
|
||||||
public McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, PrimarySkillType primarySkillType, SuperAbilityType superAbilityType) {
|
public McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, PrimarySkillType primarySkillType, SuperAbilityType superAbilityType) {
|
||||||
McMMOPlayerAbilityActivateEvent event = new McMMOPlayerAbilityActivateEvent(player, primarySkillType, superAbilityType);
|
McMMOPlayerAbilityActivateEvent event = new McMMOPlayerAbilityActivateEvent(player, primarySkillType, superAbilityType);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerProfileLoadEvent callPlayerProfileLoadEvent(Player player, PlayerProfile profile){
|
public McMMOPlayerProfileLoadEvent callPlayerProfileLoadEvent(Player player, PlayerProfile profile){
|
||||||
McMMOPlayerProfileLoadEvent event = new McMMOPlayerProfileLoadEvent(player, profile);
|
McMMOPlayerProfileLoadEvent event = new McMMOPlayerProfileLoadEvent(player, profile);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
@ -187,7 +187,7 @@ public class EventManager {
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public SubSkillEvent callSubSkillEvent(Player player, SubSkillType subSkillType, PrimarySkillType primarySkillType) {
|
public SubSkillEvent callSubSkillEvent(Player player, SubSkillType subSkillType, PrimarySkillType primarySkillType) {
|
||||||
SubSkillEvent event = new SubSkillEvent(player, subSkillType, primarySkillType);
|
SubSkillEvent event = new SubSkillEvent(player, subSkillType, primarySkillType);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
@ -201,20 +201,20 @@ public class EventManager {
|
|||||||
*/
|
*/
|
||||||
public SubSkillEvent callSubSkillEvent(Player player, AbstractSubSkill abstractSubSkill) {
|
public SubSkillEvent callSubSkillEvent(Player player, AbstractSubSkill abstractSubSkill) {
|
||||||
SubSkillEvent event = new SubSkillEvent(player, abstractSubSkill);
|
SubSkillEvent event = new SubSkillEvent(player, abstractSubSkill);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void callFakeArmSwingEvent(Player player) {
|
public void callFakeArmSwingEvent(Player player) {
|
||||||
FakePlayerAnimationEvent event = new FakePlayerAnimationEvent(player);
|
FakePlayerAnimationEvent event = new FakePlayerAnimationEvent(player);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean tryLevelChangeEvent(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
|
public boolean tryLevelChangeEvent(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
|
||||||
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ public class EventManager {
|
|||||||
|
|
||||||
public boolean tryLevelEditEvent(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason, int oldLevel) {
|
public boolean tryLevelEditEvent(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason, int oldLevel) {
|
||||||
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged - oldLevel, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged - oldLevel, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ public class EventManager {
|
|||||||
* @return true if the event wasn't cancelled, false otherwise
|
* @return true if the event wasn't cancelled, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean simulateBlockBreak(Block block, Player player, boolean shouldArmSwing) {
|
public boolean simulateBlockBreak(Block block, Player player, boolean shouldArmSwing) {
|
||||||
PluginManager pluginManager = pluginRef.getServer().getPluginManager();
|
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
||||||
|
|
||||||
// Support for NoCheat
|
// Support for NoCheat
|
||||||
if (shouldArmSwing) {
|
if (shouldArmSwing) {
|
||||||
@ -276,7 +276,7 @@ public class EventManager {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(teleportingPlayer, targetPlayer, mcMMOPlayer.getParty().getName());
|
McMMOPartyTeleportEvent event = new McMMOPartyTeleportEvent(teleportingPlayer, targetPlayer, mcMMOPlayer.getParty().getName());
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
@ -292,7 +292,7 @@ public class EventManager {
|
|||||||
|
|
||||||
public boolean handlePartyXpGainEvent(Party party, double xpGained) {
|
public boolean handlePartyXpGainEvent(Party party, double xpGained) {
|
||||||
McMMOPartyXpGainEvent event = new McMMOPartyXpGainEvent(party, xpGained);
|
McMMOPartyXpGainEvent event = new McMMOPartyXpGainEvent(party, xpGained);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ public class EventManager {
|
|||||||
|
|
||||||
public boolean handlePartyLevelChangeEvent(Party party, int levelsChanged, double xpRemoved) {
|
public boolean handlePartyLevelChangeEvent(Party party, int levelsChanged, double xpRemoved) {
|
||||||
McMMOPartyLevelUpEvent event = new McMMOPartyLevelUpEvent(party, levelsChanged);
|
McMMOPartyLevelUpEvent event = new McMMOPartyLevelUpEvent(party, levelsChanged);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -320,7 +320,7 @@ public class EventManager {
|
|||||||
|
|
||||||
public boolean handleXpGainEvent(Player player, PrimarySkillType skill, double xpGained, XPGainReason xpGainReason) {
|
public boolean handleXpGainEvent(Player player, PrimarySkillType skill, double xpGained, XPGainReason xpGainReason) {
|
||||||
McMMOPlayerXpGainEvent event = new McMMOPlayerXpGainEvent(player, skill, getSkillLevel(player, skill), xpGained, xpGainReason);
|
McMMOPlayerXpGainEvent event = new McMMOPlayerXpGainEvent(player, skill, getSkillLevel(player, skill), xpGained, xpGainReason);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -337,7 +337,7 @@ public class EventManager {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
McMMOPlayerStatLossEvent event = new McMMOPlayerStatLossEvent(player, levelChanged, experienceChanged);
|
McMMOPlayerStatLossEvent event = new McMMOPlayerStatLossEvent(player, levelChanged, experienceChanged);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
boolean isCancelled = event.isCancelled();
|
boolean isCancelled = event.isCancelled();
|
||||||
|
|
||||||
@ -369,8 +369,8 @@ public class EventManager {
|
|||||||
public boolean handleVampirismEvent(Player killer, Player victim, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
public boolean handleVampirismEvent(Player killer, Player victim, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||||
McMMOPlayerVampirismEvent eventKiller = new McMMOPlayerVampirismEvent(killer, false, levelChanged, experienceChanged);
|
McMMOPlayerVampirismEvent eventKiller = new McMMOPlayerVampirismEvent(killer, false, levelChanged, experienceChanged);
|
||||||
McMMOPlayerVampirismEvent eventVictim = new McMMOPlayerVampirismEvent(victim, true, levelChanged, experienceChanged);
|
McMMOPlayerVampirismEvent eventVictim = new McMMOPlayerVampirismEvent(victim, true, levelChanged, experienceChanged);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(eventKiller);
|
Bukkit.getServer().getPluginManager().callEvent(eventKiller);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(eventVictim);
|
Bukkit.getServer().getPluginManager().callEvent(eventVictim);
|
||||||
|
|
||||||
boolean isCancelled = eventKiller.isCancelled() || eventVictim.isCancelled();
|
boolean isCancelled = eventKiller.isCancelled() || eventVictim.isCancelled();
|
||||||
|
|
||||||
@ -418,47 +418,47 @@ public class EventManager {
|
|||||||
|
|
||||||
public void callAbilityDeactivateEvent(Player player, SuperAbilityType superAbilityType) {
|
public void callAbilityDeactivateEvent(Player player, SuperAbilityType superAbilityType) {
|
||||||
McMMOPlayerAbilityDeactivateEvent event = new McMMOPlayerAbilityDeactivateEvent(player, pluginRef.getSkillTools().getPrimarySkillBySuperAbility(superAbilityType), superAbilityType);
|
McMMOPlayerAbilityDeactivateEvent event = new McMMOPlayerAbilityDeactivateEvent(player, pluginRef.getSkillTools().getPrimarySkillBySuperAbility(superAbilityType), superAbilityType);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerFishingTreasureEvent callFishingTreasureEvent(Player player, ItemStack treasureDrop, int treasureXp, Map<Enchantment, Integer> enchants) {
|
public McMMOPlayerFishingTreasureEvent callFishingTreasureEvent(Player player, ItemStack treasureDrop, int treasureXp, Map<Enchantment, Integer> enchants) {
|
||||||
McMMOPlayerFishingTreasureEvent event = enchants.isEmpty() ? new McMMOPlayerFishingTreasureEvent(player, treasureDrop, treasureXp) : new McMMOPlayerMagicHunterEvent(player, treasureDrop, treasureXp, enchants);
|
McMMOPlayerFishingTreasureEvent event = enchants.isEmpty() ? new McMMOPlayerFishingTreasureEvent(player, treasureDrop, treasureXp) : new McMMOPlayerMagicHunterEvent(player, treasureDrop, treasureXp, enchants);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void callFakeFishEvent(Player player, FishHook hook) {
|
public void callFakeFishEvent(Player player, FishHook hook) {
|
||||||
FakePlayerFishEvent event = new FakePlayerFishEvent(player, null, hook, PlayerFishEvent.State.FISHING);
|
FakePlayerFishEvent event = new FakePlayerFishEvent(player, null, hook, PlayerFishEvent.State.FISHING);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerRepairCheckEvent callRepairCheckEvent(Player player, short durability, ItemStack repairMaterial, ItemStack repairedObject) {
|
public McMMOPlayerRepairCheckEvent callRepairCheckEvent(Player player, short durability, ItemStack repairMaterial, ItemStack repairedObject) {
|
||||||
McMMOPlayerRepairCheckEvent event = new McMMOPlayerRepairCheckEvent(player, durability, repairMaterial, repairedObject);
|
McMMOPlayerRepairCheckEvent event = new McMMOPlayerRepairCheckEvent(player, durability, repairMaterial, repairedObject);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerPreDeathPenaltyEvent callPreDeathPenaltyEvent(Player player) {
|
public McMMOPlayerPreDeathPenaltyEvent callPreDeathPenaltyEvent(Player player) {
|
||||||
McMMOPlayerPreDeathPenaltyEvent event = new McMMOPlayerPreDeathPenaltyEvent(player);
|
McMMOPlayerPreDeathPenaltyEvent event = new McMMOPlayerPreDeathPenaltyEvent(player);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerDisarmEvent callDisarmEvent(Player defender) {
|
public McMMOPlayerDisarmEvent callDisarmEvent(Player defender) {
|
||||||
McMMOPlayerDisarmEvent event = new McMMOPlayerDisarmEvent(defender);
|
McMMOPlayerDisarmEvent event = new McMMOPlayerDisarmEvent(defender);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
public McMMOPlayerSalvageCheckEvent callSalvageCheckEvent(Player player, ItemStack salvageMaterial, ItemStack salvageResults, ItemStack enchantedBook) {
|
public McMMOPlayerSalvageCheckEvent callSalvageCheckEvent(Player player, ItemStack salvageMaterial, ItemStack salvageResults, ItemStack enchantedBook) {
|
||||||
McMMOPlayerSalvageCheckEvent event = new McMMOPlayerSalvageCheckEvent(player, salvageMaterial, salvageResults, enchantedBook);
|
McMMOPlayerSalvageCheckEvent event = new McMMOPlayerSalvageCheckEvent(player, salvageMaterial, salvageResults, enchantedBook);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package com.gmail.nossr50.util;
|
|||||||
import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory;
|
import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory;
|
||||||
import com.gmail.nossr50.datatypes.skills.ItemType;
|
import com.gmail.nossr50.datatypes.skills.ItemType;
|
||||||
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.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -636,7 +638,7 @@ public final class ItemTools {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Recipe recipe : pluginRef.getServer().getRecipesFor(item)) {
|
for (Recipe recipe : Bukkit.getServer().getRecipesFor(item)) {
|
||||||
if (recipe instanceof FurnaceRecipe
|
if (recipe instanceof FurnaceRecipe
|
||||||
&& ((FurnaceRecipe) recipe).getInput().getType().isBlock()
|
&& ((FurnaceRecipe) recipe).getInput().getType().isBlock()
|
||||||
&& MaterialUtils.isOre(((FurnaceRecipe) recipe).getInput().getType())) {
|
&& MaterialUtils.isOre(((FurnaceRecipe) recipe).getInput().getType())) {
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
package com.gmail.nossr50.util;
|
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
|
||||||
|
|
||||||
import java.util.logging.Filter;
|
|
||||||
import java.util.logging.LogRecord;
|
|
||||||
|
|
||||||
public class LogFilter implements Filter {
|
|
||||||
private boolean debug;
|
|
||||||
|
|
||||||
public LogFilter(mcMMO plugin) {
|
|
||||||
// Doing a config loading lite here, because we can't depend on the config loader to have loaded before any debug messages are sent
|
|
||||||
debug = plugin.getConfig().getBoolean("General.Verbose_Logging");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isLoggable(LogRecord record) {
|
|
||||||
return !(record.getMessage().contains("[Debug]") && !debug);
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,6 +3,7 @@ package com.gmail.nossr50.util;
|
|||||||
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.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.PluginDescriptionFile;
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
@ -15,7 +16,7 @@ public final class MessageOfTheDayUtils {
|
|||||||
public MessageOfTheDayUtils(mcMMO pluginRef) {
|
public MessageOfTheDayUtils(mcMMO pluginRef) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
PERK_PREFIX = pluginRef.getLocaleManager().getString("MOTD.PerksPrefix") + " ";
|
PERK_PREFIX = pluginRef.getLocaleManager().getString("MOTD.PerksPrefix") + " ";
|
||||||
pluginDescription = pluginRef.getDescription();
|
pluginDescription = ((Plugin) pluginRef.getPlatformProvider()).getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void displayAll(Player player) {
|
public void displayAll(Player player) {
|
||||||
|
@ -4,6 +4,8 @@ import com.gmail.nossr50.events.items.McMMOItemSpawnEvent;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
@ -18,7 +20,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
public final class MiscTools {
|
public final class MiscTools {
|
||||||
public final int TIME_CONVERSION_FACTOR = 1000;
|
public final int TIME_CONVERSION_FACTOR = 1000;
|
||||||
public final int TICK_CONVERSION_FACTOR = 20;
|
public final long TICK_CONVERSION_FACTOR = 20;
|
||||||
public final int PLAYER_RESPAWN_COOLDOWN_SECONDS = 5;
|
public final int PLAYER_RESPAWN_COOLDOWN_SECONDS = 5;
|
||||||
public final double SKILL_MESSAGE_MAX_SENDING_DISTANCE = 10.0;
|
public final double SKILL_MESSAGE_MAX_SENDING_DISTANCE = 10.0;
|
||||||
public final Set<String> modNames = ImmutableSet.of("LOTR", "BUILDCRAFT", "ENDERIO", "ENHANCEDBIOMES", "IC2", "METALLURGY", "FORESTRY", "GALACTICRAFT", "RAILCRAFT", "TWILIGHTFOREST", "THAUMCRAFT", "GRAVESTONEMOD", "GROWTHCRAFT", "ARCTICMOBS", "DEMONMOBS", "INFERNOMOBS", "SWAMPMOBS", "MARICULTURE", "MINESTRAPPOLATION");
|
public final Set<String> modNames = ImmutableSet.of("LOTR", "BUILDCRAFT", "ENDERIO", "ENHANCEDBIOMES", "IC2", "METALLURGY", "FORESTRY", "GALACTICRAFT", "RAILCRAFT", "TWILIGHTFOREST", "THAUMCRAFT", "GRAVESTONEMOD", "GROWTHCRAFT", "ARCTICMOBS", "DEMONMOBS", "INFERNOMOBS", "SWAMPMOBS", "MARICULTURE", "MINESTRAPPOLATION");
|
||||||
@ -124,7 +126,7 @@ public final class MiscTools {
|
|||||||
|
|
||||||
// We can't get the item until we spawn it and we want to make it cancellable, so we have a custom event.
|
// We can't get the item until we spawn it and we want to make it cancellable, so we have a custom event.
|
||||||
McMMOItemSpawnEvent event = new McMMOItemSpawnEvent(location, itemStack);
|
McMMOItemSpawnEvent event = new McMMOItemSpawnEvent(location, itemStack);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return null;
|
return null;
|
||||||
@ -169,7 +171,7 @@ public final class MiscTools {
|
|||||||
|
|
||||||
// We can't get the item until we spawn it and we want to make it cancellable, so we have a custom event.
|
// We can't get the item until we spawn it and we want to make it cancellable, so we have a custom event.
|
||||||
McMMOItemSpawnEvent event = new McMMOItemSpawnEvent(spawnLocation, clonedItem);
|
McMMOItemSpawnEvent event = new McMMOItemSpawnEvent(spawnLocation, clonedItem);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
//Something cancelled the event so back out
|
//Something cancelled the event so back out
|
||||||
if (event.isCancelled() || event.getItemStack() == null) {
|
if (event.isCancelled() || event.getItemStack() == null) {
|
||||||
@ -191,11 +193,14 @@ public final class MiscTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void profileCleanup(String playerName) {
|
public void profileCleanup(String playerName) {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
pluginRef.getUserManager().remove(player);
|
pluginRef.getUserManager().remove(player);
|
||||||
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()
|
||||||
|
.setDelay(1L) // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
|
.setTask(new PlayerProfileLoadingTask(pluginRef, player))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,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.datatypes.skills.subskills.AbstractSubSkill;
|
import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -512,7 +514,7 @@ public final class PermissionTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void generateWorldTeleportPermissions() {
|
public void generateWorldTeleportPermissions() {
|
||||||
Server server = pluginRef.getServer();
|
Server server = Bukkit.getServer();
|
||||||
PluginManager pluginManager = server.getPluginManager();
|
PluginManager pluginManager = server.getPluginManager();
|
||||||
|
|
||||||
for (World world : server.getWorlds()) {
|
for (World world : server.getWorlds()) {
|
||||||
@ -526,7 +528,7 @@ public final class PermissionTools {
|
|||||||
*/
|
*/
|
||||||
public void addCustomXPPerks() {
|
public void addCustomXPPerks() {
|
||||||
pluginRef.getLogger().info("Registering custom XP perks with server software...");
|
pluginRef.getLogger().info("Registering custom XP perks with server software...");
|
||||||
PluginManager pluginManager = pluginRef.getServer().getPluginManager();
|
PluginManager pluginManager = Bukkit.getServer().getPluginManager();
|
||||||
|
|
||||||
for (CustomXPPerk customXPPerk : pluginRef.getConfigManager().getConfigExperience().getCustomXPBoosts()) {
|
for (CustomXPPerk customXPPerk : pluginRef.getConfigManager().getConfigExperience().getCustomXPBoosts()) {
|
||||||
Permission permission = new Permission(customXPPerk.getPerkPermissionAddress());
|
Permission permission = new Permission(customXPPerk.getPerkPermissionAddress());
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.gmail.nossr50.util.blockmeta;
|
package com.gmail.nossr50.util.blockmeta;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
@ -165,7 +167,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveAll() {
|
public void saveAll() {
|
||||||
for (World world : pluginRef.getServer().getWorlds()) {
|
for (World world : Bukkit.getServer().getWorlds()) {
|
||||||
saveWorld(world);
|
saveWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,7 +175,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
@Override
|
@Override
|
||||||
public void unloadAll() {
|
public void unloadAll() {
|
||||||
saveAll();
|
saveAll();
|
||||||
for (World world : pluginRef.getServer().getWorlds()) {
|
for (World world : Bukkit.getServer().getWorlds()) {
|
||||||
unloadWorld(world);
|
unloadWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -274,7 +276,7 @@ public class HashChunkletManager implements ChunkletManager {
|
|||||||
for (String key : store.keySet()) {
|
for (String key : store.keySet()) {
|
||||||
if (store.get(key).isEmpty()) {
|
if (store.get(key).isEmpty()) {
|
||||||
String[] info = key.split(",");
|
String[] info = key.split(",");
|
||||||
File dataDir = new File(pluginRef.getServer().getWorld(info[0]).getWorldFolder(), "mcmmo_data");
|
File dataDir = new File(Bukkit.getServer().getWorld(info[0]).getWorldFolder(), "mcmmo_data");
|
||||||
|
|
||||||
File cxDir = new File(dataDir, "" + info[1]);
|
File cxDir = new File(dataDir, "" + info[1]);
|
||||||
if (!cxDir.exists()) {
|
if (!cxDir.exists()) {
|
||||||
|
@ -2,6 +2,8 @@ package com.gmail.nossr50.util.blockmeta.chunkmeta;
|
|||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.blockmeta.conversion.BlockStoreConversionZDirectory;
|
import com.gmail.nossr50.util.blockmeta.conversion.BlockStoreConversionZDirectory;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
@ -255,7 +257,7 @@ public class HashChunkManager implements ChunkManager {
|
|||||||
public synchronized void saveAll() {
|
public synchronized void saveAll() {
|
||||||
closeAll();
|
closeAll();
|
||||||
|
|
||||||
for (World world : pluginRef.getServer().getWorlds()) {
|
for (World world : Bukkit.getServer().getWorlds()) {
|
||||||
saveWorld(world);
|
saveWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -264,7 +266,7 @@ public class HashChunkManager implements ChunkManager {
|
|||||||
public synchronized void unloadAll() {
|
public synchronized void unloadAll() {
|
||||||
closeAll();
|
closeAll();
|
||||||
|
|
||||||
for (World world : pluginRef.getServer().getWorlds()) {
|
for (World world : Bukkit.getServer().getWorlds()) {
|
||||||
unloadWorld(world);
|
unloadWorld(world);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -434,7 +436,7 @@ public class HashChunkManager implements ChunkManager {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (converter.taskID >= 0) {
|
if (converter.task != null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,24 +2,25 @@ package com.gmail.nossr50.util.blockmeta.conversion;
|
|||||||
|
|
||||||
import com.gmail.nossr50.core.ChunkConversionOptions;
|
import com.gmail.nossr50.core.ChunkConversionOptions;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
|
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class BlockStoreConversionMain implements Runnable {
|
public class BlockStoreConversionMain implements Runnable {
|
||||||
BukkitScheduler scheduler;
|
|
||||||
File dataDir;
|
File dataDir;
|
||||||
File[] xDirs;
|
File[] xDirs;
|
||||||
BlockStoreConversionXDirectory[] converters;
|
BlockStoreConversionXDirectory[] converters;
|
||||||
private int taskID;
|
private int taskID;
|
||||||
private org.bukkit.World world;
|
private org.bukkit.World world;
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
private Task task;
|
||||||
|
|
||||||
public BlockStoreConversionMain(mcMMO pluginRef, org.bukkit.World world) {
|
public BlockStoreConversionMain(mcMMO pluginRef, org.bukkit.World world) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
this.taskID = -1;
|
this.taskID = -1;
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.scheduler = pluginRef.getServer().getScheduler();
|
|
||||||
this.dataDir = new File(this.world.getWorldFolder(), "mcmmo_data");
|
this.dataDir = new File(this.world.getWorldFolder(), "mcmmo_data");
|
||||||
this.converters = new BlockStoreConversionXDirectory[ChunkConversionOptions.getConversionRate()];
|
this.converters = new BlockStoreConversionXDirectory[ChunkConversionOptions.getConversionRate()];
|
||||||
}
|
}
|
||||||
@ -29,7 +30,10 @@ public class BlockStoreConversionMain implements Runnable {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.taskID = this.scheduler.runTaskLater(pluginRef, this, 1).getTaskId();
|
this.task = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(1L)
|
||||||
|
.setTask(this)
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -69,7 +73,7 @@ public class BlockStoreConversionMain implements Runnable {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scheduler.cancelTask(this.taskID);
|
this.task.cancel();
|
||||||
this.taskID = -1;
|
this.taskID = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +90,7 @@ public class BlockStoreConversionMain implements Runnable {
|
|||||||
this.dataDir = null;
|
this.dataDir = null;
|
||||||
this.xDirs = null;
|
this.xDirs = null;
|
||||||
this.world = null;
|
this.world = null;
|
||||||
this.scheduler = null;
|
this.task = null;
|
||||||
this.converters = null;
|
this.converters = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ package com.gmail.nossr50.util.blockmeta.conversion;
|
|||||||
|
|
||||||
import com.gmail.nossr50.core.ChunkConversionOptions;
|
import com.gmail.nossr50.core.ChunkConversionOptions;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
|
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -11,26 +13,27 @@ public class BlockStoreConversionXDirectory implements Runnable {
|
|||||||
File dataDir;
|
File dataDir;
|
||||||
File[] zDirs;
|
File[] zDirs;
|
||||||
BlockStoreConversionZDirectory[] converters;
|
BlockStoreConversionZDirectory[] converters;
|
||||||
private int taskID;
|
private Task task;
|
||||||
private org.bukkit.World world;
|
private org.bukkit.World world;
|
||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
|
|
||||||
public BlockStoreConversionXDirectory(mcMMO pluginRef) {
|
public BlockStoreConversionXDirectory(mcMMO pluginRef) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
this.taskID = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start(org.bukkit.World world, File dataDir) {
|
public void start(org.bukkit.World world, File dataDir) {
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.scheduler = pluginRef.getServer().getScheduler();
|
|
||||||
this.converters = new BlockStoreConversionZDirectory[ChunkConversionOptions.getConversionRate()];
|
this.converters = new BlockStoreConversionZDirectory[ChunkConversionOptions.getConversionRate()];
|
||||||
this.dataDir = dataDir;
|
this.dataDir = dataDir;
|
||||||
|
|
||||||
if (this.taskID >= 0) {
|
if (this.task != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.taskID = this.scheduler.runTaskLater(pluginRef, this, 1).getTaskId();
|
this.task = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(1L)
|
||||||
|
.setTask(this)
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -66,12 +69,12 @@ public class BlockStoreConversionXDirectory implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void stop() {
|
public void stop() {
|
||||||
if (this.taskID < 0) {
|
if (this.task == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scheduler.cancelTask(this.taskID);
|
this.task.cancel();
|
||||||
this.taskID = -1;
|
this.task = null;
|
||||||
|
|
||||||
this.dataDir = null;
|
this.dataDir = null;
|
||||||
this.zDirs = null;
|
this.zDirs = null;
|
||||||
|
@ -1,18 +1,23 @@
|
|||||||
package com.gmail.nossr50.util.blockmeta.conversion;
|
package com.gmail.nossr50.util.blockmeta.conversion;
|
||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
import com.gmail.nossr50.util.blockmeta.ChunkletStore;
|
import com.gmail.nossr50.util.blockmeta.ChunkletStore;
|
||||||
import com.gmail.nossr50.util.blockmeta.HashChunkletManager;
|
import com.gmail.nossr50.util.blockmeta.HashChunkletManager;
|
||||||
import com.gmail.nossr50.util.blockmeta.PrimitiveChunkletStore;
|
import com.gmail.nossr50.util.blockmeta.PrimitiveChunkletStore;
|
||||||
import com.gmail.nossr50.util.blockmeta.PrimitiveExChunkletStore;
|
import com.gmail.nossr50.util.blockmeta.PrimitiveExChunkletStore;
|
||||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.HashChunkManager;
|
import com.gmail.nossr50.util.blockmeta.chunkmeta.HashChunkManager;
|
||||||
import com.gmail.nossr50.util.blockmeta.chunkmeta.PrimitiveChunkStore;
|
import com.gmail.nossr50.util.blockmeta.chunkmeta.PrimitiveChunkStore;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.scheduler.BukkitScheduler;
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class BlockStoreConversionZDirectory implements Runnable {
|
public class BlockStoreConversionZDirectory implements Consumer<Task> {
|
||||||
public int taskID, cx, cz, x, y, z, y2, xPos, zPos, cxPos, czPos;
|
public int cx, cz, x, y, z, y2, xPos, zPos, cxPos, czPos;
|
||||||
|
public Task task;
|
||||||
private String cxs, czs, chunkletName, chunkName;
|
private String cxs, czs, chunkletName, chunkName;
|
||||||
private org.bukkit.World world;
|
private org.bukkit.World world;
|
||||||
private BukkitScheduler scheduler;
|
private BukkitScheduler scheduler;
|
||||||
@ -27,26 +32,28 @@ public class BlockStoreConversionZDirectory implements Runnable {
|
|||||||
|
|
||||||
public BlockStoreConversionZDirectory(mcMMO pluginRef) {
|
public BlockStoreConversionZDirectory(mcMMO pluginRef) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
this.taskID = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start(org.bukkit.World world, File xDir, File dataDir) {
|
public void start(org.bukkit.World world, File xDir, File dataDir) {
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.scheduler = pluginRef.getServer().getScheduler();
|
this.scheduler = Bukkit.getServer().getScheduler();
|
||||||
this.manager = new HashChunkletManager(pluginRef);
|
this.manager = new HashChunkletManager(pluginRef);
|
||||||
this.newManager = (HashChunkManager) pluginRef.getPlaceStore();
|
this.newManager = (HashChunkManager) pluginRef.getPlaceStore();
|
||||||
this.dataDir = dataDir;
|
this.dataDir = dataDir;
|
||||||
this.xDir = xDir;
|
this.xDir = xDir;
|
||||||
|
|
||||||
if (this.taskID >= 0) {
|
if (this.task != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.taskID = this.scheduler.runTaskLater(pluginRef, this, 1).getTaskId();
|
this.task = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(1L)
|
||||||
|
.setTask(this)
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void accept(Task task) {
|
||||||
if (!this.dataDir.exists()) {
|
if (!this.dataDir.exists()) {
|
||||||
stop();
|
stop();
|
||||||
return;
|
return;
|
||||||
@ -165,12 +172,12 @@ public class BlockStoreConversionZDirectory implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void stop() {
|
public void stop() {
|
||||||
if (this.taskID < 0) {
|
if (this.task == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scheduler.cancelTask(taskID);
|
this.task.cancel();
|
||||||
this.taskID = -1;
|
this.task = null;
|
||||||
|
|
||||||
this.cxs = null;
|
this.cxs = null;
|
||||||
this.czs = null;
|
this.czs = null;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.util.commands;
|
package com.gmail.nossr50.util.commands;
|
||||||
|
|
||||||
import co.aikar.commands.PaperCommandManager;
|
import co.aikar.commands.CommandManager;
|
||||||
import com.gmail.nossr50.commands.*;
|
import com.gmail.nossr50.commands.*;
|
||||||
import com.gmail.nossr50.commands.admin.NBTToolsCommand;
|
import com.gmail.nossr50.commands.admin.NBTToolsCommand;
|
||||||
import com.gmail.nossr50.commands.admin.PlayerDebugCommand;
|
import com.gmail.nossr50.commands.admin.PlayerDebugCommand;
|
||||||
@ -24,6 +24,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -34,12 +35,12 @@ public final class CommandRegistrationManager {
|
|||||||
private final mcMMO pluginRef;
|
private final mcMMO pluginRef;
|
||||||
private String permissionsMessage;
|
private String permissionsMessage;
|
||||||
//NOTE: Does not actually require paper, will work for bukkit
|
//NOTE: Does not actually require paper, will work for bukkit
|
||||||
private PaperCommandManager commandManager;
|
private CommandManager commandManager;
|
||||||
|
|
||||||
public CommandRegistrationManager(mcMMO pluginRef) {
|
public CommandRegistrationManager(mcMMO pluginRef) {
|
||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
permissionsMessage = pluginRef.getLocaleManager().getString("mcMMO.NoPermission");
|
permissionsMessage = pluginRef.getLocaleManager().getString("mcMMO.NoPermission");
|
||||||
commandManager = new PaperCommandManager(pluginRef);
|
commandManager = pluginRef.getPlatformProvider().getCommandManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,7 +103,7 @@ public final class CommandRegistrationManager {
|
|||||||
|
|
||||||
PluginCommand command;
|
PluginCommand command;
|
||||||
|
|
||||||
command = pluginRef.getCommand(commandName);
|
command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand(commandName);
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.Skill", StringUtils.getCapitalized(localizedName)));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.Skill", StringUtils.getCapitalized(localizedName)));
|
||||||
command.setPermission("mcmmo.commands." + commandName);
|
command.setPermission("mcmmo.commands." + commandName);
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -177,7 +178,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerAddlevelsCommand() {
|
private void registerAddlevelsCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("addlevels");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("addlevels");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addlevels"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addlevels"));
|
||||||
command.setPermission("mcmmo.commands.addlevels;mcmmo.commands.addlevels.others");
|
command.setPermission("mcmmo.commands.addlevels;mcmmo.commands.addlevels.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -186,7 +187,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerAddxpCommand() {
|
private void registerAddxpCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("addxp");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("addxp");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addxp"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.addxp"));
|
||||||
command.setPermission("mcmmo.commands.addxp;mcmmo.commands.addxp.others");
|
command.setPermission("mcmmo.commands.addxp;mcmmo.commands.addxp.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -195,7 +196,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcgodCommand() {
|
private void registerMcgodCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcgod");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcgod");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcgod"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcgod"));
|
||||||
command.setPermission("mcmmo.commands.mcgod;mcmmo.commands.mcgod.others");
|
command.setPermission("mcmmo.commands.mcgod;mcmmo.commands.mcgod.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -204,7 +205,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMmoInfoCommand() {
|
private void registerMmoInfoCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mmoinfo");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mmoinfo");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoinfo"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoinfo"));
|
||||||
command.setPermission("mcmmo.commands.mmoinfo");
|
command.setPermission("mcmmo.commands.mmoinfo");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -213,7 +214,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcChatSpyCommand() {
|
private void registerMcChatSpyCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcchatspy");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcchatspy");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcchatspy"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcchatspy"));
|
||||||
command.setPermission("mcmmo.commands.mcchatspy;mcmmo.commands.mcchatspy.others");
|
command.setPermission("mcmmo.commands.mcchatspy;mcmmo.commands.mcchatspy.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -222,7 +223,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcrefreshCommand() {
|
private void registerMcrefreshCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcrefresh");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcrefresh");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcrefresh"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcrefresh"));
|
||||||
command.setPermission("mcmmo.commands.mcrefresh;mcmmo.commands.mcrefresh.others");
|
command.setPermission("mcmmo.commands.mcrefresh;mcmmo.commands.mcrefresh.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -231,7 +232,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMmoeditCommand() {
|
private void registerMmoeditCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mmoedit");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mmoedit");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoedit"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoedit"));
|
||||||
command.setPermission("mcmmo.commands.mmoedit;mcmmo.commands.mmoedit.others");
|
command.setPermission("mcmmo.commands.mmoedit;mcmmo.commands.mmoedit.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -240,7 +241,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcmmoReloadCommand() {
|
private void registerMcmmoReloadCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcmmoreload");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcmmoreload");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcmmoreload"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcmmoreload"));
|
||||||
command.setPermission("mcmmo.commands.reload");
|
command.setPermission("mcmmo.commands.reload");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -249,7 +250,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerSkillresetCommand() {
|
private void registerSkillresetCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("skillreset");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("skillreset");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.skillreset"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.skillreset"));
|
||||||
command.setPermission("mcmmo.commands.skillreset;mcmmo.commands.skillreset.others"); // Only need the main ones, not the individual skill ones
|
command.setPermission("mcmmo.commands.skillreset;mcmmo.commands.skillreset.others"); // Only need the main ones, not the individual skill ones
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -261,7 +262,7 @@ public final class CommandRegistrationManager {
|
|||||||
List<String> aliasList = new ArrayList<>();
|
List<String> aliasList = new ArrayList<>();
|
||||||
aliasList.add("mcxprate");
|
aliasList.add("mcxprate");
|
||||||
|
|
||||||
PluginCommand command = pluginRef.getCommand("xprate");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("xprate");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.xprate"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.xprate"));
|
||||||
command.setPermission("mcmmo.commands.xprate;mcmmo.commands.xprate.reset;mcmmo.commands.xprate.set");
|
command.setPermission("mcmmo.commands.xprate;mcmmo.commands.xprate.reset;mcmmo.commands.xprate.set");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -272,7 +273,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerInspectCommand() {
|
private void registerInspectCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("inspect");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("inspect");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.inspect"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.inspect"));
|
||||||
command.setPermission("mcmmo.commands.inspect;mcmmo.commands.inspect.far;mcmmo.commands.inspect.offline");
|
command.setPermission("mcmmo.commands.inspect;mcmmo.commands.inspect.far;mcmmo.commands.inspect.offline");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -281,7 +282,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMccooldownCommand() {
|
private void registerMccooldownCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mccooldown");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mccooldown");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mccooldown"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mccooldown"));
|
||||||
command.setPermission("mcmmo.commands.mccooldown");
|
command.setPermission("mcmmo.commands.mccooldown");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -290,7 +291,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcabilityCommand() {
|
private void registerMcabilityCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcability");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcability");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcability"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcability"));
|
||||||
command.setPermission("mcmmo.commands.mcability;mcmmo.commands.mcability.others");
|
command.setPermission("mcmmo.commands.mcability;mcmmo.commands.mcability.others");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -299,7 +300,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcmmoCommand() {
|
private void registerMcmmoCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcmmo");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcmmo");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcmmo"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcmmo"));
|
||||||
command.setPermission("mcmmo.commands.mcmmo.description;mcmmo.commands.mcmmo.help");
|
command.setPermission("mcmmo.commands.mcmmo.description;mcmmo.commands.mcmmo.help");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -309,7 +310,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcrankCommand() {
|
private void registerMcrankCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcrank");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcrank");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcrank"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcrank"));
|
||||||
command.setPermission("mcmmo.commands.mcrank;mcmmo.commands.mcrank.others;mcmmo.commands.mcrank.others.far;mcmmo.commands.mcrank.others.offline");
|
command.setPermission("mcmmo.commands.mcrank;mcmmo.commands.mcrank.others;mcmmo.commands.mcrank.others.far;mcmmo.commands.mcrank.others.offline");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -318,7 +319,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcstatsCommand() {
|
private void registerMcstatsCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcstats");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcstats");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcstats"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcstats"));
|
||||||
command.setPermission("mcmmo.commands.mcstats");
|
command.setPermission("mcmmo.commands.mcstats");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -327,7 +328,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMctopCommand() {
|
private void registerMctopCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mctop");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mctop");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mctop"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mctop"));
|
||||||
command.setPermission("mcmmo.commands.mctop"); // Only need the main one, not the individual skill ones
|
command.setPermission("mcmmo.commands.mctop"); // Only need the main one, not the individual skill ones
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -336,7 +337,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcpurgeCommand() {
|
private void registerMcpurgeCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcpurge");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcpurge");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcpurge", pluginRef.getDatabaseCleaningSettings().getOldUserCutoffMonths()));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcpurge", pluginRef.getDatabaseCleaningSettings().getOldUserCutoffMonths()));
|
||||||
command.setPermission("mcmmo.commands.mcpurge");
|
command.setPermission("mcmmo.commands.mcpurge");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -345,7 +346,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcremoveCommand() {
|
private void registerMcremoveCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcremove");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcremove");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcremove"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcremove"));
|
||||||
command.setPermission("mcmmo.commands.mcremove");
|
command.setPermission("mcmmo.commands.mcremove");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -354,7 +355,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMmoshowdbCommand() {
|
private void registerMmoshowdbCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mmoshowdb");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mmoshowdb");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoshowdb"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mmoshowdb"));
|
||||||
command.setPermission("mcmmo.commands.mmoshowdb");
|
command.setPermission("mcmmo.commands.mmoshowdb");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -363,7 +364,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcconvertCommand() {
|
private void registerMcconvertCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcconvert");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcconvert");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcconvert"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcconvert"));
|
||||||
command.setPermission("mcmmo.commands.mcconvert;mcmmo.commands.mcconvert.experience;mcmmo.commands.mcconvert.database");
|
command.setPermission("mcmmo.commands.mcconvert;mcmmo.commands.mcconvert.experience;mcmmo.commands.mcconvert.database");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -373,7 +374,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerAdminChatCommand() {
|
private void registerAdminChatCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("adminchat");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("adminchat");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.adminchat"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.adminchat"));
|
||||||
command.setPermission("mcmmo.chat.adminchat");
|
command.setPermission("mcmmo.chat.adminchat");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -384,7 +385,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerPartyChatCommand() {
|
private void registerPartyChatCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("partychat");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("partychat");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.partychat"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.partychat"));
|
||||||
command.setPermission("mcmmo.chat.partychat;mcmmo.commands.party");
|
command.setPermission("mcmmo.chat.partychat;mcmmo.commands.party");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -395,7 +396,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerPartyCommand() {
|
private void registerPartyCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("party");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("party");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.party"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.party"));
|
||||||
command.setPermission("mcmmo.commands.party;mcmmo.commands.party.accept;mcmmo.commands.party.create;mcmmo.commands.party.disband;" +
|
command.setPermission("mcmmo.commands.party;mcmmo.commands.party.accept;mcmmo.commands.party.create;mcmmo.commands.party.disband;" +
|
||||||
"mcmmo.commands.party.xpshare;mcmmo.commands.party.invite;mcmmo.commands.party.itemshare;mcmmo.commands.party.join;" +
|
"mcmmo.commands.party.xpshare;mcmmo.commands.party.invite;mcmmo.commands.party.itemshare;mcmmo.commands.party.join;" +
|
||||||
@ -406,7 +407,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerPtpCommand() {
|
private void registerPtpCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("ptp");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("ptp");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.ptp"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.ptp"));
|
||||||
command.setPermission("mcmmo.commands.ptp"); // Only need the main one, not the individual ones for toggle/accept/acceptall
|
command.setPermission("mcmmo.commands.ptp"); // Only need the main one, not the individual ones for toggle/accept/acceptall
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -436,7 +437,7 @@ public final class CommandRegistrationManager {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
private void registerMcnotifyCommand() {
|
private void registerMcnotifyCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcnotify");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcnotify");
|
||||||
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcnotify"));
|
command.setDescription(pluginRef.getLocaleManager().getString("Commands.Description.mcnotify"));
|
||||||
command.setPermission("mcmmo.commands.mcnotify");
|
command.setPermission("mcmmo.commands.mcnotify");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -445,7 +446,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMHDCommand() {
|
private void registerMHDCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mhd");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mhd");
|
||||||
command.setDescription("Resets all mob health bar settings for all players to the default"); //TODO: Localize
|
command.setDescription("Resets all mob health bar settings for all players to the default"); //TODO: Localize
|
||||||
command.setPermission("mcmmo.commands.mhd");
|
command.setPermission("mcmmo.commands.mhd");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -454,7 +455,7 @@ public final class CommandRegistrationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerMcscoreboardCommand() {
|
private void registerMcscoreboardCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcscoreboard");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcscoreboard");
|
||||||
command.setDescription("Change the current mcMMO scoreboard being displayed"); //TODO: Localize
|
command.setDescription("Change the current mcMMO scoreboard being displayed"); //TODO: Localize
|
||||||
command.setPermission("mcmmo.commands.mcscoreboard");
|
command.setPermission("mcmmo.commands.mcscoreboard");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
@ -465,7 +466,7 @@ public final class CommandRegistrationManager {
|
|||||||
|
|
||||||
|
|
||||||
private void registerReloadLocaleCommand() {
|
private void registerReloadLocaleCommand() {
|
||||||
PluginCommand command = pluginRef.getCommand("mcmmoreloadlocale");
|
PluginCommand command = ((JavaPlugin) pluginRef.getPlatformProvider()).getCommand("mcmmoreloadlocale");
|
||||||
command.setDescription("Reloads locale"); // TODO: Localize
|
command.setDescription("Reloads locale"); // TODO: Localize
|
||||||
command.setPermission("mcmmo.commands.reloadlocale");
|
command.setPermission("mcmmo.commands.reloadlocale");
|
||||||
command.setPermissionMessage(permissionsMessage);
|
command.setPermissionMessage(permissionsMessage);
|
||||||
|
@ -6,6 +6,8 @@ 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.util.StringUtils;
|
import com.gmail.nossr50.util.StringUtils;
|
||||||
|
|
||||||
|
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.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -100,7 +102,7 @@ public final class CommandTools {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasPlayerDataKey = ((Player) sender).hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY);
|
boolean hasPlayerDataKey = ((Player) sender).hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey());
|
||||||
|
|
||||||
if (!hasPlayerDataKey) {
|
if (!hasPlayerDataKey) {
|
||||||
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.NotLoaded"));
|
sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.NotLoaded"));
|
||||||
@ -229,7 +231,7 @@ public final class CommandTools {
|
|||||||
Player player = sender instanceof Player ? (Player) sender : null;
|
Player player = sender instanceof Player ? (Player) sender : null;
|
||||||
List<String> onlinePlayerNames = new ArrayList<>();
|
List<String> onlinePlayerNames = new ArrayList<>();
|
||||||
|
|
||||||
for (Player onlinePlayer : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player onlinePlayer : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
if (player != null && player.canSee(onlinePlayer)) {
|
if (player != null && player.canSee(onlinePlayer)) {
|
||||||
onlinePlayerNames.add(onlinePlayer.getName());
|
onlinePlayerNames.add(onlinePlayer.getName());
|
||||||
}
|
}
|
||||||
@ -252,7 +254,7 @@ public final class CommandTools {
|
|||||||
partialName = matches.get(0);
|
partialName = matches.get(0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Player player = pluginRef.getServer().getPlayer(partialName);
|
Player player = Bukkit.getServer().getPlayer(partialName);
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
partialName = player.getName();
|
partialName = player.getName();
|
||||||
@ -274,7 +276,7 @@ public final class CommandTools {
|
|||||||
private List<String> matchPlayer(String partialName) {
|
private List<String> matchPlayer(String partialName) {
|
||||||
List<String> matchedPlayers = new ArrayList<>();
|
List<String> matchedPlayers = new ArrayList<>();
|
||||||
|
|
||||||
for (OfflinePlayer offlinePlayer : pluginRef.getServer().getOfflinePlayers()) {
|
for (OfflinePlayer offlinePlayer : Bukkit.getServer().getOfflinePlayers()) {
|
||||||
String playerName = offlinePlayer.getName();
|
String playerName = offlinePlayer.getName();
|
||||||
|
|
||||||
if (playerName == null) { //Do null checking here to detect corrupted data before sending it throuogh .equals
|
if (playerName == null) { //Do null checking here to detect corrupted data before sending it throuogh .equals
|
||||||
|
@ -3,7 +3,10 @@ package com.gmail.nossr50.util.player;
|
|||||||
import com.gmail.nossr50.core.MetadataConstants;
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.BukkitMMOPlayer;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||||
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.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -31,7 +34,7 @@ public final class UserManager {
|
|||||||
* @param mcMMOPlayer the player profile to start tracking
|
* @param mcMMOPlayer the player profile to start tracking
|
||||||
*/
|
*/
|
||||||
public void track(BukkitMMOPlayer mcMMOPlayer) {
|
public void track(BukkitMMOPlayer mcMMOPlayer) {
|
||||||
mcMMOPlayer.getNative().setMetadata(MetadataConstants.PLAYER_DATA_METAKEY, new FixedMetadataValue(pluginRef, mcMMOPlayer));
|
pluginRef.getPlatformProvider().getMetadataStore().setMetadata(mcMMOPlayer, MetadataConstants.PLAYER_DATA_METAKEY, mcMMOPlayer);
|
||||||
|
|
||||||
if(playerDataSet == null)
|
if(playerDataSet == null)
|
||||||
playerDataSet = new HashSet<>();
|
playerDataSet = new HashSet<>();
|
||||||
@ -51,7 +54,7 @@ public final class UserManager {
|
|||||||
*/
|
*/
|
||||||
public void remove(Player player) {
|
public void remove(Player player) {
|
||||||
BukkitMMOPlayer mcMMOPlayer = getPlayer(player);
|
BukkitMMOPlayer mcMMOPlayer = getPlayer(player);
|
||||||
player.removeMetadata(MetadataConstants.PLAYER_DATA_METAKEY, pluginRef);
|
pluginRef.getPlatformProvider().getMetadataStore().removeMetadata(mcMMOPlayer, MetadataConstants.PLAYER_DATA_METAKEY);
|
||||||
|
|
||||||
if(mcMMOPlayer != null)
|
if(mcMMOPlayer != null)
|
||||||
mcMMOPlayer.cleanup();
|
mcMMOPlayer.cleanup();
|
||||||
@ -65,7 +68,7 @@ public final class UserManager {
|
|||||||
* Clear all users.
|
* Clear all users.
|
||||||
*/
|
*/
|
||||||
public void clearAll() {
|
public void clearAll() {
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
remove(player);
|
remove(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +105,7 @@ public final class UserManager {
|
|||||||
public Collection<BukkitMMOPlayer> getPlayers() {
|
public Collection<BukkitMMOPlayer> getPlayers() {
|
||||||
Collection<BukkitMMOPlayer> playerCollection = new ArrayList<>();
|
Collection<BukkitMMOPlayer> playerCollection = new ArrayList<>();
|
||||||
|
|
||||||
for (Player player : pluginRef.getServer().getOnlinePlayers()) {
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
||||||
if (hasPlayerDataKey(player)) {
|
if (hasPlayerDataKey(player)) {
|
||||||
playerCollection.add(getPlayer(player));
|
playerCollection.add(getPlayer(player));
|
||||||
}
|
}
|
||||||
@ -144,15 +147,15 @@ public final class UserManager {
|
|||||||
@Nullable
|
@Nullable
|
||||||
public BukkitMMOPlayer getPlayer(Player player) {
|
public BukkitMMOPlayer getPlayer(Player player) {
|
||||||
//Avoid Array Index out of bounds
|
//Avoid Array Index out of bounds
|
||||||
if (player != null && player.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY))
|
if (player != null && player.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey()))
|
||||||
return (BukkitMMOPlayer) player.getMetadata(MetadataConstants.PLAYER_DATA_METAKEY).get(0).value();
|
return (BukkitMMOPlayer) player.getMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey()).get(0).value();
|
||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private BukkitMMOPlayer retrieveMcMMOPlayer(String playerName, boolean offlineValid) {
|
private BukkitMMOPlayer retrieveMcMMOPlayer(String playerName, boolean offlineValid) {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
if (!offlineValid) {
|
if (!offlineValid) {
|
||||||
@ -166,6 +169,6 @@ public final class UserManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPlayerDataKey(Entity entity) {
|
public boolean hasPlayerDataKey(Entity entity) {
|
||||||
return entity != null && entity.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY);
|
return entity != null && entity.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,8 +44,8 @@ public class ScoreboardManager {
|
|||||||
//TODO: Christ...
|
//TODO: Christ...
|
||||||
|
|
||||||
//Call our custom event
|
//Call our custom event
|
||||||
if(pluginRef.getServer().getScoreboardManager() != null) {
|
if(Bukkit.getServer().getScoreboardManager() != null) {
|
||||||
McMMOScoreboardMakeboardEvent event = new McMMOScoreboardMakeboardEvent(pluginRef.getServer().getScoreboardManager().getNewScoreboard(), player.getScoreboard(), player, ScoreboardEventReason.CREATING_NEW_SCOREBOARD);
|
McMMOScoreboardMakeboardEvent event = new McMMOScoreboardMakeboardEvent(Bukkit.getServer().getScoreboardManager().getNewScoreboard(), player.getScoreboard(), player, ScoreboardEventReason.CREATING_NEW_SCOREBOARD);
|
||||||
player.getServer().getPluginManager().callEvent(event);
|
player.getServer().getPluginManager().callEvent(event);
|
||||||
return new ScoreboardWrapper(event.getTargetPlayer(), event.getTargetBoard(), scoreboardStrings, pluginRef);
|
return new ScoreboardWrapper(event.getTargetPlayer(), event.getTargetBoard(), scoreboardStrings, pluginRef);
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ public class ScoreboardManager {
|
|||||||
|
|
||||||
// Called in onDisable()
|
// Called in onDisable()
|
||||||
public void teardownAll() {
|
public void teardownAll() {
|
||||||
ImmutableList<Player> onlinePlayers = ImmutableList.copyOf(pluginRef.getServer().getOnlinePlayers());
|
ImmutableList<Player> onlinePlayers = ImmutableList.copyOf(Bukkit.getServer().getOnlinePlayers());
|
||||||
pluginRef.debug("Tearing down scoreboards... (" + onlinePlayers.size() + ")");
|
pluginRef.debug("Tearing down scoreboards... (" + onlinePlayers.size() + ")");
|
||||||
for (Player player : onlinePlayers) {
|
for (Player player : onlinePlayers) {
|
||||||
teardownPlayer(player);
|
teardownPlayer(player);
|
||||||
@ -271,7 +271,7 @@ public class ScoreboardManager {
|
|||||||
*/
|
*/
|
||||||
public Objective getPowerLevelObjective() {
|
public Objective getPowerLevelObjective() {
|
||||||
if (!pluginRef.getScoreboardSettings().getPowerLevelTagsEnabled()) {
|
if (!pluginRef.getScoreboardSettings().getPowerLevelTagsEnabled()) {
|
||||||
Objective objective = pluginRef.getServer().getScoreboardManager().getMainScoreboard().getObjective(scoreboardStrings.POWER_OBJECTIVE);
|
Objective objective = Bukkit.getServer().getScoreboardManager().getMainScoreboard().getObjective(scoreboardStrings.POWER_OBJECTIVE);
|
||||||
|
|
||||||
if (objective != null) {
|
if (objective != null) {
|
||||||
objective.unregister();
|
objective.unregister();
|
||||||
@ -281,10 +281,10 @@ public class ScoreboardManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Objective powerObjective = pluginRef.getServer().getScoreboardManager().getMainScoreboard().getObjective(scoreboardStrings.POWER_OBJECTIVE);
|
Objective powerObjective = Bukkit.getServer().getScoreboardManager().getMainScoreboard().getObjective(scoreboardStrings.POWER_OBJECTIVE);
|
||||||
|
|
||||||
if (powerObjective == null) {
|
if (powerObjective == null) {
|
||||||
powerObjective = pluginRef.getServer().getScoreboardManager().getMainScoreboard().registerNewObjective(scoreboardStrings.POWER_OBJECTIVE, "dummy");
|
powerObjective = Bukkit.getServer().getScoreboardManager().getMainScoreboard().registerNewObjective(scoreboardStrings.POWER_OBJECTIVE, "dummy");
|
||||||
powerObjective.setDisplayName(scoreboardStrings.TAG_POWER_LEVEL);
|
powerObjective.setDisplayName(scoreboardStrings.TAG_POWER_LEVEL);
|
||||||
powerObjective.setDisplaySlot(DisplaySlot.BELOW_NAME);
|
powerObjective.setDisplaySlot(DisplaySlot.BELOW_NAME);
|
||||||
}
|
}
|
||||||
@ -296,7 +296,7 @@ public class ScoreboardManager {
|
|||||||
if (displayTime == -1) {
|
if (displayTime == -1) {
|
||||||
wrapper.showBoardWithNoRevert();
|
wrapper.showBoardWithNoRevert();
|
||||||
} else {
|
} else {
|
||||||
wrapper.showBoardAndScheduleRevert(displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
wrapper.showBoardAndScheduleRevert((int) (displayTime * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,7 +313,7 @@ public class ScoreboardManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setRevertTimer(String playerName, int seconds) {
|
public void setRevertTimer(String playerName, int seconds) {
|
||||||
PLAYER_SCOREBOARDS.get(playerName).showBoardAndScheduleRevert(seconds * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
PLAYER_SCOREBOARDS.get(playerName).showBoardAndScheduleRevert((int) (seconds * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getDirtyPowerLevels() {
|
public List<String> getDirtyPowerLevels() {
|
||||||
|
@ -10,8 +10,10 @@ import com.gmail.nossr50.events.scoreboard.McMMOScoreboardRevertEvent;
|
|||||||
import com.gmail.nossr50.events.scoreboard.ScoreboardEventReason;
|
import com.gmail.nossr50.events.scoreboard.ScoreboardEventReason;
|
||||||
import com.gmail.nossr50.events.scoreboard.ScoreboardObjectiveEventReason;
|
import com.gmail.nossr50.events.scoreboard.ScoreboardObjectiveEventReason;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.scheduler.Task;
|
||||||
import com.gmail.nossr50.skills.child.FamilyTree;
|
import com.gmail.nossr50.skills.child.FamilyTree;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
|
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.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
@ -35,9 +37,9 @@ public class ScoreboardWrapper {
|
|||||||
public String targetPlayer = null;
|
public String targetPlayer = null;
|
||||||
public PrimarySkillType targetSkill = null;
|
public PrimarySkillType targetSkill = null;
|
||||||
public int leaderboardPage = -1;
|
public int leaderboardPage = -1;
|
||||||
public BukkitTask updateTask = null;
|
public Task updateTask = null;
|
||||||
public BukkitTask revertTask = null;
|
public Task revertTask = null;
|
||||||
public BukkitTask cooldownTask = null;
|
public Task cooldownTask = null;
|
||||||
private boolean tippedKeep = false;
|
private boolean tippedKeep = false;
|
||||||
private boolean tippedClear = false;
|
private boolean tippedClear = false;
|
||||||
// Internal usage variables (should exist)
|
// Internal usage variables (should exist)
|
||||||
@ -73,7 +75,10 @@ public class ScoreboardWrapper {
|
|||||||
public void doSidebarUpdateSoon() {
|
public void doSidebarUpdateSoon() {
|
||||||
if (updateTask == null) {
|
if (updateTask == null) {
|
||||||
// To avoid spamming the scheduler, store the instance and run 2 ticks later
|
// To avoid spamming the scheduler, store the instance and run 2 ticks later
|
||||||
updateTask = new ScoreboardQuickUpdate().runTaskLater(pluginRef, 2L);
|
updateTask = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(2L)
|
||||||
|
.setTask(new ScoreboardQuickUpdate())
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +86,12 @@ public class ScoreboardWrapper {
|
|||||||
if (cooldownTask == null) {
|
if (cooldownTask == null) {
|
||||||
// Repeat every 5 seconds.
|
// Repeat every 5 seconds.
|
||||||
// Cancels once all cooldowns are done, using stopCooldownUpdating().
|
// Cancels once all cooldowns are done, using stopCooldownUpdating().
|
||||||
cooldownTask = new ScoreboardCooldownTask().runTaskTimer(pluginRef, 5 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR, 5 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR);
|
|
||||||
|
cooldownTask = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(5 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||||
|
.setRepeatTime(5 * pluginRef.getMiscTools().TICK_CONVERSION_FACTOR)
|
||||||
|
.setTask(new ScoreboardCooldownTask())
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +122,7 @@ public class ScoreboardWrapper {
|
|||||||
* Set the old targetBoard, for use in reverting.
|
* Set the old targetBoard, for use in reverting.
|
||||||
*/
|
*/
|
||||||
public void setOldScoreboard() {
|
public void setOldScoreboard() {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -124,7 +134,7 @@ public class ScoreboardWrapper {
|
|||||||
if (oldBoard == scoreboard) { // Already displaying it
|
if (oldBoard == scoreboard) { // Already displaying it
|
||||||
if (this.oldBoard == null) {
|
if (this.oldBoard == null) {
|
||||||
// (Shouldn't happen) Use failsafe value - we're already displaying our board, but we don't have the one we should revert to
|
// (Shouldn't happen) Use failsafe value - we're already displaying our board, but we don't have the one we should revert to
|
||||||
this.oldBoard = pluginRef.getServer().getScoreboardManager().getMainScoreboard();
|
this.oldBoard = Bukkit.getServer().getScoreboardManager().getMainScoreboard();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.oldBoard = oldBoard;
|
this.oldBoard = oldBoard;
|
||||||
@ -132,7 +142,7 @@ public class ScoreboardWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showBoardWithNoRevert() {
|
public void showBoardWithNoRevert() {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -148,7 +158,7 @@ public class ScoreboardWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showBoardAndScheduleRevert(int ticks) {
|
public void showBoardAndScheduleRevert(int ticks) {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -160,7 +170,10 @@ public class ScoreboardWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.setScoreboard(scoreboard);
|
player.setScoreboard(scoreboard);
|
||||||
revertTask = new ScoreboardChangeTask().runTaskLater(pluginRef, ticks);
|
revertTask = pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay((long) ticks)
|
||||||
|
.setTask(new ScoreboardChangeTask())
|
||||||
|
.schedule();
|
||||||
|
|
||||||
// TODO is there any way to do the time that looks acceptable?
|
// TODO is there any way to do the time that looks acceptable?
|
||||||
// player.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Timer", StringUtils.capitalize(sidebarType.toString().toLowerCase(Locale.ENGLISH)), ticks / 20F));
|
// player.sendMessage(LocaleLoader.getString("Commands.Scoreboard.Timer", StringUtils.capitalize(sidebarType.toString().toLowerCase(Locale.ENGLISH)), ticks / 20F));
|
||||||
@ -185,7 +198,7 @@ public class ScoreboardWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void tryRevertBoard() {
|
public void tryRevertBoard() {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -217,7 +230,7 @@ public class ScoreboardWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBoardShown() {
|
public boolean isBoardShown() {
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -386,7 +399,7 @@ public class ScoreboardWrapper {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
pluginRef.getScoreboardManager().cleanup(this);
|
pluginRef.getScoreboardManager().cleanup(this);
|
||||||
@ -513,7 +526,7 @@ public class ScoreboardWrapper {
|
|||||||
|
|
||||||
public void acceptRankData(Map<PrimarySkillType, Integer> rankData) {
|
public void acceptRankData(Map<PrimarySkillType, Integer> rankData) {
|
||||||
Integer rank;
|
Integer rank;
|
||||||
Player player = pluginRef.getServer().getPlayerExact(playerName);
|
Player player = Bukkit.getServer().getPlayerExact(playerName);
|
||||||
|
|
||||||
for (PrimarySkillType primarySkillType : pluginRef.getSkillTools().NON_CHILD_SKILLS) {
|
for (PrimarySkillType primarySkillType : pluginRef.getSkillTools().NON_CHILD_SKILLS) {
|
||||||
if (!pluginRef.getPermissionTools().skillEnabled(player, primarySkillType)) {
|
if (!pluginRef.getPermissionTools().skillEnabled(player, primarySkillType)) {
|
||||||
|
@ -19,6 +19,8 @@ import com.gmail.nossr50.skills.swords.SwordsManager;
|
|||||||
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.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
@ -28,6 +30,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
|
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
|
||||||
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 org.bukkit.projectiles.ProjectileSource;
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
@ -258,7 +261,7 @@ public final class CombatTools {
|
|||||||
finalDamage += archeryManager.daze((Player) target);
|
finalDamage += archeryManager.daze((Player) target);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!arrow.hasMetadata(MetadataConstants.INFINITE_ARROW_METAKEY) && archeryManager.canRetrieveArrows()) {
|
if (!arrow.hasMetadata(MetadataConstants.INFINITE_ARROW_METAKEY.getKey()) && archeryManager.canRetrieveArrows()) {
|
||||||
archeryManager.processArrowRetrievalActivation(target, arrow);
|
archeryManager.processArrowRetrievalActivation(target, arrow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,8 +273,8 @@ public final class CombatTools {
|
|||||||
double distanceMultiplier = archeryManager.distanceXpBonusMultiplier(target, arrow);
|
double distanceMultiplier = archeryManager.distanceXpBonusMultiplier(target, arrow);
|
||||||
double forceMultiplier = 1.0; //Hacky Fix - some plugins spawn arrows and assign them to players after the ProjectileLaunchEvent fires
|
double forceMultiplier = 1.0; //Hacky Fix - some plugins spawn arrows and assign them to players after the ProjectileLaunchEvent fires
|
||||||
|
|
||||||
if(arrow.hasMetadata(MetadataConstants.BOW_FORCE_METAKEY))
|
if(arrow.hasMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey()))
|
||||||
forceMultiplier = arrow.getMetadata(MetadataConstants.BOW_FORCE_METAKEY).get(0).asDouble();
|
forceMultiplier = arrow.getMetadata(MetadataConstants.BOW_FORCE_METAKEY.getKey()).get(0).asDouble();
|
||||||
|
|
||||||
applyScaledModifiers(initialDamage, finalDamage, event);
|
applyScaledModifiers(initialDamage, finalDamage, event);
|
||||||
startGainXp(mcMMOPlayer, target, PrimarySkillType.ARCHERY, forceMultiplier * distanceMultiplier);
|
startGainXp(mcMMOPlayer, target, PrimarySkillType.ARCHERY, forceMultiplier * distanceMultiplier);
|
||||||
@ -619,18 +622,18 @@ public final class CombatTools {
|
|||||||
// cause do have issues around plugin observability. This is not a perfect solution, but it appears to be the best one here
|
// cause do have issues around plugin observability. This is not a perfect solution, but it appears to be the best one here
|
||||||
// We also set no damage ticks to 0, to ensure that damage is applied for this case, and reset it back to the original value
|
// We also set no damage ticks to 0, to ensure that damage is applied for this case, and reset it back to the original value
|
||||||
// Snapshot current state so we can pop up properly
|
// Snapshot current state so we can pop up properly
|
||||||
boolean wasMetaSet = target.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY).size() != 0;
|
boolean wasMetaSet = target.getMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey()).size() != 0;
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY, MetadataConstants.metadataValue);
|
target.setMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||||
boolean wasProcessing = processingNoInvulnDamage;
|
boolean wasProcessing = processingNoInvulnDamage;
|
||||||
// set markers
|
// set markers
|
||||||
processingNoInvulnDamage = true;
|
processingNoInvulnDamage = true;
|
||||||
target.setMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY, MetadataConstants.metadataValue);
|
target.setMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey(), MetadataConstants.metadataValue);
|
||||||
int noDamageTicks = target.getNoDamageTicks();
|
int noDamageTicks = target.getNoDamageTicks();
|
||||||
target.setNoDamageTicks(0);
|
target.setNoDamageTicks(0);
|
||||||
target.damage(damage, attacker);
|
target.damage(damage, attacker);
|
||||||
target.setNoDamageTicks(noDamageTicks);
|
target.setNoDamageTicks(noDamageTicks);
|
||||||
if (!wasMetaSet)
|
if (!wasMetaSet)
|
||||||
target.removeMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY, pluginRef);
|
target.removeMetadata(MetadataConstants.CUSTOM_DAMAGE_METAKEY.getKey(), (Plugin) pluginRef.getPlatformProvider());
|
||||||
if (!wasProcessing)
|
if (!wasProcessing)
|
||||||
processingNoInvulnDamage = false;
|
processingNoInvulnDamage = false;
|
||||||
}
|
}
|
||||||
@ -774,11 +777,11 @@ public final class CombatTools {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY) || target.hasMetadata("ES")) {
|
if (target.hasMetadata(MetadataConstants.UNNATURAL_MOB_METAKEY.getKey()) || target.hasMetadata("ES")) {
|
||||||
baseXPMultiplier *= pluginRef.getDynamicSettingsManager().getExperienceManager().getSpecialCombatXP(SpecialXPKey.SPAWNED);
|
baseXPMultiplier *= pluginRef.getDynamicSettingsManager().getExperienceManager().getSpecialCombatXP(SpecialXPKey.SPAWNED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.hasMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY)) {
|
if (target.hasMetadata(MetadataConstants.PETS_ANIMAL_TRACKING_METAKEY.getKey())) {
|
||||||
baseXPMultiplier *= pluginRef.getDynamicSettingsManager().getExperienceManager().getSpecialCombatXP(SpecialXPKey.PETS);
|
baseXPMultiplier *= pluginRef.getDynamicSettingsManager().getExperienceManager().getSpecialCombatXP(SpecialXPKey.PETS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,7 +793,9 @@ public final class CombatTools {
|
|||||||
baseXPMultiplier *= multiplier;
|
baseXPMultiplier *= multiplier;
|
||||||
|
|
||||||
if (baseXPMultiplier != 0) {
|
if (baseXPMultiplier != 0) {
|
||||||
new AwardCombatXpTask(mcMMOPlayer, primarySkillType, baseXPMultiplier, target, xpGainReason).runTaskLater(pluginRef, 0);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setTask(new AwardCombatXpTask(mcMMOPlayer, primarySkillType, baseXPMultiplier, target, xpGainReason))
|
||||||
|
.schedule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -900,7 +905,7 @@ public final class CombatTools {
|
|||||||
|
|
||||||
public EntityDamageEvent sendEntityDamageEvent(Entity attacker, Entity target, DamageCause damageCause, double damage) {
|
public EntityDamageEvent sendEntityDamageEvent(Entity attacker, Entity target, DamageCause damageCause, double damage) {
|
||||||
EntityDamageEvent damageEvent = attacker == null ? new FakeEntityDamageEvent(target, damageCause, damage) : new FakeEntityDamageByEntityEvent(attacker, target, damageCause, damage);
|
EntityDamageEvent damageEvent = attacker == null ? new FakeEntityDamageEvent(target, damageCause, damage) : new FakeEntityDamageByEntityEvent(attacker, target, damageCause, damage);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(damageEvent);
|
Bukkit.getServer().getPluginManager().callEvent(damageEvent);
|
||||||
return damageEvent;
|
return damageEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -914,7 +919,7 @@ public final class CombatTools {
|
|||||||
|
|
||||||
public double getFakeDamageFinalResult(Entity attacker, Entity target, DamageCause cause, Map<DamageModifier, Double> modifiers) {
|
public double getFakeDamageFinalResult(Entity attacker, Entity target, DamageCause cause, Map<DamageModifier, Double> modifiers) {
|
||||||
EntityDamageEvent damageEvent = attacker == null ? new FakeEntityDamageEvent(target, cause, modifiers) : new FakeEntityDamageByEntityEvent(attacker, target, cause, modifiers);
|
EntityDamageEvent damageEvent = attacker == null ? new FakeEntityDamageEvent(target, cause, modifiers) : new FakeEntityDamageByEntityEvent(attacker, target, cause, modifiers);
|
||||||
pluginRef.getServer().getPluginManager().callEvent(damageEvent);
|
Bukkit.getServer().getPluginManager().callEvent(damageEvent);
|
||||||
|
|
||||||
if (damageEvent.isCancelled()) {
|
if (damageEvent.isCancelled()) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -1006,10 +1011,11 @@ public final class CombatTools {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!player.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY)) {
|
if (!player.hasMetadata(MetadataConstants.PLAYER_DATA_METAKEY.getKey())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pluginRef.getMobHealthBarManager().handleMobHealthbars(target, damage, plugin);
|
|
||||||
|
pluginRef.getPlatformProvider().getHealthBarManager().handleMobHealthbars(plugin.getPlatformProvider().getEntity(target.getUniqueId()), damage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public final class PerkUtils {
|
|||||||
this.pluginRef = pluginRef;
|
this.pluginRef = pluginRef;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int handleCooldownPerks(Player player, int cooldown) {
|
public long handleCooldownPerks(Player player, long cooldown) {
|
||||||
if (pluginRef.getPermissionTools().halvedCooldowns(player)) {
|
if (pluginRef.getPermissionTools().halvedCooldowns(player)) {
|
||||||
cooldown *= 0.5;
|
cooldown *= 0.5;
|
||||||
} else if (pluginRef.getPermissionTools().thirdedCooldowns(player)) {
|
} else if (pluginRef.getPermissionTools().thirdedCooldowns(player)) {
|
||||||
|
@ -49,9 +49,10 @@ public class RankTools {
|
|||||||
|
|
||||||
//The players level is the exact level requirement for this skill
|
//The players level is the exact level requirement for this skill
|
||||||
if (newLevel == innerMap.get(playerRankInSkill)) {
|
if (newLevel == innerMap.get(playerRankInSkill)) {
|
||||||
SkillUnlockNotificationTask skillUnlockNotificationTask = new SkillUnlockNotificationTask(pluginRef, mcMMOPlayer, subSkillType);
|
pluginRef.getPlatformProvider().getScheduler().getTaskBuilder()
|
||||||
|
.setDelay(count * 100L)
|
||||||
skillUnlockNotificationTask.runTaskLater(pluginRef, (count * 100));
|
.setTask(new SkillUnlockNotificationTask(pluginRef, mcMMOPlayer, subSkillType))
|
||||||
|
.schedule();
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user