Only call Group.findPlayerGroup once in Player.Handlers.

This commit is contained in:
UnknownShadow200 2016-05-27 23:34:06 +10:00
parent b86771c26d
commit 8c35ff76d1
2 changed files with 18 additions and 17 deletions

View File

@ -63,21 +63,21 @@ namespace MCGalaxy.Commands.World {
if (lvl != null) { if (lvl != null) {
return GoToLevel(p, lvl, message); return GoToLevel(p, lvl, message);
} else if (Server.AutoLoad) { } else if (Server.AutoLoad) {
if (!LevelInfo.ExistsOffline(message)) { // First try exactly matching unloaded levels
lvl = LevelInfo.Find(message); if (LevelInfo.ExistsOffline(message))
if (lvl != null) return GoToLevel(p, lvl, message); return GotoOfflineLevel(p, message);
List<string> matches = CmdSearch.MatchUnloaded(message); lvl = LevelInfo.Find(message);
if (matches.Count == 1) return GotoOfflineLevel(p, matches[0]); if (lvl != null) return GoToLevel(p, lvl, message);
List<string> matches = CmdSearch.MatchUnloaded(message);
if (matches.Count == 0) { if (matches.Count == 1) return GotoOfflineLevel(p, matches[0]);
Player.Message(p, "No levels found matching \"" + message + "\".");
} else { if (matches.Count == 0) {
Player.Message(p, "Level \"" + message + "\" does not exist. Did you mean..."); Player.Message(p, "No levels found matching \"" + message + "\".");
Player.Message(p, matches.Concatenate()); } else {
} Player.Message(p, "Level \"" + message + "\" does not exist. Did you mean...");
return false; Player.Message(p, matches.Concatenate(", "));
} }
return GotoOfflineLevel(p, message); return false;
} else { } else {
lvl = LevelInfo.Find(message); lvl = LevelInfo.Find(message);
if (lvl == null) { if (lvl == null) {

View File

@ -321,6 +321,7 @@ namespace MCGalaxy {
isDev = Server.Devs.CaselessContains(name); isDev = Server.Devs.CaselessContains(name);
isMod = Server.Mods.CaselessContains(name); isMod = Server.Mods.CaselessContains(name);
Group foundGrp = Group.findPlayerGroup(name);
try { try {
Server.TempBan tBan = Server.tempBans.Find(tB => tB.name.ToLower() == name.ToLower()); Server.TempBan tBan = Server.tempBans.Find(tB => tB.name.ToLower() == name.ToLower());
@ -340,7 +341,7 @@ namespace MCGalaxy {
Kick(Server.defaultBanMessage, true); return; Kick(Server.defaultBanMessage, true); return;
} }
if (Group.findPlayerGroup(name) == Group.findPerm(LevelPermission.Banned)) { if (foundGrp == Group.findPerm(LevelPermission.Banned)) {
if (!Server.useWhitelist || !onWhitelist) { if (!Server.useWhitelist || !onWhitelist) {
string[] data = Ban.GetBanData(name); string[] data = Ban.GetBanData(name);
if (data != null) { if (data != null) {
@ -359,7 +360,7 @@ namespace MCGalaxy {
Player[] online = PlayerInfo.Online.Items; Player[] online = PlayerInfo.Online.Items;
if (online.Length >= Server.players && !IPInPrivateRange(ip)) { Kick("Server full!"); return; } if (online.Length >= Server.players && !IPInPrivateRange(ip)) { Kick("Server full!"); return; }
// Code for limiting no. of guests // Code for limiting no. of guests
if (Group.findPlayerGroup(name) == Group.findPerm(LevelPermission.Guest)) if (foundGrp == Group.findPerm(LevelPermission.Guest))
{ {
// Check to see how many guests we have // Check to see how many guests we have
online = PlayerInfo.Online.Items; online = PlayerInfo.Online.Items;
@ -397,7 +398,7 @@ namespace MCGalaxy {
try { left.Remove(name.ToLower()); } try { left.Remove(name.ToLower()); }
catch { } catch { }
group = Group.findPlayerGroup(name); group = foundGrp;
Loading = true; Loading = true;
if (disconnected) return; if (disconnected) return;
id = FreeId(); id = FreeId();