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() { AppMapMarkers appMapMarkers = Pool.Get <AppMapMarkers>(); appMapMarkers.markers = Pool.GetList <AppMarker>(); RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId); if (playerTeam != null) { foreach (ulong member in playerTeam.members) { BasePlayer basePlayer = RelationshipManager.FindByID(member); if (!(basePlayer == null)) { appMapMarkers.markers.Add(GetPlayerMarker(basePlayer)); } } } else if (base.Player != null) { appMapMarkers.markers.Add(GetPlayerMarker(base.Player)); } foreach (MapMarker serverMapMarker in MapMarker.serverMapMarkers) { if (serverMapMarker.appType != 0) { appMapMarkers.markers.Add(serverMapMarker.GetAppMarkerData()); } } AppResponse appResponse = Pool.Get <AppResponse>(); appResponse.mapMarkers = appMapMarkers; Send(appResponse); }
public override void Load(BaseNetworkable.LoadInfo info) { base.Load(info); if (!info.fromDisk || info.msg.relationshipManager == null) { return; } this.lastTeamIndex = (ulong)((RelationshipManager)info.msg.relationshipManager).lastTeamIndex; using (List <ProtoBuf.PlayerTeam> .Enumerator enumerator1 = ((List <ProtoBuf.PlayerTeam>)((RelationshipManager)info.msg.relationshipManager).teamList).GetEnumerator()) { while (enumerator1.MoveNext()) { ProtoBuf.PlayerTeam current1 = enumerator1.Current; RelationshipManager.PlayerTeam playerTeam = (RelationshipManager.PlayerTeam)Pool.Get <RelationshipManager.PlayerTeam>(); playerTeam.teamLeader = (ulong)current1.teamLeader; playerTeam.teamID = (ulong)current1.teamID; playerTeam.teamName = (string)current1.teamName; playerTeam.members = new List <ulong>(); using (List <ProtoBuf.PlayerTeam.TeamMember> .Enumerator enumerator2 = ((List <ProtoBuf.PlayerTeam.TeamMember>)current1.members).GetEnumerator()) { while (enumerator2.MoveNext()) { ProtoBuf.PlayerTeam.TeamMember current2 = enumerator2.Current; playerTeam.members.Add((ulong)current2.userID); } } this.playerTeams[playerTeam.teamID] = playerTeam; } } }
public override void Save(BaseNetworkable.SaveInfo info) { base.Save(info); info.msg.relationshipManager = Pool.Get <ProtoBuf.RelationshipManager>(); info.msg.relationshipManager.maxTeamSize = RelationshipManager.maxTeamSize; if (info.forDisk) { info.msg.relationshipManager.lastTeamIndex = this.lastTeamIndex; info.msg.relationshipManager.teamList = Pool.GetList <ProtoBuf.PlayerTeam>(); foreach (KeyValuePair <ulong, RelationshipManager.PlayerTeam> playerTeam in this.playerTeams) { RelationshipManager.PlayerTeam value = playerTeam.Value; if (value == null) { continue; } ProtoBuf.PlayerTeam list = Pool.Get <ProtoBuf.PlayerTeam>(); list.teamLeader = value.teamLeader; list.teamID = value.teamID; list.teamName = value.teamName; list.members = Pool.GetList <ProtoBuf.PlayerTeam.TeamMember>(); foreach (ulong member in value.members) { ProtoBuf.PlayerTeam.TeamMember teamMember = Pool.Get <ProtoBuf.PlayerTeam.TeamMember>(); BasePlayer basePlayer = RelationshipManager.FindByID(member); teamMember.displayName = (basePlayer != null ? basePlayer.displayName : "DEAD"); teamMember.userID = member; list.members.Add(teamMember); } info.msg.relationshipManager.teamList.Add(list); } } }
public static void acceptinvite(ConsoleSystem.Arg arg) { BasePlayer basePlayer = arg.Player(); if (basePlayer == null) { return; } if (basePlayer.currentTeam != 0) { return; } ulong num = arg.GetULong(0, (ulong)0); RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(num); if (playerTeam == null) { basePlayer.ClearPendingInvite(); return; } if (Interface.CallHook("OnTeamAcceptInvite", playerTeam, basePlayer) != null) { return; } playerTeam.AcceptInvite(basePlayer); }
public static void addtoteam(ConsoleSystem.Arg arg) { RaycastHit raycastHit; BasePlayer basePlayer = arg.Player(); RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam); if (playerTeam == null) { return; } if (playerTeam.GetLeader() == null) { return; } if (playerTeam.GetLeader() != basePlayer) { return; } if (Physics.Raycast(basePlayer.eyes.position, basePlayer.eyes.HeadForward(), out raycastHit, 5f, 1218652417, QueryTriggerInteraction.Ignore)) { BaseEntity entity = raycastHit.GetEntity(); if (entity) { BasePlayer component = entity.GetComponent <BasePlayer>(); if (component && component != basePlayer && !component.IsNpc) { playerTeam.AddPlayer(component); } } } }
public static string teaminfo(Arg arg) { ulong num = arg.GetUInt64(0, 0uL); if (num == 0L) { BasePlayer player = ArgEx.GetPlayer(arg, 0); if (player == null) { return("Player not found"); } num = player.userID; } RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(num); if (playerTeam == null) { return("Player is not in a team"); } TextTable textTable = new TextTable(); textTable.AddColumn("steamID"); textTable.AddColumn("username"); textTable.AddColumn("online"); textTable.AddColumn("leader"); foreach (ulong memberId in playerTeam.members) { bool flag = Network.Net.sv.connections.FirstOrDefault((Connection c) => c.connected && c.userid == memberId) != null; textTable.AddRow(memberId.ToString(), GetPlayerName(memberId), flag ? "x" : "", (memberId == playerTeam.teamLeader) ? "x" : ""); } return(textTable.ToString()); }
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 override void Save(BaseNetworkable.SaveInfo info) { base.Save(info); info.msg.relationshipManager = (__Null)Pool.Get <RelationshipManager>(); ((RelationshipManager)info.msg.relationshipManager).maxTeamSize = (__Null)RelationshipManager.maxTeamSize; if (!info.forDisk) { return; } ((RelationshipManager)info.msg.relationshipManager).lastTeamIndex = (__Null)(long)this.lastTeamIndex; ((RelationshipManager)info.msg.relationshipManager).teamList = (__Null)Pool.GetList <ProtoBuf.PlayerTeam>(); foreach (KeyValuePair <ulong, RelationshipManager.PlayerTeam> playerTeam1 in this.playerTeams) { RelationshipManager.PlayerTeam playerTeam2 = playerTeam1.Value; if (playerTeam2 != null) { ProtoBuf.PlayerTeam playerTeam3 = (ProtoBuf.PlayerTeam)Pool.Get <ProtoBuf.PlayerTeam>(); playerTeam3.teamLeader = (__Null)(long)playerTeam2.teamLeader; playerTeam3.teamID = (__Null)(long)playerTeam2.teamID; playerTeam3.teamName = (__Null)playerTeam2.teamName; playerTeam3.members = (__Null)Pool.GetList <ProtoBuf.PlayerTeam.TeamMember>(); foreach (ulong member in playerTeam2.members) { ProtoBuf.PlayerTeam.TeamMember teamMember = (ProtoBuf.PlayerTeam.TeamMember)Pool.Get <ProtoBuf.PlayerTeam.TeamMember>(); BasePlayer byId = RelationshipManager.FindByID(member); teamMember.displayName = Object.op_Inequality((Object)byId, (Object)null) ? (__Null)byId.displayName : (__Null)"DEAD"; teamMember.userID = (__Null)(long)member; ((List <ProtoBuf.PlayerTeam.TeamMember>)playerTeam3.members).Add(teamMember); } ((List <ProtoBuf.PlayerTeam>)((RelationshipManager)info.msg.relationshipManager).teamList).Add(playerTeam3); } } }
public static void kickmember(ConsoleSystem.Arg arg) { BasePlayer basePlayer = arg.Player(); if (basePlayer == null) { return; } RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam); if (playerTeam == null) { return; } if (playerTeam.GetLeader() != basePlayer) { return; } ulong num = arg.GetULong(0, (ulong)0); if (basePlayer.userID == num) { return; } if (Interface.CallHook("OnTeamKick", playerTeam, basePlayer) != null) { return; } playerTeam.RemovePlayer(num); }
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(); }
public static void addtoteam(ConsoleSystem.Arg arg) { BasePlayer basePlayer = arg.Player(); RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam); RaycastHit hit; if (team == null || Object.op_Equality((Object)team.GetLeader(), (Object)null) || (Object.op_Inequality((Object)team.GetLeader(), (Object)basePlayer) || !Physics.Raycast(basePlayer.eyes.position, basePlayer.eyes.HeadForward(), ref hit, 5f, 1218652417, (QueryTriggerInteraction)1))) { return; } BaseEntity entity = hit.GetEntity(); if (!Object.op_Implicit((Object)entity)) { return; } BasePlayer component = (BasePlayer)((Component)entity).GetComponent <BasePlayer>(); if (!Object.op_Implicit((Object)component) || !Object.op_Inequality((Object)component, (Object)basePlayer) || component.IsNpc) { return; } team.AddPlayer(component); }
public override void Execute() { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId); if (playerTeam == null) { SendError("no_team"); return; } AppResponse appResponse = Pool.Get <AppResponse>(); appResponse.teamChat = Pool.Get <AppTeamChat>(); appResponse.teamChat.messages = Pool.GetList <AppChatMessage>(); IReadOnlyList <ChatLog.Entry> history = Server.TeamChat.GetHistory(playerTeam.teamID); if (history != null) { foreach (ChatLog.Entry item in history) { AppChatMessage appChatMessage = Pool.Get <AppChatMessage>(); appChatMessage.steamId = item.SteamId; appChatMessage.name = item.Name; appChatMessage.message = item.Message; appChatMessage.color = item.Color; appChatMessage.time = item.Time; appResponse.teamChat.messages.Add(appChatMessage); } } Send(appResponse); }
//Team Chat with /t void ChatCommand_TeamChat(BasePlayer player, string command, string[] args) { if (!(bool)Config["EnableTeamChatting"] || args == null || args.Length == 0) { return; } if (args.Length >= 1) { RelationshipManager.PlayerTeam playersTeam = RelationshipManager.Instance.FindTeam(player.currentTeam); string joinedMessage = string.Join(" ", args); string playerNameSan = string.Join(" ", GetPlayerTitle(player), player.displayName.Replace('<', '[').Replace('>', ']')); for (int i = 0; i < playersTeam.members.Count; i++) { BasePlayer.FindByID(playersTeam.members[i])? .SendConsoleCommand( "chat.add", new object[] { player.userID, string.Format("<color=#B9FC3E>{0}</color>: {1}", playerNameSan, joinedMessage) } ); } ; } }
bool IsFriend(ulong friendid, ulong playerid) { if (UseFriendsAPI && Friends != null) { var fr = Friends.CallHook("AreFriends", friendid, playerid); if (fr != null && (bool)fr) { return(true); } } if (UseTeams) { BasePlayer player = BasePlayer.FindByID(playerid); if (player.currentTeam != (long)0) { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.Instance.FindTeam(player.currentTeam); if (playerTeam == null) { return(false); } if (playerTeam.members.Contains(friendid)) { return(true); } } } return(false); }
public RelationshipManager.PlayerTeam CreateTeam() { RelationshipManager.PlayerTeam playerTeam = (RelationshipManager.PlayerTeam)Pool.Get <RelationshipManager.PlayerTeam>(); playerTeam.teamID = this.lastTeamIndex; this.playerTeams.Add(this.lastTeamIndex, playerTeam); ++this.lastTeamIndex; return(playerTeam); }
public override void Execute() { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(base.UserId); AppTeamInfo teamInfo = ((playerTeam == null) ? AppPlayerExtensions.GetAppTeamInfo(base.Player, base.UserId) : AppPlayerExtensions.GetAppTeamInfo(playerTeam, base.UserId)); AppResponse appResponse = Pool.Get <AppResponse>(); appResponse.teamInfo = teamInfo; Send(appResponse); }
object OnPlayerChat(ConsoleSystem.Arg arg, Chat.ChatChannel chatchannel) { BasePlayer inputChatBasePlayer = arg.Connection.player as BasePlayer; String playerName = arg.Connection.username; String message = arg.GetString(0); String convertMessage = "KR".Equals(InfoUtils.GetUserMode(inputChatBasePlayer, User[inputChatBasePlayer.UserIDString])) ? StringUtils.getConvertKor(message) : message; // 콘솔로그 Puts(playerName + ": " + convertMessage); // 욕설 변환 convertMessage = this.getChangeForbiddenWord(convertMessage, inputChatBasePlayer, chatchannel); if (!isUsePlugin("BetterChat")) { if (chatchannel == Chat.ChatChannel.Team) { List <Connection> sendUserList = new List <Connection>(); RelationshipManager.PlayerTeam team = inputChatBasePlayer.Team; if (null == team || team.members.Count < 1) { return(true); } foreach (ulong teamUserId in team.members) { Connection inUser = BasePlayer.FindByID(teamUserId).Connection; if (null != inUser) { sendUserList.Add(inUser); } } // 메시지 전송 if (sendUserList.Count > 0) { ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, "[TEAM] " + inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() }); } } else { List <Connection> sendUserList = new List <Connection>(); foreach (BasePlayer basePlayer in BasePlayer.activePlayerList) { sendUserList.Add(basePlayer.Connection); } // 메시지 전송 if (sendUserList.Count > 0) { ConsoleNetwork.SendClientCommand(sendUserList, "chat.add2", new object[] { chatchannel, inputChatBasePlayer.UserIDString, convertMessage, inputChatBasePlayer.displayName, "#" + InfoUtils.GetUserNameColor() }); } } return(false); } return(null); }
void Invite(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.FindTeam(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 team leader if (aTeam.teamLeader != player.userID) { player.ChatMessage(lang.GetMessage("NotTeamLeader", this, player.UserIDString)); return; } // Check it target is player if (theTarget == player) { player.ChatMessage(lang.GetMessage("CannotInviteYourself", this, player.UserIDString)); return; } // Invite if all checks pass aTeam.SendInvite(theTarget); player.ChatMessage(string.Format("{0}: {1}", lang.GetMessage("Invited", this, player.UserIDString), theTarget.displayName)); }
public void DisbandTeam(RelationshipManager.PlayerTeam teamToDisband) { if (Interface.CallHook("OnTeamDisband", teamToDisband) != null) { return; } this.playerTeams.Remove(teamToDisband.teamID); Interface.CallHook("OnTeamDisbanded", teamToDisband); Pool.Free <RelationshipManager.PlayerTeam>(ref teamToDisband); }
public void DisbandTeam(RelationshipManager.PlayerTeam teamToDisband) { if (Interface.CallHook("OnTeamDisband", (object)teamToDisband) != null) { return; } this.playerTeams.Remove(teamToDisband.teamID); Interface.CallHook("OnTeamDisbanded", (object)teamToDisband); // ISSUE: cast to a reference type Pool.Free <RelationshipManager.PlayerTeam>((M0&)ref teamToDisband); }
void CreateTeam(BasePlayer player) { if (player.currentTeam != 0UL) { player.ChatMessage(lang.GetMessage("AlreadyInTeam", this, player.UserIDString)); return; } RelationshipManager.PlayerTeam aTeam = RelationshipManager.Instance.CreateTeam(); aTeam.teamLeader = player.userID; aTeam.AddPlayer(player); }
public ResidentTeamMembership(RelationshipManager.PlayerTeam team) { if (team == null) { return; } id = team.teamID; name = team.teamName; leader = team.teamLeader; start_time = team.teamStartTime; lifetime = team.teamLifetime; }
private bool IsTeamMember(BasePlayer player, StashContainer stash) { if (!(bool)Config[IGNORE_SAME_TEAM]) { return(false); } RelationshipManager.PlayerTeam team = RelationshipManager.ServerInstance.FindPlayersTeam(stash.OwnerID); if (team == null) { return(false); } return(team.teamID == player.currentTeam); }
public static void BroadcastAppTeamUpdate(this RelationshipManager.PlayerTeam team) { AppBroadcast appBroadcast = Facepunch.Pool.Get <AppBroadcast>(); appBroadcast.teamChanged = Facepunch.Pool.Get <AppTeamChanged>(); appBroadcast.ShouldPool = false; foreach (ulong member in team.members) { appBroadcast.teamChanged.playerId = member; appBroadcast.teamChanged.teamInfo = AppPlayerExtensions.GetAppTeamInfo(team, member); Server.Broadcast(new PlayerTarget(member), appBroadcast); } appBroadcast.ShouldPool = true; appBroadcast.Dispose(); }
public static void SendSignedInNotification(BasePlayer player) { if (!(player == null) && player.currentTeam != 0L) { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindTeam(player.currentTeam); Dictionary <string, string> serverPairingData = GetServerPairingData(); serverPairingData.Add("type", "login"); serverPairingData.Add("targetId", player.UserIDString); serverPairingData.Add("targetName", player.displayName.Truncate(128)); if (playerTeam != null) { SendNotification(playerTeam, NotificationChannel.PlayerLoggedIn, player.displayName + " is now online", ConVar.Server.hostname, serverPairingData, player.userID); } } }
void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item) { if (entity.ToPlayer() == null) { return; } var basePlayer = entity.ToPlayer(); var currentTeam = basePlayer.currentTeam; if (currentTeam != 0) { RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(currentTeam); if (team != null) { var players = team.members; if (team.members.Count > 1) { foreach (var teamMember in players) { if (teamMember.ToString() != basePlayer.UserIDString) { BasePlayer member = BasePlayer.FindByID(teamMember); if (member != null) { if (Vector3.Distance(basePlayer.transform.position, member.transform.position) <= config.distanceMate) { item.amount = item.amount + (item.amount * config.bonusMate / 100); basePlayer.ChatMessage("You got " + config.bonusMate.ToString() + "% more because you're close to a member of your team"); } } } } } else { return; } } else { return; } } else { return; } }
public static void leaveteam(ConsoleSystem.Arg arg) { BasePlayer basePlayer = arg.Player(); if (Object.op_Equality((Object)basePlayer, (Object)null) || basePlayer.currentTeam == 0UL) { return; } RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(basePlayer.currentTeam); if (team == null || Interface.CallHook("OnTeamLeave", (object)team, (object)basePlayer) != null) { return; } team.RemovePlayer(basePlayer.userID); basePlayer.ClearTeam(); }
public static void fakeinvite(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); RelationshipManager.PlayerTeam team = RelationshipManager.Instance.FindTeam(arg.GetULong(0, 0UL)); if (team == null) { return; } if (player.currentTeam != 0UL) { Debug.Log((object)"already in team"); } team.SendInvite(player); Debug.Log((object)"sent bot invite"); }
private bool IsFriend(ulong playerid, ulong ownerid) { if (!configData.HonorRelationships) { return(false); } if (configData.useFriends && Friends != null) { var fr = Friends?.CallHook("AreFriends", playerid, ownerid); if (fr != null && (bool)fr) { return(true); } } if (configData.useClans && Clans != null) { string playerclan = (string)Clans?.CallHook("GetClanOf", playerid); string ownerclan = (string)Clans?.CallHook("GetClanOf", ownerid); if (playerclan != null && ownerclan != null) { if (playerclan == ownerclan) { return(true); } } } if (configData.useTeams) { BasePlayer player = BasePlayer.FindByID(playerid); if (player != null) { if (player.currentTeam != 0) { RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindTeam(player.currentTeam); if (playerTeam != null) { if (playerTeam.members.Contains(ownerid)) { return(true); } } } } } return(false); }