Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
import net.ess3.provider.providers.BukkitSchedulingProvider;
import net.ess3.provider.providers.BukkitSpawnerBlockProvider;
import net.ess3.provider.providers.BukkitTileEntityProvider;
import net.ess3.provider.providers.BukkitWorldTileEntityCountProvider;
import net.ess3.provider.providers.FixedHeightWorldInfoProvider;
import net.ess3.provider.providers.FlatSpawnEggProvider;
import net.ess3.provider.providers.FoliaSchedulingProvider;
Expand Down Expand Up @@ -105,10 +106,10 @@
import net.ess3.provider.providers.PaperServerStateProvider;
import net.ess3.provider.providers.PaperTickCountProvider;
import net.ess3.provider.providers.PaperTileEntityProvider;
import net.ess3.provider.providers.PaperWorldTileEntityCountProvider;
import net.ess3.provider.providers.PrehistoricPotionMetaProvider;
import net.essentialsx.api.v2.services.BalanceTop;
import net.essentialsx.api.v2.services.mail.MailService;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Server;
Expand Down Expand Up @@ -397,6 +398,9 @@ public void onEnable() {
// Tile Entity Provider
providerFactory.registerProvider(BukkitTileEntityProvider.class, PaperTileEntityProvider.class);

// World Tile Entity Count Provider
providerFactory.registerProvider(BukkitWorldTileEntityCountProvider.class, PaperWorldTileEntityCountProvider.class);

// Tick Count Provider
providerFactory.registerProvider(PaperTickCountProvider.class);

Expand Down Expand Up @@ -612,8 +616,7 @@ public void reload() {
}
}

AdventureUtil.setEss(this);
bukkitAudience = BukkitAudiences.create(this);
initAdventureFacet();
}

private void initAdventureFacet() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
import com.earth2me.essentials.CommandSource;
import com.earth2me.essentials.utils.DateUtil;
import com.earth2me.essentials.utils.NumberUtil;
import net.ess3.provider.TileEntityProvider;
import net.ess3.provider.WorldTileEntityCountProvider;
import org.bukkit.ChatColor;
import org.bukkit.Chunk;
import org.bukkit.Server;
import org.bukkit.World;

import java.lang.management.ManagementFactory;
import java.util.List;
import java.util.logging.Level;

public class Commandgc extends EssentialsCommand {
public Commandgc() {
Expand All @@ -37,7 +35,7 @@ protected void run(final Server server, final CommandSource sender, final String
sender.sendTl("gcfree", Runtime.getRuntime().freeMemory() / 1024 / 1024);

final List<World> worlds = server.getWorlds();
final TileEntityProvider tileEntityProvider = ess.provider(TileEntityProvider.class);
final WorldTileEntityCountProvider worldTileEntityCountProvider = ess.provider(WorldTileEntityCountProvider.class);
for (final World w : worlds) {
String worldType = "World";
switch (w.getEnvironment()) {
Expand All @@ -49,15 +47,7 @@ protected void run(final Server server, final CommandSource sender, final String
break;
}

int tileEntities = 0;

try {
for (final Chunk chunk : w.getLoadedChunks()) {
tileEntities += tileEntityProvider.getTileEntities(chunk).length;
}
} catch (final java.lang.ClassCastException ex) {
ess.getLogger().log(Level.SEVERE, "Corrupted chunk data on world " + w, ex);
}
final int tileEntities = worldTileEntityCountProvider.getTileEntityCount(w);

sender.sendTl("gcWorld", worldType, w.getName(), w.getLoadedChunks().length, w.getEntities().size(), tileEntities);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,15 @@ protected void updatePlayer(final Server server, final CommandSource sender, fin
}
final DamageEventProvider provider = ess.provider(DamageEventProvider.class);

final EntityDamageEvent ede = provider.callDamageEvent(matchPlayer, sender.isPlayer() && sender.getPlayer().getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Float.MAX_VALUE);
if (ede.isCancelled() && sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.kill.force")) {
return;
}
ede.getEntity().setLastDamageCause(ede);
matchPlayer.setHealth(0);
sender.sendTl("kill", matchPlayer.getDisplayName());
ess.scheduleEntityDelayedTask(matchPlayer, () -> {
final EntityDamageEvent ede = provider.callDamageEvent(matchPlayer, sender.isPlayer() && sender.getPlayer().getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Float.MAX_VALUE);
if (ede.isCancelled() && sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.kill.force")) {
return;
}
ede.getEntity().setLastDamageCause(ede);
matchPlayer.setHealth(0);
sender.sendTl("kill", matchPlayer.getDisplayName());
});
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,17 @@ public void run(final Server server, final CommandSource sender, final String co
}
final int finalPower = power;
loopOnlinePlayersConsumer(server, sender, false, true, args[0], player -> {
sender.sendTl("lightningUse", player.getDisplayName());
final LightningStrike strike = player.getBase().getWorld().strikeLightningEffect(player.getBase().getLocation());
ess.scheduleEntityDelayedTask(player.getBase(), () -> {
sender.sendTl("lightningUse", player.getDisplayName());
final LightningStrike strike = player.getBase().getWorld().strikeLightningEffect(player.getBase().getLocation());

if (!player.isGodModeEnabled()) {
player.getBase().damage(finalPower, strike);
}
if (ess.getSettings().warnOnSmite()) {
player.sendTl("lightningSmited");
}
if (!player.isGodModeEnabled()) {
player.getBase().damage(finalPower, strike);
}
if (ess.getSettings().warnOnSmite()) {
player.sendTl("lightningSmited");
}
});
});
loopOnlinePlayers(server, sender, true, true, args[0], null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,15 @@ public void run(final Server server, final User user, final String commandLabel,
final World world = user.getWorld();
final boolean setThunder = args[0].equalsIgnoreCase("true");
if (args.length == 1) {
world.setThundering(setThunder);
ess.scheduleGlobalDelayedTask(() -> world.setThundering(setThunder));
user.sendTl("thunder", setThunder ? user.playerTl("enabled") : user.playerTl("disabled"));
return;
}

world.setThundering(setThunder);
world.setThunderDuration(Integer.parseInt(args[1]) * 20);
ess.scheduleGlobalDelayedTask(() -> {
world.setThundering(setThunder);
world.setThunderDuration(Integer.parseInt(args[1]) * 20);
});
user.sendTl("thunderDuration", setThunder ? user.playerTl("enabled") : user.playerTl("disabled"), Integer.parseInt(args[1]));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package net.ess3.provider;

import org.bukkit.World;

public interface WorldTileEntityCountProvider extends Provider {
int getTileEntityCount(final World world);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package net.ess3.provider.providers;

import net.ess3.provider.WorldTileEntityCountProvider;
import net.essentialsx.providers.ProviderData;
import org.bukkit.Chunk;
import org.bukkit.World;

@ProviderData(description = "Bukkit World Tile Entity Count Provider")
public class BukkitWorldTileEntityCountProvider implements WorldTileEntityCountProvider {
@Override
public int getTileEntityCount(World world) {
int tileEntities = 0;

for (final Chunk chunk : world.getLoadedChunks()) {
tileEntities += chunk.getTileEntities().length;
}

return tileEntities;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package net.ess3.provider.providers;

import net.ess3.provider.WorldTileEntityCountProvider;
import net.essentialsx.providers.ProviderData;
import org.bukkit.World;

@ProviderData(description = "Paper 1.11+ World Tile Entity Count Provider", weight = 1)
public class PaperWorldTileEntityCountProvider implements WorldTileEntityCountProvider {
@Override
public int getTileEntityCount(World world) {
return world.getTileEntityCount();
}
}