Get kits to hang around during Map voting
This commit is contained in:
parent
2d36508d69
commit
c39995aa20
|
@ -1364,7 +1364,7 @@ public abstract class Game extends ListenerComponent implements Lifetimed
|
||||||
|
|
||||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||||
|
|
||||||
UtilPlayer.message(player, C.cGreen + "Game - " + C.cWhiteB + GetName());
|
UtilPlayer.message(player, C.cGreen + "Game - " + C.cYellowB + GetName());
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
|
|
||||||
for (String line : this.GetDesc())
|
for (String line : this.GetDesc())
|
||||||
|
@ -1434,7 +1434,7 @@ public abstract class Game extends ListenerComponent implements Lifetimed
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||||
|
|
||||||
UtilPlayer.message(player, "§aGame - §f§l" + this.GetName());
|
UtilPlayer.message(player, C.cGreen + "Game - " + C.cYellowB + GetName());
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
|
|
||||||
|
@ -1507,7 +1507,7 @@ public abstract class Game extends ListenerComponent implements Lifetimed
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||||
|
|
||||||
UtilPlayer.message(player, "§aGame - §f§l" + this.GetName());
|
UtilPlayer.message(player, C.cGreen + "Game - " + C.cYellowB + GetName());
|
||||||
UtilPlayer.message(player, "");
|
UtilPlayer.message(player, "");
|
||||||
|
|
||||||
if (places == null || places.isEmpty())
|
if (places == null || places.isEmpty())
|
||||||
|
|
|
@ -81,6 +81,8 @@ public class GameCreationManager implements Listener
|
||||||
createGame();
|
createGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkMapVoting();
|
||||||
|
|
||||||
//Archive Game
|
//Archive Game
|
||||||
if (Manager.GetGame() != null && Manager.GetGame().GetState() == GameState.Dead)
|
if (Manager.GetGame() != null && Manager.GetGame().GetState() == GameState.Dead)
|
||||||
{
|
{
|
||||||
|
@ -176,7 +178,7 @@ public class GameCreationManager implements Listener
|
||||||
_votingManager.updateMapRatings();
|
_votingManager.updateMapRatings();
|
||||||
_votingManager.deactivate();
|
_votingManager.deactivate();
|
||||||
}
|
}
|
||||||
else if (_votingManager.isVoteInProgress())
|
else if (_votingManager.isVoteBlocking())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -242,20 +244,6 @@ public class GameCreationManager implements Listener
|
||||||
|
|
||||||
Class<? extends Game> gameClass = gameType.getGameClass();
|
Class<? extends Game> gameClass = gameType.getGameClass();
|
||||||
|
|
||||||
// If map voting and ONLY map voting is enabled
|
|
||||||
// Also need to make sure a map and game haven't been selected by /game set beforehand
|
|
||||||
if (MapPref == null && _nextGame == null && Manager.GetServerConfig().MapVoting && !Manager.GetServerConfig().GameVoting)
|
|
||||||
{
|
|
||||||
if (!_votingManager.canStartVote())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_nextGame = gameType;
|
|
||||||
_votingManager.callVote(new MapVote(Manager, gameType, getMapsToVote(gameType)));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_nextGame = null;
|
_nextGame = null;
|
||||||
|
|
||||||
//Reset Changes
|
//Reset Changes
|
||||||
|
@ -299,12 +287,22 @@ public class GameCreationManager implements Listener
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Maps
|
// No map voting, load the maps now
|
||||||
loadMaps(gameType);
|
boolean loadMapsNow = !Manager.GetServerConfig().MapVoting;
|
||||||
|
|
||||||
|
if (loadMapsNow)
|
||||||
|
{
|
||||||
|
loadMaps(gameType);
|
||||||
|
}
|
||||||
|
|
||||||
// Create Game instance
|
// Create Game instance
|
||||||
Game game = gameClass.getConstructor(ArcadeManager.class).newInstance(Manager);
|
Game game = gameClass.getConstructor(ArcadeManager.class).newInstance(Manager);
|
||||||
|
|
||||||
|
if (loadMapsNow)
|
||||||
|
{
|
||||||
|
game.WorldData.Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
Manager.SetGame(game);
|
Manager.SetGame(game);
|
||||||
}
|
}
|
||||||
catch (NoSuchMethodException ex)
|
catch (NoSuchMethodException ex)
|
||||||
|
@ -338,6 +336,32 @@ public class GameCreationManager implements Listener
|
||||||
TimingManager.stop("registerEvents");
|
TimingManager.stop("registerEvents");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkMapVoting()
|
||||||
|
{
|
||||||
|
Game game = Manager.GetGame();
|
||||||
|
|
||||||
|
if (game == null || MapPref != null || !Manager.GetServerConfig().MapVoting || Manager.GetServerConfig().GameVoting)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_votingManager.getFinishedVote() != null)
|
||||||
|
{
|
||||||
|
MapPref = _votingManager.getFinishedVote().getWinner().getName();
|
||||||
|
_votingManager.deactivate();
|
||||||
|
|
||||||
|
// Load maps for the running game
|
||||||
|
loadMaps(game.GetType());
|
||||||
|
|
||||||
|
// Load the world data
|
||||||
|
game.WorldData.Initialize();
|
||||||
|
}
|
||||||
|
else if (!_votingManager.isVoteInProgress() && _votingManager.canStartVote())
|
||||||
|
{
|
||||||
|
_votingManager.callVote(new MapVote(Manager, game.GetType(), getMapsToVote(game.GetType())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void loadMaps(GameType gameType)
|
private void loadMaps(GameType gameType)
|
||||||
{
|
{
|
||||||
_maps = new HashMap<>();
|
_maps = new HashMap<>();
|
||||||
|
|
|
@ -724,12 +724,26 @@ public abstract class LobbyManager implements Listener
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void eqiupKitOnJoin(PlayerJoinEvent event)
|
public void eqiupKitOnJoin(PlayerJoinEvent event)
|
||||||
{
|
{
|
||||||
if (_manager.GetGame() == null)
|
Game game = _manager.GetGame();
|
||||||
|
|
||||||
|
if (game == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
equipActiveKit(event.getPlayer());
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (game.InProgress())
|
||||||
|
{
|
||||||
|
GameTeam team = game.GetTeam(player);
|
||||||
|
|
||||||
|
if (team == null || !team.IsAlive(player))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
equipActiveKit(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
|
@ -59,6 +59,8 @@ public abstract class Vote<T extends Voteable>
|
||||||
|
|
||||||
public abstract List<VoteRating> getMapRatings();
|
public abstract List<VoteRating> getMapRatings();
|
||||||
|
|
||||||
|
public abstract boolean isBlocking();
|
||||||
|
|
||||||
public void vote(Player player, T value)
|
public void vote(Player player, T value)
|
||||||
{
|
{
|
||||||
if (value == null)
|
if (value == null)
|
||||||
|
|
|
@ -254,6 +254,11 @@ public class VotingManager extends ListenerComponent implements Lifetimed
|
||||||
return _currentVote != null;
|
return _currentVote != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isVoteBlocking()
|
||||||
|
{
|
||||||
|
return isVoteInProgress() && getCurrentVote().isBlocking();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean canStartVote()
|
public boolean canStartVote()
|
||||||
{
|
{
|
||||||
if (_manager.getValidPlayersForGameStart().size() < _manager.GetPlayerMin())
|
if (_manager.getValidPlayersForGameStart().size() < _manager.GetPlayerMin())
|
||||||
|
|
|
@ -113,6 +113,12 @@ public class GameVote extends Vote<GameType>
|
||||||
return _winningMapVote.getMapRatings();
|
return _winningMapVote.getMapRatings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBlocking()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public MapVote getWinningMapVote()
|
public MapVote getWinningMapVote()
|
||||||
{
|
{
|
||||||
return _winningMapVote;
|
return _winningMapVote;
|
||||||
|
|
|
@ -63,4 +63,10 @@ public class MapVote extends Vote<VotableMap>
|
||||||
.map(votableMap -> new VoteRating(_gameType.getGameId(), votableMap.getDisplayName(), winner.equals(votableMap) ? ratingWin : ratingLose))
|
.map(votableMap -> new VoteRating(_gameType.getGameId(), votableMap.getDisplayName(), winner.equals(votableMap) ? ratingWin : ratingLose))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBlocking()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,6 @@ public class WorldData
|
||||||
{
|
{
|
||||||
Host = game;
|
Host = game;
|
||||||
Id = GetNewId();
|
Id = GetNewId();
|
||||||
|
|
||||||
Initialize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
|
|
Loading…
Reference in New Issue