Bug from JIRA

This commit is contained in:
Sam 2018-07-22 15:53:43 +01:00 committed by Alexander Meech
parent 6688e9cefc
commit a8077aae15
9 changed files with 119 additions and 107 deletions

View File

@ -67,8 +67,10 @@ public class BlowAKissEffect extends Effect
{ {
for (Player player : UtilPlayer.getNearby(_fixedLoc, 1.25)) for (Player player : UtilPlayer.getNearby(_fixedLoc, 1.25))
{ {
if (player.equals(_player)) if (player.equals(_player) || UtilPlayer.isSpectator(player))
{
continue; continue;
}
UtilParticle.PlayParticle(UtilParticle.ParticleType.HEART, player.getLocation(), 0.25f, 0.25f, 0.25f, 0.5f, 7, UtilParticle.ViewDist.NORMAL); UtilParticle.PlayParticle(UtilParticle.ParticleType.HEART, player.getLocation(), 0.25f, 0.25f, 0.25f, 0.5f, 7, UtilParticle.ViewDist.NORMAL);
UtilServer.broadcast(F.main("Blow A Kiss", F.name(_player.getName()) + " blows a kiss at " + F.name(player.getName()) + "!")); UtilServer.broadcast(F.main("Blow A Kiss", F.name(_player.getName()) + " blows a kiss at " + F.name(player.getName()) + "!"));

View File

@ -146,7 +146,6 @@ import nautilus.game.arcade.game.Game;
import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.game.GameServerConfig; import nautilus.game.arcade.game.GameServerConfig;
import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam;
import nautilus.game.arcade.game.GameTeam.PlayerState;
import nautilus.game.arcade.game.games.event.EventModule; import nautilus.game.arcade.game.games.event.EventModule;
import nautilus.game.arcade.game.games.minecraftleague.MinecraftLeague; import nautilus.game.arcade.game.games.minecraftleague.MinecraftLeague;
import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Kit;
@ -941,59 +940,63 @@ public class ArcadeManager extends MiniPlugin implements IRelation
@EventHandler @EventHandler
public void StaffIncognito(IncognitoStatusChangeEvent event) public void StaffIncognito(IncognitoStatusChangeEvent event)
{ {
Player player = event.getPlayer();
if (event.getNewState()) //Is going into incognito if (event.getNewState()) //Is going into incognito
{ {
GameTeam team = _game.GetTeam(event.getPlayer()); GameTeam team = _game.GetTeam(player);
// Color their name if they are on a team // Color their name if they are on a team
if (team != null) if (team != null)
{ {
UtilServer.broadcast(F.sys("Quit", team.GetColor() + event.getPlayer().getName())); UtilServer.broadcast(F.sys("Quit", team.GetColor() + player.getName()));
} }
else else
{ {
UtilServer.broadcast(F.sys("Quit", event.getPlayer().getName())); UtilServer.broadcast(F.sys("Quit", player.getName()));
} }
if (_game != null && _game.GetCountdown() > 0) //Lobby is counting down if (_game != null && _game.GetCountdown() > 0) //Lobby is counting down
{ {
// Remove Data // Remove Data
_game.getTeamModule().getPreferences().remove(event.getPlayer()); _game.getTeamModule().getPreferences().remove(player);
_game.GetPlayerKits().remove(event.getPlayer()); _game.GetPlayerKits().remove(player);
_game.GetPlayerGems().remove(event.getPlayer()); _game.GetPlayerGems().remove(player);
// Leave Team // Leave Team
if (team != null) if (team != null)
{ {
team.RemovePlayer(event.getPlayer()); team.RemovePlayer(player);
} }
} }
else if (_game != null && _game.GetState() != GameState.Recruit) //Game is NOT in lobby else if (_game != null && _game.GetState() != GameState.Recruit) //Game is NOT in lobby
{ {
addSpectator(event.getPlayer(), true); addSpectator(player, true);
_specList.add(event.getPlayer()); _specList.add(player);
if (_game.GetTeam(event.getPlayer()) != null)
_game.GetTeam(event.getPlayer()).SetPlayerState(event.getPlayer(), PlayerState.OUT); // Leave Team
if (team != null)
{
team.RemovePlayer(player);
}
} }
else //Game is in lobby else //Game is in lobby
{ {
_specList.add(event.getPlayer()); _specList.add(player);
} }
} }
else //Is coming out of incognito else //Is coming out of incognito
{ {
UtilServer.broadcast(F.sys("Join", event.getPlayer().getName())); UtilServer.broadcast(F.sys("Join", player.getName()));
if (_game != null) if (_game != null)
{ {
if (!(_game.GetState() == GameState.Live || _game.GetState() == GameState.Prepare)) if (!_game.InProgress())
{ {
_specList.remove(event.getPlayer()); _specList.remove(player);
if (_game.GetTeam(event.getPlayer()) != null)
_game.SetPlayerState(event.getPlayer(), PlayerState.IN);
} }
if (isSpectator(event.getPlayer())) if (isSpectator(player))
{ {
event.show(false); event.show(false);
} }

View File

@ -1270,7 +1270,12 @@ public class Build extends Game
@EventHandler @EventHandler
public void entSpawn(CreatureSpawnEvent event) public void entSpawn(CreatureSpawnEvent event)
{ {
if (event.getSpawnReason() != SpawnReason.SPAWNER_EGG && (event.getEntityType() != EntityType.ARMOR_STAND || event.getSpawnReason() != SpawnReason.DEFAULT)) if (!InProgress())
{
return;
}
if (event.getSpawnReason() != SpawnReason.SPAWNER_EGG && (event.getEntityType() != EntityType.ARMOR_STAND || event.getSpawnReason() != SpawnReason.DEFAULT && event.getSpawnReason() != SpawnReason.CUSTOM))
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -1723,11 +1728,6 @@ public class Build extends Game
@Override @Override
public Location GetSpectatorLocation() public Location GetSpectatorLocation()
{ {
if (GetPlayers(true).size() > 0)
{
return UtilAlg.Random(GetPlayers(true)).getLocation().add(0, 1, 0);
}
return GetTeamList().get(0).GetSpawn(); return GetTeamList().get(0).GetSpawn();
} }
@ -1831,7 +1831,10 @@ public class Build extends Game
@Override @Override
public void EndCheck() public void EndCheck()
{ {
if (GetPlayers(true).isEmpty())
{
SetState(GameState.End);
}
} }
@Override @Override

View File

@ -1,5 +1,16 @@
package nautilus.game.arcade.game.games.smash.perks.magmacube; package nautilus.game.arcade.game.games.smash.perks.magmacube;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilParticle;
import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ParticleType;
@ -11,19 +22,8 @@ import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
import mineplex.minecraft.game.core.damage.CustomDamageEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.Game;
import nautilus.game.arcade.kit.Perk;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import java.util.HashMap; import nautilus.game.arcade.kit.Perk;
import java.util.Map;
import java.util.UUID;
public class PerkMagmaBoost extends Perk public class PerkMagmaBoost extends Perk
{ {
@ -49,19 +49,16 @@ public class PerkMagmaBoost extends Perk
setDesc(C.cGray + "Kills give +1 Damage, -15% Knockback Taken and +1 Size.", C.cGray + "Kill bonuses can stack " + _maxStacks + " times, and reset on death."); setDesc(C.cGray + "Kills give +1 Damage, -15% Knockback Taken and +1 Size.", C.cGray + "Kill bonuses can stack " + _maxStacks + " times, and reset on death.");
} }
@EventHandler @Override
public void reset(GameStateChangeEvent event) public void unregisteredEvents()
{ {
if (event.GetState() == Game.GameState.End) _kills.clear();
{
_kills.clear();
}
} }
@EventHandler @EventHandler
public void kill(CombatDeathEvent event) public void kill(CombatDeathEvent event)
{ {
Player killed = (Player) event.GetEvent().getEntity(); Player killed = event.GetEvent().getEntity();
_kills.remove(killed.getUniqueId()); _kills.remove(killed.getUniqueId());

View File

@ -13,6 +13,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
@ -126,7 +127,7 @@ public class PerkDeathsGrasp extends Perk
continue; continue;
} }
if (UtilMath.offset(player, other) < 2) if (UtilMath.offsetSquared(player, other) < 4)
{ {
collide(player, other); collide(player, other);
_live.remove(player); _live.remove(player);
@ -239,4 +240,10 @@ public class PerkDeathsGrasp extends Perk
damager.getWorld().playSound(damager.getLocation(), Sound.ZOMBIE_HURT, 1f, 2f); damager.getWorld().playSound(damager.getLocation(), Sound.ZOMBIE_HURT, 1f, 2f);
} }
@EventHandler
public void playerDeath(PlayerDeathEvent event)
{
_live.remove(event.getEntity());
}
} }

View File

@ -672,50 +672,46 @@ public class SpeedBuilders extends SoloGame
if (_perfectBuild.containsKey(player)) if (_perfectBuild.containsKey(player))
return; return;
Manager.runSyncLater(new Runnable() Manager.runSyncLater(() ->
{ {
@Override if (!IsLive())
public void run() return;
if (_state != SpeedBuildersState.BUILDING)
return;
if (!_buildRecreations.containsKey(player))
return;
if (_perfectBuild.containsKey(player))
return;
if (_buildRecreations.get(player).calculateScoreFromBuild(_currentBuild) == _currentBuild.getPerfectScore())
{ {
if (!IsLive()) long timeElapsed = System.currentTimeMillis() - _stateTime;
return; PerfectBuildEvent perfectBuildEvent = new PerfectBuildEvent(player, timeElapsed, SpeedBuilders.this);
if (_state != SpeedBuildersState.BUILDING) Bukkit.getServer().getPluginManager().callEvent(perfectBuildEvent);
return;
if (!_buildRecreations.containsKey(player)) player.playSound(player.getEyeLocation(), Sound.LEVEL_UP, 10F, 1F);
return;
if (_perfectBuild.containsKey(player)) String time = UtilTime.convertString(timeElapsed, 1, UtilTime.TimeUnit.SECONDS);
return; Announce(F.main("Build", F.name(player.getName()) + " got a perfect build in " + F.time(time) + "!"));
if (_buildRecreations.get(player).calculateScoreFromBuild(_currentBuild) == _currentBuild.getPerfectScore()) _perfectBuild.put(player, System.currentTimeMillis());
if (_perfectBuild.size() == _buildRecreations.size())
{ {
long timeElapsed = System.currentTimeMillis() - _stateTime; // Everyone has a perfect build
PerfectBuildEvent perfectBuildEvent = new PerfectBuildEvent(player, timeElapsed, SpeedBuilders.this); _allPerfect = true;
}
Bukkit.getServer().getPluginManager().callEvent(perfectBuildEvent); else
{
player.playSound(player.getEyeLocation(), Sound.LEVEL_UP, 10F, 1F); // Don't display middle text if everyone now has a perfect build
UtilTextMiddle.display("", C.cGreen + "Perfect Match", 0, 30, 10, player);
String time = UtilTime.convertString(timeElapsed, 1, UtilTime.TimeUnit.SECONDS);
Announce(F.main("Build", F.name(player.getName()) + " got a perfect build in " + F.time(time) + "!"));
_perfectBuild.put(player, System.currentTimeMillis());
if (_perfectBuild.size() == _buildRecreations.size())
{
// Everyone has a perfect build
_allPerfect = true;
}
else
{
// Don't display middle text if everyone now has a perfect build
UtilTextMiddle.display("", C.cGreen + "Perfect Match", 0, 30, 10, player);
}
} }
} }
}, 1L); }, 0);
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
@ -880,6 +876,8 @@ public class SpeedBuilders extends SoloGame
//Sometimes it stops on 0.1 and has one bar green //Sometimes it stops on 0.1 and has one bar green
UtilTextBottom.displayProgress("Time Left:", 0, UtilTime.MakeStr(0), UtilServer.getPlayers()); UtilTextBottom.displayProgress("Time Left:", 0, UtilTime.MakeStr(0), UtilServer.getPlayers());
for (Player player : GetPlayers(true))
if (_allPerfect) if (_allPerfect)
{ {
UtilTextMiddle.display("", C.cAqua + GUARDIAN_NAME + " is Impressed!", 0, 100, 10); UtilTextMiddle.display("", C.cAqua + GUARDIAN_NAME + " is Impressed!", 0, 100, 10);

View File

@ -108,21 +108,26 @@ public class PerkFletcher extends Perk
public void FletchShootBow(EntityShootBowEvent event) public void FletchShootBow(EntityShootBowEvent event)
{ {
if (!(event.getEntity() instanceof Player)) if (!(event.getEntity() instanceof Player))
{
return; return;
}
Player player = (Player)event.getEntity(); Player player = (Player) event.getEntity();
if (!hasPerk(player)) if (!hasPerk(player))
{
return; return;
}
for (int i=0 ; i<=8 ; i++) for (ItemStack itemStack : player.getInventory().getContents())
if (isFletchedArrow(player.getInventory().getItem(i))) {
if (isFletchedArrow(itemStack))
{ {
_fletchArrows.add(event.getProjectile()); _fletchArrows.add(event.getProjectile());
((CraftArrow) event.getProjectile()).getHandle().fromPlayer = 0; ((CraftArrow) event.getProjectile()).getHandle().fromPlayer = 0;
return; return;
} }
}
} }
@EventHandler @EventHandler
@ -213,14 +218,7 @@ public class PerkFletcher extends Perk
@EventHandler @EventHandler
public void FletchDeathRemove(PlayerDeathEvent event) public void FletchDeathRemove(PlayerDeathEvent event)
{ {
HashSet<org.bukkit.inventory.ItemStack> remove = new HashSet<org.bukkit.inventory.ItemStack>(); event.getDrops().removeIf(this::isFletchedArrow);
for (org.bukkit.inventory.ItemStack item : event.getDrops())
if (isFletchedArrow(item))
remove.add(item);
for (org.bukkit.inventory.ItemStack item : remove)
event.getDrops().remove(item);
} }
@EventHandler @EventHandler
@ -231,7 +229,7 @@ public class PerkFletcher extends Perk
return; return;
} }
if (!hasPerk((Player)event.getWhoClicked())) if (!hasPerk((Player) event.getWhoClicked()))
{ {
return; return;
} }

View File

@ -22,6 +22,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerArmorStandManipulateEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.player.PlayerVelocityEvent;
import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.event.weather.WeatherChangeEvent;
@ -731,6 +732,15 @@ public abstract class LobbyManager implements Listener
equipActiveKit(event.getPlayer()); equipActiveKit(event.getPlayer());
} }
@EventHandler
public void onInteractArmorStand(PlayerArmorStandManipulateEvent event)
{
if (_manager.GetGame() == null || _manager.GetGame().GetState() == GameState.Recruit)
{
event.setCancelled(true);
}
}
public Location getGameText() public Location getGameText()
{ {
return _gameText; return _gameText;

View File

@ -80,12 +80,6 @@ public class NewGameLobbyManager extends LobbyManager
} }
} }
@EventHandler
public void onInteractArmorStand(PlayerArmorStandManipulateEvent event)
{
event.setCancelled(true);
}
@Override @Override
public void createTeams(Game game) public void createTeams(Game game)
{ {