mirror of
https://github.com/Auxilor/EcoEnchants.git
synced 2025-02-18 04:51:20 +01:00
Optimized tasks
This commit is contained in:
parent
7b786b93d6
commit
37de34cee4
@ -5,22 +5,56 @@ import com.willfp.ecoenchants.enchantments.EcoEnchant;
|
|||||||
import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder;
|
import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder;
|
||||||
import com.willfp.ecoenchants.enchantments.EcoEnchants;
|
import com.willfp.ecoenchants.enchantments.EcoEnchants;
|
||||||
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
|
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
|
||||||
|
import com.willfp.ecoenchants.events.armorequip.ArmorEquipEvent;
|
||||||
import com.willfp.ecoenchants.util.interfaces.EcoRunnable;
|
import com.willfp.ecoenchants.util.interfaces.EcoRunnable;
|
||||||
import com.willfp.ecoenchants.util.VectorUtils;
|
import com.willfp.ecoenchants.util.VectorUtils;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Monster;
|
import org.bukkit.entity.Monster;
|
||||||
import org.bukkit.entity.PigZombie;
|
import org.bukkit.entity.PigZombie;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public final class CallingCurse extends EcoEnchant implements EcoRunnable {
|
public final class CallingCurse extends EcoEnchant implements EcoRunnable {
|
||||||
public CallingCurse() {
|
public CallingCurse() {
|
||||||
super(
|
super(
|
||||||
new EcoEnchantBuilder("calling_curse", EnchantmentType.CURSE, 5.0)
|
new EcoEnchantBuilder("calling_curse", EnchantmentType.CURSE, 5.0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
private final HashMap<Player, Integer> players = new HashMap<>();
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onArmorEquip(ArmorEquipEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerLeave(PlayerQuitEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refresh() {
|
||||||
|
players.clear();
|
||||||
|
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().forEach(player -> {
|
||||||
|
int level = EnchantChecks.getArmorPoints(player, this, 0);
|
||||||
|
if(level > 0) {
|
||||||
|
players.put(player, level);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().stream().filter(player -> EnchantChecks.getArmorPoints(player, EcoEnchants.CALLING_CURSE, 0) > 0).forEach((player -> {
|
players.forEach((player, level) -> {
|
||||||
double distance = EcoEnchants.CALLING_CURSE.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "distance");
|
double distance = EcoEnchants.CALLING_CURSE.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "distance");
|
||||||
|
|
||||||
for (Entity e : player.getWorld().getNearbyEntities(player.getLocation(), distance, distance, distance)) {
|
for (Entity e : player.getWorld().getNearbyEntities(player.getLocation(), distance, distance, distance)) {
|
||||||
@ -38,7 +72,7 @@ public final class CallingCurse extends EcoEnchant implements EcoRunnable {
|
|||||||
e.setVelocity(vector);
|
e.setVelocity(vector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,10 +5,18 @@ import com.willfp.ecoenchants.enchantments.EcoEnchant;
|
|||||||
import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder;
|
import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder;
|
||||||
import com.willfp.ecoenchants.enchantments.EcoEnchants;
|
import com.willfp.ecoenchants.enchantments.EcoEnchants;
|
||||||
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
|
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
|
||||||
|
import com.willfp.ecoenchants.events.armorequip.ArmorEquipEvent;
|
||||||
|
import com.willfp.ecoenchants.util.VectorUtils;
|
||||||
import com.willfp.ecoenchants.util.interfaces.EcoRunnable;
|
import com.willfp.ecoenchants.util.interfaces.EcoRunnable;
|
||||||
import com.willfp.ecoenchants.util.NumberUtils;
|
import com.willfp.ecoenchants.util.NumberUtils;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.entity.Monster;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public final class Forcefield extends EcoEnchant implements EcoRunnable {
|
public final class Forcefield extends EcoEnchant implements EcoRunnable {
|
||||||
public Forcefield() {
|
public Forcefield() {
|
||||||
super(
|
super(
|
||||||
@ -16,11 +24,36 @@ public final class Forcefield extends EcoEnchant implements EcoRunnable {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final HashMap<Player, Integer> players = new HashMap<>();
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onArmorEquip(ArmorEquipEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerLeave(PlayerQuitEvent event) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refresh() {
|
||||||
|
players.clear();
|
||||||
|
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().forEach(player -> {
|
||||||
|
int level = EnchantChecks.getArmorPoints(player, this, 0);
|
||||||
|
if(level > 0) {
|
||||||
|
players.put(player, level);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().stream().filter(player -> EnchantChecks.getArmorPoints(player, EcoEnchants.FORCEFIELD, 0) > 0).forEach((player -> {
|
players.forEach((player, level) -> {
|
||||||
int level = EnchantChecks.getArmorPoints(player, EcoEnchants.FORCEFIELD, 0);
|
|
||||||
|
|
||||||
double initialDistance = EcoEnchants.FORCEFIELD.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "initial-distance");
|
double initialDistance = EcoEnchants.FORCEFIELD.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "initial-distance");
|
||||||
double bonus = EcoEnchants.FORCEFIELD.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "bonus-per-level");
|
double bonus = EcoEnchants.FORCEFIELD.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "bonus-per-level");
|
||||||
double distance = initialDistance + (level * bonus);
|
double distance = initialDistance + (level * bonus);
|
||||||
@ -36,7 +69,7 @@ public final class Forcefield extends EcoEnchant implements EcoRunnable {
|
|||||||
EnchantChecks.getArmorPoints(player, EcoEnchants.FORCEFIELD, 1);
|
EnchantChecks.getArmorPoints(player, EcoEnchants.FORCEFIELD, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -48,7 +48,10 @@ public final class Magnetic extends EcoEnchant implements EcoRunnable {
|
|||||||
private void refresh() {
|
private void refresh() {
|
||||||
players.clear();
|
players.clear();
|
||||||
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().forEach(player -> {
|
EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().forEach(player -> {
|
||||||
players.put(player, EnchantChecks.getArmorPoints(player, this, 0));
|
int level = EnchantChecks.getArmorPoints(player, this, 0);
|
||||||
|
if(level > 0) {
|
||||||
|
players.put(player, level);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
initialDistance = EcoEnchants.MAGNETIC.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "initial-distance");
|
initialDistance = EcoEnchants.MAGNETIC.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "initial-distance");
|
||||||
bonus = EcoEnchants.MAGNETIC.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "bonus-per-level");
|
bonus = EcoEnchants.MAGNETIC.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "bonus-per-level");
|
||||||
|
Loading…
Reference in New Issue
Block a user