public static void promote(ConsoleSystem.Arg arg) { BasePlayer basePlayer = arg.Player(); if (basePlayer.currentTeam == 0) { return; } BasePlayer lookingAtPlayer = RelationshipManager.GetLookingAtPlayer(basePlayer); if (lookingAtPlayer == null) { return; } if (lookingAtPlayer.IsDead()) { return; } if (lookingAtPlayer == basePlayer) { return; } if (lookingAtPlayer.currentTeam == basePlayer.currentTeam) { RelationshipManager.PlayerTeam item = RelationshipManager.Instance.playerTeams[basePlayer.currentTeam]; if (item != null && item.teamLeader == basePlayer.userID) { if (Interface.CallHook("OnTeamPromote", item, lookingAtPlayer) != null) { return; } item.SetTeamLeader(lookingAtPlayer.userID); } } }
public override void Execute() { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId); if (playerTeam == null) { SendError("no_team"); return; } if (playerTeam.teamLeader != base.UserId) { SendError("access_denied"); return; } if (playerTeam.teamLeader == base.Proto.steamId) { SendSuccess(); return; } if (!playerTeam.members.Contains(base.Proto.steamId)) { SendError("not_found"); return; } playerTeam.SetTeamLeader(base.Proto.steamId); SendSuccess(); }
private void GenerateClanTeam(List <ulong> memberIds) { if (clans.ContainsKey(ClanTag(memberIds[0]))) { clans.Remove(ClanTag(memberIds[0])); } clans[ClanTag(memberIds[0])] = new List <ulong>(); RelationshipManager.PlayerTeam team = RelationshipManager.Instance.CreateTeam(); foreach (ulong memberId in memberIds) { BasePlayer player = BasePlayer.FindByID(memberId); if (player != null) { if (player.currentTeam != 0UL) { RelationshipManager.PlayerTeam current = RelationshipManager.Instance.FindTeam(player.currentTeam); current.RemovePlayer(player.userID); } team.AddPlayer(player); clans[ClanTag(memberId)].Add(player.userID); if (IsAnOwner(player)) { team.SetTeamLeader(player.userID); } } } }
public static void promote(ConsoleSystem.Arg arg) { BasePlayer source = arg.Player(); if (source.currentTeam == 0UL) { return; } BasePlayer lookingAtPlayer = RelationshipManager.GetLookingAtPlayer(source); if (Object.op_Equality((Object)lookingAtPlayer, (Object)null) || lookingAtPlayer.IsDead() || (Object.op_Equality((Object)lookingAtPlayer, (Object)source) || (long)lookingAtPlayer.currentTeam != (long)source.currentTeam)) { return; } RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.playerTeams[source.currentTeam]; if (playerTeam == null || (long)playerTeam.teamLeader != (long)source.userID || Interface.CallHook("OnTeamPromote", (object)playerTeam, (object)lookingAtPlayer) != null) { return; } playerTeam.SetTeamLeader(lookingAtPlayer.userID); }
void Promote(BasePlayer player, string targetPlayer) { string msgPlayerNotFound = lang.GetMessage("PlayerNotFound", this, player.UserIDString); // Used more than once // Check if player is in team if (player.currentTeam == 0UL) { player.ChatMessage(lang.GetMessage("NotInTeam", this, player.UserIDString)); return; } RelationshipManager.PlayerTeam aTeam = RelationshipManager.Instance.playerTeams[player.currentTeam]; var aTarget = FindPlayersOnline(targetPlayer); // Check if player exists if (aTarget.Count <= 0) { player.ChatMessage(msgPlayerNotFound); return; } // Found multiple players if (aTarget.Count > 1) { player.ChatMessage(string.Format("{0}: {1}", lang.GetMessage("MultiplePlayersFound", this, player.UserIDString), string.Join(", ", aTarget.ConvertAll(p => p.displayName).ToArray()))); return; } var theTarget = aTarget[0]; // Null Check if (theTarget == null) { player.ChatMessage(msgPlayerNotFound); return; } // Check if target is player if (theTarget == player) { player.ChatMessage(lang.GetMessage("CannotPromoteYourself", this, player.UserIDString)); return; } // Check if team leader if (aTeam.teamLeader != player.userID) { player.ChatMessage(lang.GetMessage("NotTeamLeader", this, player.UserIDString)); return; } // Check if target is in player's team if (aTeam.teamID != theTarget.currentTeam) { player.ChatMessage(string.Format("{0} {1}", aTarget[0].displayName, lang.GetMessage("NotInYourTeam", this, player.UserIDString))); return; } // Promote target if all checks pass aTeam.SetTeamLeader(theTarget.userID); player.ChatMessage(string.Format("{0}: {1}", lang.GetMessage("Promoted", this, player.UserIDString), theTarget.displayName)); }