HG lag fixes
item frames cannot be broken creep damage messages
This commit is contained in:
parent
25782813f4
commit
6f06ac2018
|
@ -57,6 +57,14 @@ public class CombatComponent
|
||||||
return _damage;
|
return _damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String GetReason()
|
||||||
|
{
|
||||||
|
if (_damage.isEmpty())
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return _damage.get(0).GetName();
|
||||||
|
}
|
||||||
|
|
||||||
public long GetLastDamage()
|
public long GetLastDamage()
|
||||||
{
|
{
|
||||||
return LastDamage;
|
return LastDamage;
|
||||||
|
|
|
@ -327,6 +327,9 @@ public class CombatManager extends MiniPlugin
|
||||||
reason = "-";
|
reason = "-";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.GetReason() != null)
|
||||||
|
reason = event.GetReason();
|
||||||
|
|
||||||
Get(event.GetDamageePlayer()).Attacked(source,
|
Get(event.GetDamageePlayer()).Attacked(source,
|
||||||
(int) event.GetDamage(), null, reason);
|
(int) event.GetDamage(), null, reason);
|
||||||
}
|
}
|
||||||
|
@ -420,6 +423,21 @@ public class CombatManager extends MiniPlugin
|
||||||
UtilPlayer.message(cur, F.main("Death", deadPlayer
|
UtilPlayer.message(cur, F.main("Death", deadPlayer
|
||||||
+ C.cGray + " has died."));
|
+ C.cGray + " has died."));
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (log.GetLastDamager() != null && log.GetLastDamager().GetReason() != null && log.GetLastDamager().GetReason().length() > 1)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(
|
||||||
|
cur,
|
||||||
|
F.main("Death",
|
||||||
|
deadPlayer
|
||||||
|
+ C.cGray
|
||||||
|
+ " killed by "
|
||||||
|
+ F.name(log.GetLastDamager()
|
||||||
|
.GetReason()))
|
||||||
|
+ C.cGray + ".");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
UtilPlayer.message(
|
UtilPlayer.message(
|
||||||
cur,
|
cur,
|
||||||
F.main("Death",
|
F.main("Death",
|
||||||
|
@ -432,6 +450,9 @@ public class CombatManager extends MiniPlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Self Detail
|
//Self Detail
|
||||||
UtilPlayer.message(event.getEntity(), log.Display());
|
UtilPlayer.message(event.getEntity(), log.Display());
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,9 +311,6 @@ public class DamageManager extends MiniPlugin
|
||||||
for (String cur : event.GetCancellers())
|
for (String cur : event.GetCancellers())
|
||||||
UtilPlayer.message(player, F.elem("Cancel ") + cur);
|
UtilPlayer.message(player, F.elem("Cancel ") + cur);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.Chest;
|
import org.bukkit.block.Chest;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Firework;
|
import org.bukkit.entity.Firework;
|
||||||
|
import org.bukkit.entity.ItemFrame;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Snowball;
|
import org.bukkit.entity.Snowball;
|
||||||
import org.bukkit.entity.TNTPrimed;
|
import org.bukkit.entity.TNTPrimed;
|
||||||
|
@ -32,10 +33,13 @@ import org.bukkit.event.block.BlockFadeEvent;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.event.block.BlockSpreadEvent;
|
import org.bukkit.event.block.BlockSpreadEvent;
|
||||||
import org.bukkit.event.block.LeavesDecayEvent;
|
import org.bukkit.event.block.LeavesDecayEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
||||||
|
import org.bukkit.event.hanging.HangingBreakEvent;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
|
@ -264,8 +268,8 @@ public class HungerGames extends SoloGame
|
||||||
int spawn = 0;
|
int spawn = 0;
|
||||||
|
|
||||||
//Chests
|
//Chests
|
||||||
System.out.println("Chests: " + Math.min(220, chests.size()));
|
System.out.println("Chests: " + Math.min(250, chests.size()));
|
||||||
for (int i=0 ; i<220 && !chests.isEmpty() ; i++)
|
for (int i=0 ; i<250 && !chests.isEmpty() ; i++)
|
||||||
{
|
{
|
||||||
Location loc = chests.remove(UtilMath.r(chests.size()));
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
||||||
|
|
||||||
|
@ -300,7 +304,7 @@ public class HungerGames extends SoloGame
|
||||||
|
|
||||||
int done = 0;
|
int done = 0;
|
||||||
|
|
||||||
while (done < 30)
|
while (done < 40)
|
||||||
{
|
{
|
||||||
|
|
||||||
Block block = UtilBlock.getHighest(WorldData.World, WorldData.MinX + UtilMath.r(xDiff), WorldData.MinZ + UtilMath.r(zDiff), ignore);
|
Block block = UtilBlock.getHighest(WorldData.World, WorldData.MinX + UtilMath.r(xDiff), WorldData.MinZ + UtilMath.r(zDiff), ignore);
|
||||||
|
@ -684,6 +688,20 @@ public class HungerGames extends SoloGame
|
||||||
}
|
}
|
||||||
if (surroundedByWater)
|
if (surroundedByWater)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
//Dont Spread to Moving
|
||||||
|
if (block.getTypeId() == 9)
|
||||||
|
if (block.getData() != 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//Dont spread near moving
|
||||||
|
for (Block other : UtilBlock.getSurrounding(block, false))
|
||||||
|
{
|
||||||
|
if (other.getTypeId() == 9 && other.getData() != 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Ignore Signs
|
//Ignore Signs
|
||||||
|
@ -743,6 +761,25 @@ public class HungerGames extends SoloGame
|
||||||
|
|
||||||
_redMap.get(loc.getBlockX()).get(loc.getBlockY()).add(loc.getBlockZ());
|
_redMap.get(loc.getBlockX()).get(loc.getBlockY()).add(loc.getBlockZ());
|
||||||
|
|
||||||
|
//Old Style
|
||||||
|
/*
|
||||||
|
if (true)
|
||||||
|
{
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
if (Math.abs(player.getLocation().getChunk().getX() - loc.getChunk().getX()) > UtilServer.getServer().getViewDistance())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (Math.abs(player.getLocation().getChunk().getZ() - loc.getChunk().getZ()) > UtilServer.getServer().getViewDistance())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
player.sendBlockChange(loc, id, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
//Non-Queue
|
//Non-Queue
|
||||||
for (Player player : UtilServer.getPlayers())
|
for (Player player : UtilServer.getPlayers())
|
||||||
{
|
{
|
||||||
|
@ -758,7 +795,7 @@ public class HungerGames extends SoloGame
|
||||||
boolean added = false;
|
boolean added = false;
|
||||||
for (ChunkChange change : _redChunks.get(player))
|
for (ChunkChange change : _redChunks.get(player))
|
||||||
{
|
{
|
||||||
if (change.Chunk.equals(loc.getChunk()) && change.DirtyCount < 63)
|
if (change.Chunk.equals(loc.getChunk()))// && change.DirtyCount < 63)
|
||||||
{
|
{
|
||||||
change.AddChange(loc, id, data);
|
change.AddChange(loc, id, data);
|
||||||
added = true;
|
added = true;
|
||||||
|
@ -773,7 +810,7 @@ public class HungerGames extends SoloGame
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void RedChunkUpdate(UpdateEvent event)
|
public void RedChunkUpdate(UpdateEvent event)
|
||||||
{
|
{
|
||||||
if (event.getType() != UpdateType.TICK)
|
if (event.getType() != UpdateType.FASTER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!IsLive())
|
if (!IsLive())
|
||||||
|
@ -830,7 +867,7 @@ public class HungerGames extends SoloGame
|
||||||
//Send MultiBlock or Chunk Update for Fittest Chunk
|
//Send MultiBlock or Chunk Update for Fittest Chunk
|
||||||
ChunkChange change = _redChunks.get(player).remove(bestId);
|
ChunkChange change = _redChunks.get(player).remove(bestId);
|
||||||
|
|
||||||
if (change.DirtyCount >= 63)
|
if (change.DirtyCount > 63)
|
||||||
MapUtil.SendChunkForPlayer(change.Chunk.getX(), change.Chunk.getZ(), player);
|
MapUtil.SendChunkForPlayer(change.Chunk.getX(), change.Chunk.getZ(), player);
|
||||||
else
|
else
|
||||||
MapUtil.SendMultiBlockForPlayer(change.Chunk.getX(), change.Chunk.getZ(), change.DirtyBlocks, change.DirtyCount, change.Chunk.getWorld(), player);
|
MapUtil.SendMultiBlockForPlayer(change.Chunk.getX(), change.Chunk.getZ(), change.DirtyBlocks, change.DirtyCount, change.Chunk.getWorld(), player);
|
||||||
|
@ -950,6 +987,8 @@ public class HungerGames extends SoloGame
|
||||||
|
|
||||||
if (near)
|
if (near)
|
||||||
{
|
{
|
||||||
|
player.getWorld().playSound(player.getLocation(), Sound.AMBIENCE_RAIN, 0.2f, 0f);
|
||||||
|
|
||||||
if (!_redOutTime.containsKey(player))
|
if (!_redOutTime.containsKey(player))
|
||||||
{
|
{
|
||||||
_redOutTime.put(player, System.currentTimeMillis());
|
_redOutTime.put(player, System.currentTimeMillis());
|
||||||
|
@ -1118,6 +1157,13 @@ public class HungerGames extends SoloGame
|
||||||
if (_deathmatchTime <= 0)
|
if (_deathmatchTime <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
for (Player player : GetPlayers(true))
|
||||||
|
for (Player other : GetPlayers(true))
|
||||||
|
{
|
||||||
|
player.hidePlayer(other);
|
||||||
|
player.showPlayer(other);
|
||||||
|
}
|
||||||
|
|
||||||
Announce(C.cRed + C.Bold + "Deathmatch in " + _deathmatchTime + "...");
|
Announce(C.cRed + C.Bold + "Deathmatch in " + _deathmatchTime + "...");
|
||||||
_deathmatchTime--;
|
_deathmatchTime--;
|
||||||
}
|
}
|
||||||
|
@ -1332,6 +1378,26 @@ public class HungerGames extends SoloGame
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void DisallowBrewFurnace(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
if (event.getClickedBlock() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getClickedBlock().getType() == Material.BREWING_STAND ||
|
||||||
|
event.getClickedBlock().getType() == Material.FURNACE)
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void CancelItemFrameBreak(HangingBreakEvent event)
|
||||||
|
{
|
||||||
|
if (event.getEntity() instanceof ItemFrame)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void TNTDelay(GameStateChangeEvent event)
|
public void TNTDelay(GameStateChangeEvent event)
|
||||||
{
|
{
|
||||||
|
@ -1531,4 +1597,6 @@ public class HungerGames extends SoloGame
|
||||||
|
|
||||||
_helpIndex = (_helpIndex + 1)%_help.length;
|
_helpIndex = (_helpIndex + 1)%_help.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue