Bug FIxes / Optimizations

FIxes and Optimizations listed in Discord
This commit is contained in:
Daniel Waggner 2021-06-18 14:48:43 -07:00
parent a26b0a14e7
commit 11fc0c5b8c
28 changed files with 219 additions and 100 deletions

View File

@ -17,7 +17,7 @@ public enum GameDisplay implements Display
CastleAssault("Castle Assault", Material.DIAMOND_CHESTPLATE, (byte)0, GameCategory.NONE, 67, true),
CastleAssaultTDM("Castle Assault TDM", Material.DIAMOND_CHESTPLATE, (byte)0, GameCategory.NONE, 68, false),
CastleSiege("Castle Siege", Material.DIAMOND_CHESTPLATE, (byte)0, GameCategory.NONE, 4, true),
BetaCastleSiege("Castle Siege", Material.DIAMOND_CHESTPLATE, (byte)0, GameCategory.NONE, 4, true),
BetaCastleSiege("Castle Siege", Material.GOLD_CHESTPLATE, (byte)0, GameCategory.NONE, 4, true),
ChampionsDominate("Champions Domination", "Champions", Material.BEACON, (byte)0, GameCategory.HARDCORE, 6, true),
ChampionsTDM("Champions TDM", "Champions", Material.GOLD_SWORD, (byte)0, GameCategory.NONE, 5, true),
Christmas("Christmas Chaos", Material.SNOW_BALL, (byte)0, GameCategory.EVENT, 8, false),

View File

@ -33,6 +33,8 @@ import java.util.concurrent.TimeUnit;
public class CombatManager extends MiniClientPlugin<ClientCombat>
{
public static String _cause;
public enum AttackReason
{
Attack,
@ -131,6 +133,8 @@ public class CombatManager extends MiniClientPlugin<ClientCombat>
}
getLog(damagee).Attacked(UtilEnt.getName(damagerEnt), event.getDamage(), damagerEnt, cause, null);
_cause = cause;
}
// Damager is WORLD
else
@ -207,6 +211,7 @@ public class CombatManager extends MiniClientPlugin<ClientCombat>
reason = "Fireball";
}
}
_cause = reason;
}
if (event.GetDamagerEntity(true) instanceof Player)
@ -247,7 +252,7 @@ public class CombatManager extends MiniClientPlugin<ClientCombat>
source = "Cactus";
break;
case CUSTOM:
source = "AlexTheCoder\'s Wrath";
source = "AlexTheCoder's Wrath";
break;
case DROWNING:
source = "Water";
@ -306,7 +311,9 @@ public class CombatManager extends MiniClientPlugin<ClientCombat>
break;
}
_cause = source;
return Pair.create(source, reason);
}
@EventHandler(priority = EventPriority.LOW)

View File

@ -60,7 +60,11 @@ import mineplex.minecraft.game.core.damage.DamageManager;
import nautilus.game.arcade.game.GameServerConfig;
import net.minecraft.server.v1_8_R3.MinecraftServer;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.plugin.ServicePriority;
@ -103,7 +107,7 @@ public class Arcade extends JavaPlugin
public void onEnable()
{
plugin = this;
clearAll();
// modding the config.yml file in Arcade
this.saveDefaultConfig();
FileConfiguration config = this.getConfig();
@ -256,6 +260,18 @@ public class Arcade extends JavaPlugin
}
public void clearAll() {
for(World w : getServer().getWorlds()) {
for(Chunk c : w.getLoadedChunks()) {
c.load();
for(Entity e : c.getEntities()) {
e.remove();
}
c.unload(true);
}
}
}
@Override
public void onDisable()
@ -263,6 +279,8 @@ public class Arcade extends JavaPlugin
for (Player player : UtilServer.getPlayers())
player.kickPlayer("Server Shutdown");
clearAll();
if (_gameManager.GetGame() != null)
if (_gameManager.GetGame().WorldData != null)
_gameManager.GetGame().WorldData.Uninitialize();

View File

@ -219,7 +219,7 @@ public enum GameType implements Voteable
Event(EventGame.class, GameDisplay.Event, new GameType[]{
GameType.BaconBrawl, GameType.Barbarians, GameType.Bridge, GameType.Build, GameType.Build,
GameType.CastleSiege, GameType.ChampionsDominate, GameType.ChampionsTDM, GameType.Christmas,
GameType.CastleSiege, GameType.BetaCastleSiege, GameType.ChampionsDominate, GameType.ChampionsTDM, GameType.Christmas,
GameType.DeathTag, GameType.DragonEscape, GameType.Dragons,
GameType.Draw, GameType.Evolution, GameType.Gravity, GameType.Halloween, GameType.HideSeek,
GameType.Micro, GameType.MilkCow, GameType.MineStrike, GameType.BawkBawkBattles,

View File

@ -7,6 +7,8 @@ import mineplex.core.preferences.Preference;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.combat.CombatComponent;
import mineplex.minecraft.game.core.combat.CombatManager;
import mineplex.minecraft.game.core.combat.DeathMessageType;
import mineplex.minecraft.game.core.condition.ConditionFactory;
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
import nautilus.game.arcade.ArcadeManager;
@ -35,6 +37,7 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEvent;
@ -47,6 +50,8 @@ import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
import static org.bukkit.event.entity.EntityDamageEvent.DamageCause.ENTITY_EXPLOSION;
//import com.mineplex.anticheat.checks.combat.KillauraTypeD;
//import mineplex.core.antihack.AntiHack;
@ -687,47 +692,129 @@ public class BetaCastleSiege extends TeamGame
}
@EventHandler
public void announceDeaths(PlayerDeathEvent event){
public void announceDeaths(PlayerDeathEvent event) {
Random rand = new Random();
Player killed = event.getEntity();
String killedName = "Unknown";
if (killed instanceof CraftPlayer)
{
if (killed instanceof CraftPlayer) {
killedName = killed.getName();
}
else
{
} else {
killedName = UtilEnt.getName(killed);
}
Player killer = killed.getKiller();
String killerName = "Unknown";
if (killer instanceof CraftPlayer)
{
if (killer instanceof CraftPlayer) {
killerName = killer.getName();
}
else
{
} else {
killerName = UtilEnt.getName(killer);
}
GameTeam murderedDudesTeam = Manager.GetGame().GetTeam(killed);
if (!(murderedDudesTeam == _defenders)){
if (!(murderedDudesTeam == _defenders)) {
return;
}
if (_wolves.contains(killed)){
if (_wolves.contains(killed)) {
return;
}
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
+ killerName + C.cGray
+ " got the last chomp on " + C.cAqua
+ killedName + C.cGray + ".");
if (CombatManager._cause.equals("Explosion")) {
int explosionDeaths = rand.nextInt(4);
switch (explosionDeaths) {
case 0:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " was blasted into oblivion!");
break;
case 1:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " went out with a bang");
break;
case 2:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " tried poking a TNT carrier.");
break;
case 3:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " was obliterated by the Undead's nuclear arsenal.");
break;
}
}
else if (!CombatManager._cause.equals("AlexTheCoder's Wrath")) {
int pvpDeaths = rand.nextInt(4);
switch (pvpDeaths) {
case 0:
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
+ killerName + C.cGray
+ " ate " + C.cAqua
+ killedName + C.cGray + "'s last remaining vital organ.");
break;
case 1:
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
+ killerName + C.cGray
+ " got the last chomp on " + C.cAqua
+ killedName + C.cGray + ".");
break;
case 2:
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
+ killerName + C.cGray
+ " made a delicacy out of " + C.cAqua
+ killedName + C.cGray + "'s liver.");
break;
case 3:
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cAqua
+ killedName + C.cGray + " died honorably at " + C.cRed
+ killerName + C.cGray + "'s bare rotting hands.");
break;
}
}
else {
int unexplainedDeaths = rand.nextInt(4);
switch (unexplainedDeaths) {
case 0:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " died from... \"unnatural\" causes...");
break;
case 1:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " suffered AlexTheCoder's wrath!");
break;
case 2:
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " had a stroke from LT's incompetence.");
break;
case 3:
int imposterCountGen = rand.nextInt(7);
String imposterCount = String.valueOf(imposterCountGen);
if (imposterCountGen == 0) {
imposterCount = "no";
}
Bukkit.broadcastMessage(C.cBlue + "Death> "
+ C.cAqua + killedName + C.cGray
+ " was ejected. There are "
+ imposterCount + " imposters remaining");
break;
}
}
}
public nautilus.game.arcade.game.games.castlesiegebeta.BetaCastleSiegeKing getKing()

View File

@ -593,53 +593,53 @@ public class CastleSiegeNew extends TeamGame
return _wolves.contains(player);
}
@EventHandler
public void announceDeaths(PlayerDeathEvent event){
if (!Beta.enableBeta){
DeathOut = false;
return;
}
Player killed = event.getEntity();
String killedName = "Unknown";
if (killed instanceof CraftPlayer)
{
killedName = killed.getName();
}
else
{
killedName = UtilEnt.getName(killed);
}
Player killer = killed.getKiller();
String killerName = "Unknown";
if (killer instanceof CraftPlayer)
{
killerName = killer.getName();
}
else
{
killerName = UtilEnt.getName(killer);
}
GameTeam murderedDudesTeam = Manager.GetGame().GetTeam(killed);
if (!(murderedDudesTeam == _defenders)){
return;
}
if (_wolves.contains(killed)){
return;
}
Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
+ killerName + C.cGray
+ " got the last chomp on " + C.cAqua
+ killedName + C.cGray + ".");
}
// @EventHandler
// public void announceDeaths(PlayerDeathEvent event){
// if (!Beta.enableBeta){
// DeathOut = false;
// return;
// }
//
// Player killed = event.getEntity();
// String killedName = "Unknown";
//
// if (killed instanceof CraftPlayer)
// {
// killedName = killed.getName();
// }
// else
// {
// killedName = UtilEnt.getName(killed);
// }
//
// Player killer = killed.getKiller();
// String killerName = "Unknown";
//
// if (killer instanceof CraftPlayer)
// {
// killerName = killer.getName();
// }
// else
// {
// killerName = UtilEnt.getName(killer);
// }
//
// GameTeam murderedDudesTeam = Manager.GetGame().GetTeam(killed);
//
// if (!(murderedDudesTeam == _defenders)){
// return;
// }
//
// if (_wolves.contains(killed)){
// return;
// }
//
// Bukkit.broadcastMessage(C.cBlue + "Death> " + C.cRed
// + killerName + C.cGray
// + " got the last chomp on " + C.cAqua
// + killedName + C.cGray + ".");
//
// }
public CastleSiegeKing getKing()
{

View File

@ -62,6 +62,7 @@ public class CastleSiegeTNTManager implements Listener
private final CastleSiegeNew _host;
private final Map<Player, Long> _tntCarrier;
public static String _tntBomber;
private List<Location> _tntSpawns;
private List<Location> _tntWeaknesses;
private long _lastTNT;
@ -115,6 +116,7 @@ public class CastleSiegeTNTManager implements Listener
}
Player player = event.getPlayer();
_tntBomber = player.toString();
Block block = event.getClickedBlock();
if (block == null || block.getType() != Material.TNT || UtilPlayer.isSpectator(player) || !_host.getUndead().HasPlayer(player) || _tntCarrier.containsKey(player))

View File

@ -5,18 +5,21 @@ import mineplex.core.common.util.UtilServer;
import mineplex.core.shop.item.IButton;
import mineplex.core.shop.page.ShopPageBase;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.Game;
import nautilus.game.arcade.game.games.Beta;
import nautilus.game.arcade.game.games.castlesiegenew.kits.KitHumanPaladin;
import nautilus.game.arcade.game.games.castlesiegenew.perks.PerkPaladinBoost;
import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
import nautilus.game.arcade.managers.GameHostManager;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.Comparator;
import java.util.concurrent.TimeUnit;
public class BetaButton implements IButton {
@ -47,12 +50,17 @@ public class BetaButton implements IButton {
if (Beta.enableBeta) {
Beta.enableBeta = false;
_arcadeManager.GetGame().Announce(C.cAquaB + "Disabled BETA Features.", true);
GameHostManager._games.remove(GameType.BetaCastleSiege);
GameHostManager._games.add(GameType.CastleSiege);
GameHostManager._games.sort(Comparator.comparing(GameType::getName));
return;
}
Beta.enableBeta = true;
_arcadeManager.GetGame().Announce(C.cAquaB + "Enabled BETA Features. Caution: Highly Experimental!", true);
GameHostManager._games.add(GameType.BetaCastleSiege);
GameHostManager._games.remove(GameType.CastleSiege);
GameHostManager._games.sort(Comparator.comparing(GameType::getName));
}
}

View File

@ -22,11 +22,6 @@ public class ChooseMapButton implements IButton
_arcadeManager = arcadeManager;
_privateServerShop = privateServerShop;
_gameType = gameType;
if(_gameType == GameType.BetaCastleSiege){
_gameType = GameType.CastleSiege;
}
_map = map;
}
@ -38,9 +33,6 @@ public class ChooseMapButton implements IButton
{
_arcadeManager.GetGameCreationManager().MapSource = _gameType.getMapSource()[0];
}
else{
Bukkit.broadcastMessage(C.cRed + "Error Loading Maps: None defined for " + _gameType);
}
_arcadeManager.GetGameCreationManager().MapPref = _map.replaceAll(" ", "");
_arcadeManager.GetGame().setGame(_gameType, player, true);

View File

@ -19,9 +19,9 @@ public class ChooseMapPage extends BasePage
super(plugin, shop, "Choose Map", player);
_gameType = gameType;
if(_gameType == GameType.BetaCastleSiege){
_gameType = GameType.CastleSiege;
}
// if(_gameType == GameType.BetaCastleSiege){
// _gameType = GameType.CastleSiege;
// }
buildPage();
}
@ -33,6 +33,10 @@ public class ChooseMapPage extends BasePage
int slot = 9;
// if(_gameType == GameType.BetaCastleSiege){
// _gameType = GameType.CastleSiege;
// }
String loadMaps = _gameType.getName();
if(_gameType.getMapSource() != null)

View File

@ -83,15 +83,15 @@ public class SetGamePage extends BasePage
{
if (clickType == ClickType.LEFT)
{
if(type == GameType.CastleSiege){
if(Beta.enableBeta){
getPlugin().GetGame().setGame(GameType.BetaCastleSiege, player, true);
}
else{
getPlugin().GetGame().setGame(GameType.CastleSiege, player, true);
}
}
// if(type == GameType.CastleSiege){
// if(Beta.enableBeta){
// getPlugin().GetGame().setGame(GameType.BetaCastleSiege, player, true);
// }
// else{
// getPlugin().GetGame().setGame(GameType.CastleSiege, player, true);
// }
// }
getPlugin().GetGame().setGame(type, player, true);
player.closeInventory();
}
else if (clickType == ClickType.RIGHT)
@ -102,15 +102,15 @@ public class SetGamePage extends BasePage
// return;
// }
if(type == GameType.CastleSiege){
if(Beta.enableBeta){
getShop().openPageForPlayer(player, new ChooseMapPage(getPlugin(), getShop(), player, GameType.BetaCastleSiege));
Bukkit.broadcastMessage(C.cAqua + "Selecting Maps for: Castle Siege Beta");
}
else{
getShop().openPageForPlayer(player, new ChooseMapPage(getPlugin(), getShop(), player, type));
}
}
// if(type == GameType.CastleSiege){
// if(Beta.enableBeta){
// getShop().openPageForPlayer(player, new ChooseMapPage(getPlugin(), getShop(), player, GameType.BetaCastleSiege));
// Bukkit.broadcastMessage(C.cAqua + "Selecting Maps for: Castle Siege Beta");
// }
// else{
// getShop().openPageForPlayer(player, new ChooseMapPage(getPlugin(), getShop(), player, type));
// }
// }
getShop().openPageForPlayer(player, new ChooseMapPage(getPlugin(), getShop(), player, type));
}

View File

@ -17,6 +17,7 @@ import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.GameType;
import nautilus.game.arcade.events.GameStateChangeEvent;
import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.game.games.Beta;
import nautilus.game.arcade.gui.privateServer.PrivateServerShop;
import nautilus.game.arcade.gui.privateServer.page.GameVotingPage;
import org.bukkit.*;
@ -44,7 +45,7 @@ public class GameHostManager implements Listener
}
// private final AntiHack _antiHack;
private List<GameType> _games = new ArrayList<>();
public static List<GameType> _games = new ArrayList<>();
ArcadeManager Manager;
@ -105,7 +106,7 @@ public class GameHostManager implements Listener
_games.add(GameType.Bridge);
_games.add(GameType.SurvivalGames);
_games.add(GameType.CastleSiege);
_games.add(GameType.BetaCastleSiege);
_games.add(GameType.WitherAssault);
_games.add(GameType.Wizards);
_games.add(GameType.Build);