mirror of
https://github.com/kaboomserver/extras.git
synced 2024-06-06 20:24:58 +00:00
Compare commits
4 commits
58afc829a0
...
7d9065c744
Author | SHA1 | Date | |
---|---|---|---|
7d9065c744 | |||
355909a985 | |||
e017fd0dfa | |||
d65c1f1428 |
|
@ -9,6 +9,9 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||
import pw.kaboom.extras.commands.*;
|
||||
import pw.kaboom.extras.modules.block.BlockCheck;
|
||||
import pw.kaboom.extras.modules.block.BlockPhysics;
|
||||
import pw.kaboom.extras.modules.checks.DenyMobLag;
|
||||
import pw.kaboom.extras.modules.checks.DenyTorchLoad;
|
||||
import pw.kaboom.extras.modules.checks.DenyWaterFlow;
|
||||
import pw.kaboom.extras.modules.entity.EntityExplosion;
|
||||
import pw.kaboom.extras.modules.entity.EntityKnockback;
|
||||
import pw.kaboom.extras.modules.entity.EntitySpawn;
|
||||
|
@ -25,7 +28,6 @@ import java.util.Collections;
|
|||
public final class Main extends JavaPlugin {
|
||||
private File prefixConfigFile;
|
||||
private FileConfiguration prefixConfig;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
/* Fill lists */
|
||||
|
@ -99,6 +101,11 @@ public final class Main extends JavaPlugin {
|
|||
this.getServer().getPluginManager().registerEvents(new ServerTabComplete(), this);
|
||||
this.getServer().getPluginManager().registerEvents(new ServerTick(), this);
|
||||
|
||||
/* Anti-lag-related modules */
|
||||
this.getServer().getPluginManager().registerEvents(new DenyWaterFlow(), this);
|
||||
this.getServer().getPluginManager().registerEvents(new DenyTorchLoad(), this);
|
||||
this.getServer().getPluginManager().registerEvents(new DenyMobLag(), this);
|
||||
|
||||
/* Custom worlds */
|
||||
this.getServer().createWorld(
|
||||
new WorldCreator("world_flatlands").generateStructures(false).type(WorldType.FLAT)
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package pw.kaboom.extras.modules.checks;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
public class DenyMobLag implements Listener {
|
||||
private static final int limit = JavaPlugin.getPlugin(Main.class).getConfig().getInt("mobLimitAtOnce");
|
||||
private int mobSpawnCount = 0;
|
||||
|
||||
@EventHandler
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
EntityType entityType = event.getEntityType();
|
||||
if (entityType.isAlive()) {
|
||||
mobSpawnCount++;
|
||||
if (mobSpawnCount > limit) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package pw.kaboom.extras.modules.checks;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
public class DenyTorchLoad implements Listener {
|
||||
private static final int limit = JavaPlugin.getPlugin(Main.class).getConfig().getInt("torchLimit");
|
||||
|
||||
@EventHandler
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
if (event.getBlockPlaced().getType() == Material.TORCH) {
|
||||
int placedTorchCount = getPlacedTorchCount(event.getPlayer());
|
||||
if (placedTorchCount >= limit) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int getPlacedTorchCount(Player player) {
|
||||
int count = 0;
|
||||
for (ItemStack item : player.getInventory().getContents()) {
|
||||
if (item != null && item.getType() == Material.TORCH) {
|
||||
count += item.getAmount();
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package pw.kaboom.extras.modules.checks;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockFromToEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
public class DenyWaterFlow implements Listener {
|
||||
private static final int max = JavaPlugin.getPlugin(Main.class).getConfig().getInt("maxWaterFlow");
|
||||
private int waterFlowCount = 0;
|
||||
|
||||
@EventHandler
|
||||
public void onBlockFromTo(BlockFromToEvent event) {
|
||||
if (!JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("blockLotsOfWaterFromFlowing")) return;
|
||||
Material blockType = event.getBlock().getType();
|
||||
if (blockType == Material.WATER || blockType == Material.LAVA) {
|
||||
waterFlowCount++;
|
||||
if (waterFlowCount > max) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue