diff --git a/MCGalaxy/Games/CTF/CtfGame.Plugin.cs b/MCGalaxy/Games/CTF/CtfGame.Plugin.cs index 1b84ac0cc..8663829f8 100644 --- a/MCGalaxy/Games/CTF/CtfGame.Plugin.cs +++ b/MCGalaxy/Games/CTF/CtfGame.Plugin.cs @@ -35,6 +35,7 @@ namespace MCGalaxy.Games { OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); + OnSentMapEvent.Register(HandleSentMap, Priority.High); OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High); base.HookEventHandlers(); @@ -48,6 +49,7 @@ namespace MCGalaxy.Games { OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); + OnSentMapEvent.Unregister(HandleSentMap); OnJoinedLevelEvent.Unregister(HandleJoinedLevel); base.UnhookEventHandlers(); @@ -131,21 +133,14 @@ namespace MCGalaxy.Games { } } - void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) { - HandleJoinedCommon(p, prevLevel, level, ref announce); - + void HandleSentMap(Player p, Level prevLevel, Level level) { if (level != Map) return; MessageMapInfo(p); - if (TeamOf(p) != null) return; - - if (Blue.Members.Count > Red.Members.Count) { - JoinTeam(p, Red); - } else if (Red.Members.Count > Blue.Members.Count) { - JoinTeam(p, Blue); - } else { - bool red = new Random().Next(2) == 0; - JoinTeam(p, red ? Red : Blue); - } + if (TeamOf(p) == null) AutoAssignTeam(p); + } + + void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) { + HandleJoinedCommon(p, prevLevel, level, ref announce); } } } diff --git a/MCGalaxy/Games/CTF/CtfGame.cs b/MCGalaxy/Games/CTF/CtfGame.cs index e5eaad730..89ed6bd0f 100644 --- a/MCGalaxy/Games/CTF/CtfGame.cs +++ b/MCGalaxy/Games/CTF/CtfGame.cs @@ -145,6 +145,7 @@ namespace MCGalaxy.Games { public override void PlayerJoinedGame(Player p) { bool announce = false; + HandleSentMap(p, Map, Map); HandleJoinedLevel(p, Map, Map, ref announce); } @@ -156,6 +157,17 @@ namespace MCGalaxy.Games { DropFlag(p, team); } + void AutoAssignTeam(Player p) { + if (Blue.Members.Count > Red.Members.Count) { + JoinTeam(p, Red); + } else if (Red.Members.Count > Blue.Members.Count) { + JoinTeam(p, Blue); + } else { + bool red = new Random().Next(2) == 0; + JoinTeam(p, red ? Red : Blue); + } + } + void JoinTeam(Player p, CtfTeam team) { Get(p).HasFlag = false; team.Members.Add(p); diff --git a/MCGalaxy/Games/TntWars/TWGame.Plugin.cs b/MCGalaxy/Games/TntWars/TWGame.Plugin.cs index 3c7e66488..b30f9eb5c 100644 --- a/MCGalaxy/Games/TntWars/TWGame.Plugin.cs +++ b/MCGalaxy/Games/TntWars/TWGame.Plugin.cs @@ -104,7 +104,6 @@ namespace MCGalaxy.Games { void HandleSentMap(Player p, Level prevLevel, Level level) { if (level != Map) return; - MessageMapInfo(p); if (TeamOf(p) == null) AutoAssignTeam(p); }