mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 07:06:44 +01:00
Plot physics flag + ignore modified option + fix invalid plot music
Fixes #356 Fixes #355
This commit is contained in:
parent
ab03b358f5
commit
345b4599b9
@ -3,13 +3,18 @@ package com.intellectualcrafters.plot.listeners;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Item;
|
import org.bukkit.entity.Item;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.BlockFromToEvent;
|
||||||
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
|
import org.bukkit.event.block.EntityBlockFormEvent;
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
import org.bukkit.event.world.ChunkLoadEvent;
|
||||||
@ -35,7 +40,7 @@ public class ChunkListener implements Listener {
|
|||||||
|
|
||||||
private Chunk lastChunk = null;
|
private Chunk lastChunk = null;
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler(priority=EventPriority.LOWEST)
|
||||||
public void onItemSpawn(ItemSpawnEvent event) {
|
public void onItemSpawn(ItemSpawnEvent event) {
|
||||||
Item entity = event.getEntity();
|
Item entity = event.getEntity();
|
||||||
Chunk chunk = entity.getLocation().getChunk();
|
Chunk chunk = entity.getLocation().getChunk();
|
||||||
@ -58,7 +63,25 @@ public class ChunkListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
private long last = 0;
|
||||||
|
private int count = 0;
|
||||||
|
|
||||||
|
@EventHandler(priority=EventPriority.LOWEST)
|
||||||
|
public void onBlockPhysics(BlockPhysicsEvent event) {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
if (now - last < 20) {
|
||||||
|
if (count > Settings.CHUNK_PROCESSOR_MAX_ENTITIES) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
count = 0;
|
||||||
|
}
|
||||||
|
last = now;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority=EventPriority.LOWEST)
|
||||||
public void onEntitySpawn(CreatureSpawnEvent event) {
|
public void onEntitySpawn(CreatureSpawnEvent event) {
|
||||||
LivingEntity entity = event.getEntity();
|
LivingEntity entity = event.getEntity();
|
||||||
Chunk chunk = entity.getLocation().getChunk();
|
Chunk chunk = entity.getLocation().getChunk();
|
||||||
|
@ -145,11 +145,14 @@ public class PlotListener extends APlotListener {
|
|||||||
if (musicFlag != null) {
|
if (musicFlag != null) {
|
||||||
player.playEffect(player.getLocation(), Effect.RECORD_PLAY, 0);
|
player.playEffect(player.getLocation(), Effect.RECORD_PLAY, 0);
|
||||||
Integer id = (Integer) musicFlag.getValue();
|
Integer id = (Integer) musicFlag.getValue();
|
||||||
if (id != 0) {
|
if (id >= 2256 && id <= 2267) {
|
||||||
Location center = MainUtil.getPlotCenter(plot);
|
Location center = MainUtil.getPlotCenter(plot);
|
||||||
org.bukkit.Location newLoc = BukkitUtil.getLocation(center);
|
org.bukkit.Location newLoc = BukkitUtil.getLocation(center);
|
||||||
newLoc.setY(Math.min((((int) player.getLocation().getBlockY())/16) * 16, 240));
|
newLoc.setY(Math.min((((int) player.getLocation().getBlockY())/16) * 16, 240));
|
||||||
player.playEffect(newLoc, Effect.RECORD_PLAY, Material.getMaterial(id));
|
try {
|
||||||
|
player.playEffect(newLoc, Effect.RECORD_PLAY, Material.getMaterial(id));
|
||||||
|
}
|
||||||
|
catch (Exception e) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CommentManager.sendTitle(pp, plot);
|
CommentManager.sendTitle(pp, plot);
|
||||||
|
@ -118,9 +118,6 @@ public class ExpireManager {
|
|||||||
expiredPlots.get(world).remove(plot);
|
expiredPlots.get(world).remove(plot);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (plot.settings.isMerged()) {
|
|
||||||
MainUtil.unlinkPlot(plot);
|
|
||||||
}
|
|
||||||
final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
|
final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
|
||||||
RunnableVal run = new RunnableVal() {
|
RunnableVal run = new RunnableVal() {
|
||||||
@Override
|
@Override
|
||||||
@ -134,10 +131,14 @@ public class ExpireManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (changed >= Settings.MIN_BLOCKS_CHANGED_IGNORED && Settings.MIN_BLOCKS_CHANGED_IGNORED > 0) {
|
else if (changed >= Settings.MIN_BLOCKS_CHANGED_IGNORED && Settings.MIN_BLOCKS_CHANGED_IGNORED > 0) {
|
||||||
|
PlotSquared.log("&aIgnoring modified plot: " + plot.id + (changed != -1 ? " (changed " + value + ")" : ""));
|
||||||
expiredPlots.get(world).remove(plot);
|
expiredPlots.get(world).remove(plot);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (plot.settings.isMerged()) {
|
||||||
|
MainUtil.unlinkPlot(plot);
|
||||||
|
}
|
||||||
manager.clearPlot(plotworld, plot, false, null);
|
manager.clearPlot(plotworld, plot, false, null);
|
||||||
MainUtil.removeSign(plot);
|
MainUtil.removeSign(plot);
|
||||||
DBFunc.delete(world, plot);
|
DBFunc.delete(world, plot);
|
||||||
|
Loading…
Reference in New Issue
Block a user