Skip to content

Commit 718a82e

Browse files
committed
Player null check & some code cleanup :)
1 parent 5399dfb commit 718a82e

File tree

1 file changed

+55
-47
lines changed

1 file changed

+55
-47
lines changed

TrueWelcomer.cs

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
namespace Oxide.Plugins {
88

9-
[Info("True Welcomer", "ItzNxthaniel", "1.1.0")]
9+
[Info("True Welcomer", "ItzNxthaniel", "1.1.1")]
1010
[Description("This plugin makes it easy to welcome new users and welcome back users rejoining! Also supports Disconnect Messages.")]
1111
public class TrueWelcomer : RustPlugin {
1212

1313
#region Vars/Fields
1414

15-
private static List<string> OnlinePlayers = new List<string>();
15+
private static List<string> _onlinePlayers = new List<string>();
1616

1717
#endregion
1818

@@ -31,20 +31,19 @@ protected override void SaveConfig() =>
3131

3232
protected override void LoadDefaultConfig() {
3333
_config = new Configuration {
34-
debugMode = false,
35-
showJoinMsgs = true,
36-
showWelcomeMessages = true, showLeaveMsgs = true,
37-
clearOnWipe = true,
38-
steamIconID = 0,
39-
hidePlayersWithAuthlevel = false,
40-
authLevelToHide = 0,
41-
hidePlayersWithPermission = false
34+
DebugMode = false,
35+
ShowJoinMsgs = true,
36+
ShowWelcomeMessages = true, ShowLeaveMsgs = true,
37+
ClearOnWipe = true,
38+
SteamIconID = 0,
39+
HidePlayersWithAuthlevel = false,
40+
AuthLevelToHide = 0,
41+
HidePlayersWithPermission = false
4242
};
4343

4444
SaveConfig();
4545
}
4646

47-
4847
private enum AuthLevelEnum {
4948
Both = 0,
5049
AuthLevel1 = 1,
@@ -53,31 +52,31 @@ private enum AuthLevelEnum {
5352

5453
private class Configuration {
5554
[JsonProperty("Debug Mode")]
56-
internal bool debugMode;
55+
internal bool DebugMode;
5756

5857
[JsonProperty("Show Join Messages")]
59-
internal bool showJoinMsgs;
58+
internal bool ShowJoinMsgs;
6059

6160
[JsonProperty("Show Welcome Messages")]
62-
internal bool showWelcomeMessages;
61+
internal bool ShowWelcomeMessages;
6362

6463
[JsonProperty("Show Leave Messages")]
65-
internal bool showLeaveMsgs;
64+
internal bool ShowLeaveMsgs;
6665

6766
[JsonProperty("Clears the Data List on wipe")]
68-
internal bool clearOnWipe;
67+
internal bool ClearOnWipe;
6968

7069
[JsonProperty("Steam User Icon ID")]
71-
internal ulong steamIconID;
70+
internal ulong SteamIconID;
7271

7372
[JsonProperty("Hide Players with AuthLevel")]
74-
internal bool hidePlayersWithAuthlevel;
73+
internal bool HidePlayersWithAuthlevel;
7574

7675
[JsonProperty("AuthLevel to Hide. 0 - Both, 1 - AuthLevel1, 2 - AuthLevel2 ")]
77-
internal AuthLevelEnum authLevelToHide;
76+
internal AuthLevelEnum AuthLevelToHide;
7877

7978
[JsonProperty("Hide Players With Permission")]
80-
internal bool hidePlayersWithPermission;
79+
internal bool HidePlayersWithPermission;
8180
}
8281

8382
#endregion
@@ -101,17 +100,17 @@ private void Broadcast(BasePlayer player, string messageKey, params object[] arg
101100
if (player == null) return;
102101

103102
var message = GetMessage(messageKey, player.UserIDString, args);
104-
if (_config.debugMode) Puts(message);
105-
Server.Broadcast(message, null, _config.steamIconID);
103+
if (_config.DebugMode) Puts(message);
104+
Server.Broadcast(message, null, _config.SteamIconID);
106105
}
107106

108-
private string GetMessage(string key, string id = null, params object[] args) =>
107+
private string GetMessage(string key, string id, params object[] args) =>
109108
string.Format(lang.GetMessage(key, this, id), args);
110109

111110
#endregion
112111

113112
#region Data
114-
private DynamicConfigFile cachedPlayers = Interface.Oxide.DataFileSystem.GetDatafile("TrueWelcomer");
113+
private DynamicConfigFile _cachedPlayers = Interface.Oxide.DataFileSystem.GetDatafile("TrueWelcomer");
115114
#endregion
116115

117116
#region Hooks
@@ -122,23 +121,23 @@ private void Init() {
122121
permission.RegisterPermission("truewelcomer.hideUser", this);
123122

124123
foreach (BasePlayer player in BasePlayer.activePlayerList) {
125-
OnlinePlayers.Add(player.UserIDString);
124+
_onlinePlayers.Add(player.UserIDString);
126125
}
127126
}
128127

129128
private void OnNewSave() {
130-
if (!_config.clearOnWipe) return;
129+
if (!_config.ClearOnWipe) return;
131130

132-
cachedPlayers.Clear();
133-
cachedPlayers.Save();
131+
_cachedPlayers.Clear();
132+
_cachedPlayers.Save();
134133
}
135134

136135
private bool ShouldAnnounce(BasePlayer player) {
137-
if (_config.hidePlayersWithPermission && permission.UserHasPermission(player.UserIDString, "truewelcomer.hideUser")) return false;
138-
if (!_config.hidePlayersWithAuthlevel) return true;
136+
if (_config.HidePlayersWithPermission && permission.UserHasPermission(player.UserIDString, "truewelcomer.hideUser")) return false;
137+
if (!_config.HidePlayersWithAuthlevel) return true;
139138
ServerUsers.User user = ServerUsers.Get(player.userID);
140139

141-
switch(_config.authLevelToHide) {
140+
switch(_config.AuthLevelToHide) {
142141
case AuthLevelEnum.Both when user.group is ServerUsers.UserGroup.Moderator or ServerUsers.UserGroup.Owner:
143142
case AuthLevelEnum.AuthLevel1 when user.group is ServerUsers.UserGroup.Moderator:
144143
case AuthLevelEnum.AuthLevel2 when user.group is ServerUsers.UserGroup.Owner: return false;
@@ -147,8 +146,10 @@ private bool ShouldAnnounce(BasePlayer player) {
147146
}
148147

149148
private void OnPlayerDisconnected(BasePlayer player) {
149+
if (player == null) return;
150+
150151
string uid = player.UserIDString;
151-
OnlinePlayers.Remove(uid);
152+
_onlinePlayers.Remove(uid);
152153

153154
switch(ShouldAnnounce(player)) {
154155
case true:
@@ -159,20 +160,22 @@ private void OnPlayerDisconnected(BasePlayer player) {
159160
}
160161

161162
private void OnPlayerSleepEnded(BasePlayer player) {
163+
if (player == null) return;
164+
162165
bool isOnline = false;
163166
foreach (BasePlayer p in BasePlayer.activePlayerList) {
164167
if (p.UserIDString == player.UserIDString) isOnline = true;
165168
}
166169

167170
string keyToUse = "OnJoin";
168171

169-
if (!OnlinePlayers.Contains(player.UserIDString) && isOnline) {
170-
OnlinePlayers.Add(player.UserIDString);
171-
if (cachedPlayers[player.UserIDString] != null) keyToUse = "OnJoin";
172+
if (!_onlinePlayers.Contains(player.UserIDString) && isOnline) {
173+
_onlinePlayers.Add(player.UserIDString);
174+
if (_cachedPlayers[player.UserIDString] != null) keyToUse = "OnJoin";
172175
else {
173176
keyToUse = "OnWelcome";
174-
cachedPlayers[player.UserIDString] = player.displayName;
175-
cachedPlayers.Save();
177+
_cachedPlayers[player.UserIDString] = player.displayName;
178+
_cachedPlayers.Save();
176179
}
177180
}
178181

@@ -184,7 +187,12 @@ private void OnPlayerSleepEnded(BasePlayer player) {
184187
}
185188
}
186189

187-
[Command("hidewelcome")] private void HideWelcomeCommand(BasePlayer player) {
190+
#endregion
191+
192+
#region Commands
193+
194+
[Command("hidewelcome")]
195+
private void HideWelcomeCommand(BasePlayer player) {
188196
if (!permission.UserHasPermission(player.UserIDString, "truewelcomer.canSetPreference")) {
189197
player.ChatMessage(GetMessage("NoPermission", player.UserIDString));
190198
return;
@@ -201,7 +209,7 @@ private void OnPlayerSleepEnded(BasePlayer player) {
201209
}
202210

203211

204-
finalMsg += _config.hidePlayersWithPermission ? "" : $"\n{GetMessage("ServerConfigAlert", player.UserIDString)}";
212+
finalMsg += _config.HidePlayersWithPermission ? "" : $"\n{GetMessage("ServerConfigAlert", player.UserIDString)}";
205213
player.ChatMessage(finalMsg);
206214
}
207215

@@ -216,20 +224,20 @@ private void RefreshDataCommand(ConsoleSystem.Arg arg) {
216224
string msg = "";
217225
int num = 0;
218226
foreach (BasePlayer player in BasePlayer.activePlayerList) {
219-
if (cachedPlayers[player.UserIDString] != null) num += 0;
227+
if (_cachedPlayers[player.UserIDString] != null) num += 0;
220228
else {
221-
cachedPlayers[player.UserIDString] = player.displayName;
222-
cachedPlayers.Save();
229+
_cachedPlayers[player.UserIDString] = player.displayName;
230+
_cachedPlayers.Save();
223231
num += 1;
224232
msg += $"Player {player.displayName} has been added.\n";
225233
}
226234
}
227235

228236
foreach (BasePlayer player in BasePlayer.sleepingPlayerList) {
229-
if (cachedPlayers[player.UserIDString] != null) num += 0;
237+
if (_cachedPlayers[player.UserIDString] != null) num += 0;
230238
else {
231-
cachedPlayers[player.UserIDString] = player.displayName;
232-
cachedPlayers.Save();
239+
_cachedPlayers[player.UserIDString] = player.displayName;
240+
_cachedPlayers.Save();
233241
num += 1;
234242
msg += $"Player {player.displayName} has been added.\n";
235243
}
@@ -250,8 +258,8 @@ private void ResetDataCommand(ConsoleSystem.Arg arg) {
250258
return;
251259
}
252260

253-
cachedPlayers.Clear();
254-
cachedPlayers.Save();
261+
_cachedPlayers.Clear();
262+
_cachedPlayers.Save();
255263
arg.ReplyWith("The Data File for True Welcomer has been reset!");
256264
}
257265

0 commit comments

Comments
 (0)