Merge branch 'bench'

Conflicts:
	Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilText.java
	Plugins/Mineplex.Core/src/mineplex/core/chat/Chat.java
	Plugins/Mineplex.StaffServer/.classpath
This commit is contained in:
Cheese 2015-07-08 13:55:01 +10:00
commit e36b0440a4
8 changed files with 236 additions and 53 deletions

View File

@ -0,0 +1,65 @@
package mineplex.core.common;
import java.io.Serializable;
public class Pair<L, R> implements Serializable {
private static final long serialVersionUID = -7631968541502978704L;
private L left;
private R right;
public static <L, R> Pair<L, R> create(L left, R right)
{
return new Pair<L, R>(left, right);
}
private Pair(L left, R right) {
this.setLeft(left);
this.setRight(right);
}
public L getLeft()
{
return left;
}
public void setLeft(L left)
{
this.left = left;
}
public R getRight()
{
return right;
}
public void setRight(R right)
{
this.right = right;
}
@Override
public String toString()
{
return getLeft().toString() + ":" + getRight().toString();
}
@SuppressWarnings("rawtypes")
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (!(obj instanceof Pair))
return false;
Pair localPair = (Pair) obj;
if (getLeft() != null ? !getLeft().equals(localPair.getLeft()) : localPair.getLeft() != null)
return false;
if (getRight() != null ? !getRight().equals(localPair.getRight()) : localPair.getRight() != null)
return false;
return true;
}
}

View File

@ -18,7 +18,31 @@ import org.bukkit.inventory.ItemStack;
public class UtilBlock public class UtilBlock
{ {
public static void main(String[] args) {
for (Material m : Material.values()) {
boolean thisSolid = fullSolid(m.getId());
boolean solid = m.isSolid();
if (thisSolid != solid) {
StringBuilder sb = new StringBuilder();
sb.append("Failed: ");
sb.append(m.name());
int amount = 40 - sb.length();
for (int i = 0; i < amount; i++) {
sb.append(" ");
}
sb.append(thisSolid);
System.out.println(sb);
}
}
System.out.println("done!");
}
/** /**
* A list of blocks that are usable * A list of blocks that are usable
*/ */

View File

@ -2,25 +2,50 @@ package mineplex.core.common.util;
import java.util.Collection; import java.util.Collection;
public class UtilText public class UtilText {
{ public static <T> String listToString(Collection<T> inputList, boolean comma) {
public static <T> String listToString(Collection<T> inputList, boolean comma)
{
String out = ""; String out = "";
for (T cur : inputList) for (T cur : inputList) {
{
out += cur.toString() + (comma ? ", " : " "); out += cur.toString() + (comma ? ", " : " ");
} }
if (out.length() > 0) if (out.length() > 0) {
{ out = out.substring(0, out.length() - (comma ? 2 : 1));
out = out.substring(0, out.length()-(comma ? 2 : 1));
} }
return out; return out;
} }
public static int upperCaseCount(String input) {
int count = 0;
for (int k = 0; k < input.length(); k++) {
char ch = input.charAt(k);
if (Character.isUpperCase(ch))
count++;
}
return count;
}
public static int lowerCaseCount(String input) {
int count = 0;
for (int k = 0; k < input.length(); k++) {
char ch = input.charAt(k);
if (Character.isLowerCase(ch))
count++;
}
return count;
}
public static boolean isStringSimilar(String newString, String oldString, float matchRequirement) public static boolean isStringSimilar(String newString, String oldString, float matchRequirement)
{ {
for (int i=0 ; i < newString.length() * matchRequirement ; i++) for (int i=0 ; i < newString.length() * matchRequirement ; i++)

View File

@ -54,6 +54,7 @@ public class Chat extends MiniPlugin
private PreferencesManager _preferences; private PreferencesManager _preferences;
private AchievementManager _achievements; private AchievementManager _achievements;
private String[] _hackusations = {"hack", "hax", "hacker", "hacking", "cheat", "cheater", "cheating", "forcefield", "flyhack", "flyhacking", "autoclick", "aimbot"};
private String _filterUrl = "https://10.33.53.5:8003/content/item/moderate"; private String _filterUrl = "https://10.33.53.5:8003/content/item/moderate";
private String _appId = "34018d65-466d-4a91-8e92-29ca49f022c4"; private String _appId = "34018d65-466d-4a91-8e92-29ca49f022c4";
private String _apiKey = "oUywMpwZcIzZO5AWnfDx"; private String _apiKey = "oUywMpwZcIzZO5AWnfDx";
@ -355,22 +356,13 @@ public class Chat extends MiniPlugin
private boolean msgContainsHack(String msg) private boolean msgContainsHack(String msg)
{ {
msg = " " + msg.toLowerCase() + " "; msg = " " + msg.toLowerCase().replaceAll("[^a-z ]", "") + " ";
msg.replaceAll("[^a-zA-Z ]", " "); for (String s : _hackusations) {
if (msg.contains(" " + s + " ")) {
return (msg.contains(" hack ") || return true;
msg.contains(" hacker ") || }
msg.contains(" hacking ") || }
msg.contains(" cheat ") || return false;
msg.contains(" cheater ") ||
msg.contains(" cheating ") ||
msg.contains(" forcefield ") ||
msg.contains(" flyhack ") ||
msg.contains(" flyhacker ") ||
msg.contains(" flyhacking ") ||
msg.contains(" autoclick ") ||
msg.contains(" flyhacking ") ||
msg.contains(" aimbot "));
} }
public String hasher(JSONArray hasharray, String message) public String hasher(JSONArray hasharray, String message)

View File

@ -46,6 +46,7 @@ import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
public class WorldManager extends MiniPlugin public class WorldManager extends MiniPlugin
{ {
@ -61,6 +62,18 @@ public class WorldManager extends MiniPlugin
super("World Manager", manager.getPlugin()); super("World Manager", manager.getPlugin());
Manager = manager; Manager = manager;
//Added by TheMineBench, to stop day cycles instead of setting the time on update event.
World world = UtilWorld.getWorld("world");
world.setGameRuleValue("doDaylightCycle", "false");
if (Manager.Type == HubType.Halloween)
world.setTime(16000);
else
world.setTime(6000);
world.setStorm(false);
world.setThundering(false);
} }
@EventHandler @EventHandler
@ -216,7 +229,8 @@ public class WorldManager extends MiniPlugin
ent.remove(); ent.remove();
} }
} }
//Removed by TheMineBench, time is now stopped when the WorldManager is created
/*
@EventHandler @EventHandler
public void UpdateWeather(UpdateEvent event) public void UpdateWeather(UpdateEvent event)
{ {
@ -232,7 +246,17 @@ public class WorldManager extends MiniPlugin
world.setStorm(false); world.setStorm(false);
} }
*/
//Added by TheMineBench. Stops weather from changing.
@EventHandler
public void OnWeather(WeatherChangeEvent event) {
if (!event.getWorld().getName().equals("world"))
return;
event.setCancelled(true);
}
@EventHandler @EventHandler
public void HalloweenUpdates(UpdateEvent event) public void HalloweenUpdates(UpdateEvent event)
{ {

View File

@ -63,7 +63,9 @@ public abstract class FireGrenadeBase extends Grenade
final int round = game.getRound(); final int round = game.getRound();
for (final Block block : blocks.keySet()) for (final Block block : blocks.keySet())
{ {
if (block.getType() != Material.AIR && !block.getType().name().toLowerCase().contains("step"))
//Edited by TheMineBench, to keep the two-half-slabs from burning
if (block.getType() != Material.AIR && !block.getType().name().toLowerCase().contains("step") || block.getType().name().toLowerCase().contains("double"))
continue; continue;
if (!UtilBlock.solid(block.getRelative(BlockFace.DOWN))) if (!UtilBlock.solid(block.getRelative(BlockFace.DOWN)))

View File

@ -16,13 +16,16 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftArrow;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockEvent;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityShootBowEvent; import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.entity.ProjectileHitEvent;
@ -112,7 +115,6 @@ public class TurfForts extends TeamGame
new Kit[] new Kit[]
{ {
new KitMarksman(manager), new KitMarksman(manager),
new KitInfiltrator(manager), new KitInfiltrator(manager),
new KitShredder(manager), new KitShredder(manager),
@ -124,7 +126,6 @@ public class TurfForts extends TeamGame
"", "",
"Each kill advances your turf forwards.", "Each kill advances your turf forwards.",
"Take over all the turf to win!" "Take over all the turf to win!"
}); });
this.StrictAntiHack = true; this.StrictAntiHack = true;
@ -268,7 +269,7 @@ public class TurfForts extends TeamGame
EndCheck(); EndCheck();
} }
} }
@EventHandler @EventHandler
public void BowCancel(EntityShootBowEvent event) public void BowCancel(EntityShootBowEvent event)
{ {
@ -280,12 +281,13 @@ public class TurfForts extends TeamGame
((Player) event.getEntity()).updateInventory(); ((Player) event.getEntity()).updateInventory();
} }
} }
@EventHandler @EventHandler(ignoreCancelled = true)
public void BlockPlace(BlockPlaceEvent event) public void BlockPlace(BlockPlaceEvent event)
{ {
if (event.isCancelled()) //Remoeved and replaced by ignoreCancelled = true
return; //if (event.isCancelled())
// return;
GameTeam team = GetTeam(event.getPlayer()); GameTeam team = GetTeam(event.getPlayer());
if (team == null) if (team == null)
@ -324,6 +326,7 @@ public class TurfForts extends TeamGame
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
} }
@EventHandler @EventHandler
@ -331,7 +334,7 @@ public class TurfForts extends TeamGame
{ {
if (event.getEntity().getShooter() == null) if (event.getEntity().getShooter() == null)
return; return;
if (!(event.getEntity() instanceof Arrow)) if (!(event.getEntity() instanceof Arrow))
return; return;
@ -347,6 +350,7 @@ public class TurfForts extends TeamGame
Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable()
{ {
public void run() public void run()
{ {
try try
@ -366,21 +370,22 @@ public class TurfForts extends TeamGame
int z = fieldZ.getInt(entityArrow); int z = fieldZ.getInt(entityArrow);
Block block = arrow.getWorld().getBlockAt(x, y, z); Block block = arrow.getWorld().getBlockAt(x, y, z);
if (block.getTypeId() == 35) if (block.getTypeId() == 35)
{ {
if (block.getData() == 14 && team.GetColor() != ChatColor.RED) if (block.getData() == 14 /* && team.GetColor() != ChatColor.RED */)
{ {
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK.getId()); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK.getId());
} }
else if (block.getData() == 3 && team.GetColor() != ChatColor.AQUA) else if (block.getData() == 3 /* && team.GetColor() != ChatColor.AQUA */)
{ {
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.LAPIS_BLOCK.getId()); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.LAPIS_BLOCK.getId());
} }
Bukkit.getPluginManager().callEvent(new ShredBlockEvent(block, arrow)); Bukkit.getPluginManager().callEvent(new ShredBlockEvent(block, arrow));
block.breakNaturally();
block.setType(Material.AIR);
} }
arrow.remove(); arrow.remove();
@ -655,7 +660,8 @@ public class TurfForts extends TeamGame
} }
} }
} }
/*
@EventHandler @EventHandler
public void ItemRemoval(UpdateEvent event) public void ItemRemoval(UpdateEvent event)
{ {
@ -674,7 +680,37 @@ public class TurfForts extends TeamGame
ent.remove(); ent.remove();
} }
} }
*/
//Added by TheMineBench.
@EventHandler
public void blockBreak(BlockBreakEvent event) {
Block block = event.getBlock();
GameTeam team = GetTeam(event.getPlayer());
GameTeam otherTeam = GetOtherTeam(team);
if (block.getType().equals(Material.WOOL) && (block.getData() == 14 && team.GetColor() != ChatColor.RED) || (block.getData() == 3 && team.GetColor() != ChatColor.AQUA))
{
UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot break the " + F.elem(otherTeam.GetColor() + otherTeam.GetName()) + " team's blocks!"));
event.setCancelled(true);
return;
}
}
public GameTeam GetOtherTeam(GameTeam team) {
return team.GetColor() == ChatColor.RED ? GetTeam(ChatColor.AQUA) : GetTeam(ChatColor.RED);
}
@EventHandler
public void onItem(ItemSpawnEvent e) {
if (e.getEntityType().equals(EntityType.DROPPED_ITEM)) {
e.setCancelled(true);
}
}
@Override @Override
public void EndCheck() public void EndCheck()
{ {
@ -704,7 +740,7 @@ public class TurfForts extends TeamGame
if (player.isOnline()) if (player.isOnline())
AddGems(player, 10, "Participation", false, false); AddGems(player, 10, "Participation", false, false);
} }
//End //End
SetState(GameState.End); SetState(GameState.End);
} }

View File

@ -32,6 +32,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.player.PlayerVelocityEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Scoreboard;
@ -121,7 +122,12 @@ public class GameLobbyManager implements Listener, IPacketHandler
packetHandler.addPacketHandler(this); packetHandler.addPacketHandler(this);
World world = UtilWorld.getWorld("world"); World world = UtilWorld.getWorld("world");
world.setTime(6000);
world.setStorm(false);
world.setThundering(false);
world.setGameRuleValue("doDaylightCycle", "false");
spawn = new Location(world, 0, 104, 0); spawn = new Location(world, 0, 104, 0);
_gameText = new Location(world, 0, 130, 50); _gameText = new Location(world, 0, 130, 50);
@ -752,9 +758,9 @@ public class GameLobbyManager implements Listener, IPacketHandler
{ {
if (event.getType() == UpdateType.FAST) if (event.getType() == UpdateType.FAST)
{ {
spawn.getWorld().setTime(6000); //spawn.getWorld().setTime(6000);
spawn.getWorld().setStorm(false); //spawn.getWorld().setStorm(false);
spawn.getWorld().setThundering(false); //spawn.getWorld().setThundering(false);
} }
@ -770,7 +776,16 @@ public class GameLobbyManager implements Listener, IPacketHandler
ScoreboardDisplay(event); ScoreboardDisplay(event);
ScoreboardSet(event); ScoreboardSet(event);
} }
@EventHandler
public void onWeather(WeatherChangeEvent event) {
if (!event.getWorld().equals(spawn.getWorld()))
return;
event.setCancelled(true);
}
@EventHandler @EventHandler
private void RemoveInvalidEnts(GameStateChangeEvent event) private void RemoveInvalidEnts(GameStateChangeEvent event)
{ {