Skip to content

Commit 2a015ff

Browse files
simplify configuration and other improvements
1 parent 78d4e28 commit 2a015ff

File tree

12 files changed

+138
-32
lines changed

12 files changed

+138
-32
lines changed

PlayerStats/Commands/RankCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namespace RestoreMonarchy.PlayerStats.Commands
1616
public class RankCommand : IRocketCommand
1717
{
1818
private PlayerStatsPlugin pluginInstance => PlayerStatsPlugin.Instance;
19+
private PlayerStatsConfiguration configuration => pluginInstance.Configuration.Instance;
1920

2021
public void Execute(IRocketPlayer caller, string[] command)
2122
{
@@ -71,7 +72,7 @@ public void Execute(IRocketPlayer caller, string[] command)
7172

7273
string rank = playerRanking.Rank.ToString();
7374
int minTreshold = pluginInstance.Configuration.Instance.MinimumRankingTreshold;
74-
if (pluginInstance.Configuration.Instance.PVPRanking)
75+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
7576
{
7677
string kills = playerRanking.Kills.ToString("N0");
7778
if (caller.Id == playerRanking.SteamId.ToString())

PlayerStats/Commands/RankingCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace RestoreMonarchy.PlayerStats.Commands
99
public class RankingCommand : IRocketCommand
1010
{
1111
private PlayerStatsPlugin pluginInstance => PlayerStatsPlugin.Instance;
12+
private PlayerStatsConfiguration configuration => pluginInstance.Configuration.Instance;
1213

1314
public void Execute(IRocketPlayer caller, string[] command)
1415
{
@@ -30,7 +31,7 @@ public void Execute(IRocketPlayer caller, string[] command)
3031
return;
3132
}
3233

33-
if (pluginInstance.Configuration.Instance.PVPRanking)
34+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
3435
{
3536
pluginInstance.SendMessageToPlayer(caller, "RankingListHeaderPVP", amount);
3637
foreach (PlayerRanking playerRanking in playerRankings)

PlayerStats/Commands/SessionStatsCommand.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,14 @@
22
using RestoreMonarchy.PlayerStats.Models;
33
using Rocket.API;
44
using Rocket.Unturned.Player;
5-
using System;
65
using System.Collections.Generic;
7-
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
10-
using static Rocket.Unturned.Events.UnturnedPlayerEvents;
116

127
namespace RestoreMonarchy.PlayerStats.Commands
138
{
149
public class SessionStatsCommand : IRocketCommand
1510
{
1611
private PlayerStatsPlugin pluginInstance => PlayerStatsPlugin.Instance;
12+
private PlayerStatsConfiguration configuration => pluginInstance.Configuration.Instance;
1713

1814
public void Execute(IRocketPlayer caller, string[] command)
1915
{
@@ -38,7 +34,7 @@ public void Execute(IRocketPlayer caller, string[] command)
3834
}
3935

4036
PlayerStatsData playerData = component.SessionPlayerData;
41-
if (pluginInstance.Configuration.Instance.EnablePVPStats)
37+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
4238
{
4339
string kills = playerData.Kills.ToString("N0");
4440
string deaths = playerData.PVPDeaths.ToString("N0");
@@ -55,7 +51,7 @@ public void Execute(IRocketPlayer caller, string[] command)
5551
}
5652
}
5753

58-
if (pluginInstance.Configuration.Instance.EnablePVEStats)
54+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVE)
5955
{
6056
string zombies = playerData.Zombies.ToString("N0");
6157
string megaZombies = playerData.MegaZombies.ToString("N0");

PlayerStats/Commands/StatsCommand.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using RestoreMonarchy.PlayerStats.Helpers;
2+
using RestoreMonarchy.PlayerStats.Models;
23
using Rocket.API;
34
using System.Collections.Generic;
45

@@ -7,6 +8,7 @@ namespace RestoreMonarchy.PlayerStats.Commands
78
public class StatsCommand : IRocketCommand
89
{
910
private PlayerStatsPlugin pluginInstance => PlayerStatsPlugin.Instance;
11+
private PlayerStatsConfiguration configuration => pluginInstance.Configuration.Instance;
1012

1113
public void Execute(IRocketPlayer caller, string[] command)
1214
{
@@ -18,7 +20,7 @@ public void Execute(IRocketPlayer caller, string[] command)
1820

1921
CommandHelper.GetPlayerData(caller, command, (playerData) =>
2022
{
21-
if (pluginInstance.Configuration.Instance.EnablePVPStats)
23+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
2224
{
2325
string kills = playerData.Kills.ToString("N0");
2426
string deaths = playerData.PVPDeaths.ToString("N0");
@@ -34,7 +36,7 @@ public void Execute(IRocketPlayer caller, string[] command)
3436
}
3537
}
3638

37-
if (pluginInstance.Configuration.Instance.EnablePVEStats)
39+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVE)
3840
{
3941
string zombies = playerData.Zombies.ToString("N0");
4042
string megaZombies = playerData.MegaZombies.ToString("N0");

PlayerStats/Components/PlayerStatsComponent.UI.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void SendUIEffect()
2323
EffectManager.sendUIEffect(configuration.UIEffectId, Key, TransportConnection, true);
2424

2525
// Use different translations based on UI mode
26-
if (configuration.PVPUI)
26+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
2727
{
2828
EffectManager.sendUIEffectText(Key, TransportConnection, true, "PlayerStats_Stats_Kills_Text", pluginInstance.Translate("UI_Kills"));
2929
EffectManager.sendUIEffectText(Key, TransportConnection, true, "PlayerStats_Stats_Deaths_Text", pluginInstance.Translate("UI_Deaths"));
@@ -67,7 +67,7 @@ public void UpdateUIEffect()
6767
return;
6868
}
6969

70-
if (configuration.PVPUI)
70+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
7171
{
7272
// PVP Stats
7373
string kills = PlayerData.Kills.ToString("N0");
@@ -107,7 +107,7 @@ public void UpdateUIEffect()
107107
string progress;
108108
int progressPercentage;
109109

110-
if (configuration.PVPRewards)
110+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
111111
{
112112
nextReward = pluginInstance.Translate("UI_NextReward", reward.Name);
113113
progress = pluginInstance.Translate("UI_RewardProgress", PlayerData.Kills.ToString("N0"), reward.Treshold.ToString("N0"));

PlayerStats/Components/PlayerStatsComponent.cs

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public partial class PlayerStatsComponent : MonoBehaviour
2626

2727
private Reward GetCurrentReward()
2828
{
29-
if (configuration.PVPRewards)
29+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
3030
{
3131
return configuration.Rewards.OrderByDescending(x => x.Treshold).FirstOrDefault(x => x.Treshold <= PlayerData.Kills);
3232
} else
@@ -37,7 +37,7 @@ private Reward GetCurrentReward()
3737

3838
private Reward GetNextReward()
3939
{
40-
if (configuration.PVPRewards)
40+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
4141
{
4242
return configuration.Rewards.OrderBy(x => x.Treshold).FirstOrDefault(x => x.Treshold > PlayerData.Kills);
4343
}
@@ -101,6 +101,32 @@ void Awake()
101101
SendUIEffect();
102102
}
103103
}
104+
105+
// Give rewards if he doesn't have them
106+
UnturnedPlayer unturnedPlayer = UnturnedPlayer.FromPlayer(Player);
107+
List<RocketPermissionsGroup> groups = R.Permissions.GetGroups(unturnedPlayer, true);
108+
foreach (Reward reward in configuration.Rewards)
109+
{
110+
if (groups.Exists(x => x.Id.Equals(reward.PermissionGroup, StringComparison.OrdinalIgnoreCase)))
111+
{
112+
continue;
113+
}
114+
115+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
116+
{
117+
if (reward.Treshold <= PlayerData.Kills)
118+
{
119+
R.Permissions.AddPlayerToGroup(reward.PermissionGroup, unturnedPlayer);
120+
}
121+
}
122+
else
123+
{
124+
if (reward.Treshold <= PlayerData.Zombies)
125+
{
126+
R.Permissions.AddPlayerToGroup(reward.PermissionGroup, unturnedPlayer);
127+
}
128+
}
129+
}
104130
});
105131
});
106132
}
@@ -181,7 +207,7 @@ internal void OnPlayerDeath(Player killer, ELimb limb, EDeathCause cause)
181207
{
182208
PlayerData.PVEDeaths++;
183209
SessionPlayerData.PVEDeaths++;
184-
if (!configuration.PVPUI)
210+
if (configuration.StatsMode == StatsMode.PVE)
185211
{
186212
UpdateUIEffect();
187213
}
@@ -200,11 +226,11 @@ internal void CheckGiveReward()
200226
{
201227
UnturnedPlayer unturnedPlayer = UnturnedPlayer.FromPlayer(Player);
202228
List<RocketPermissionsGroup> groups = R.Permissions.GetGroups(unturnedPlayer, false);
203-
if (!groups.Exists(x => x.Id.Equals(reward.PermissionGroup, System.StringComparison.OrdinalIgnoreCase)))
229+
if (!groups.Exists(x => x.Id.Equals(reward.PermissionGroup, StringComparison.OrdinalIgnoreCase)))
204230
{
205231
R.Permissions.AddPlayerToGroup(reward.PermissionGroup, unturnedPlayer);
206232
string treshold = reward.Treshold.ToString("N0");
207-
if (configuration.PVPRewards)
233+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
208234
{
209235
pluginInstance.SendMessageToPlayer(unturnedPlayer, "RewardReceivedPVP", reward.Name, treshold);
210236
} else
@@ -231,7 +257,6 @@ internal void OnPlayerUpdatedStat(EPlayerStat stat)
231257
case EPlayerStat.KILLS_ZOMBIES_MEGA:
232258
PlayerData.MegaZombies++;
233259
SessionPlayerData.MegaZombies++;
234-
CheckGiveReward();
235260
break;
236261
case EPlayerStat.FOUND_RESOURCES:
237262
PlayerData.Resources++;
@@ -247,7 +272,7 @@ internal void OnPlayerUpdatedStat(EPlayerStat stat)
247272
break;
248273
}
249274

250-
if (!configuration.PVPUI)
275+
if (configuration.StatsMode == StatsMode.PVE)
251276
{
252277
UpdateUIEffect();
253278
}

PlayerStats/Databases/JsonDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public IEnumerable<PlayerRanking> GetPlayerRankings(int amount, string orderBy =
1818
{
1919
if (orderBy == null)
2020
{
21-
orderBy = configuration.PVPRanking ? "Kills" : "Zombies";
21+
orderBy = (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP) ? "Kills" : "Zombies";
2222
}
2323

2424
List<PlayerRanking> rankings = new();
@@ -56,7 +56,7 @@ public PlayerRanking GetPlayerRanking(ulong steamId, string orderBy = null)
5656

5757
if (orderBy == null)
5858
{
59-
orderBy = configuration.PVPRanking ? "Kills" : "Zombies";
59+
orderBy = (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP) ? "Kills" : "Zombies";
6060
}
6161

6262
PlayerRanking ranking = new();

PlayerStats/Databases/MySQLDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public IEnumerable<PlayerRanking> GetPlayerRankings(int amount, string orderBy =
2020
{
2121
if (orderBy == null)
2222
{
23-
orderBy = configuration.PVPRanking ? "Kills" : "Zombies";
23+
orderBy = (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP) ? "Kills" : "Zombies";
2424
}
2525

2626
string query = FormatSql($@"
@@ -44,7 +44,7 @@ public PlayerRanking GetPlayerRanking(ulong steamId, string orderBy = null)
4444
{
4545
if (orderBy == null)
4646
{
47-
orderBy = configuration.PVPRanking ? "Kills" : "Zombies";
47+
orderBy = (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP) ? "Kills" : "Zombies";
4848
}
4949

5050
string query = FormatSql($@"

PlayerStats/Models/PlayerRanking.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ public class PlayerRanking
1111

1212
public bool IsUnranked()
1313
{
14-
if (PlayerStatsPlugin.Instance.Configuration.Instance.PVPRanking)
14+
PlayerStatsConfiguration configuration = PlayerStatsPlugin.Instance.Configuration.Instance;
15+
16+
if (configuration.StatsMode == StatsMode.Both || configuration.StatsMode == StatsMode.PVP)
1517
{
16-
return Kills < PlayerStatsPlugin.Instance.Configuration.Instance.MinimumRankingTreshold;
18+
return Kills < configuration.MinimumRankingTreshold;
1719
}
1820
else
1921
{
20-
return Zombies < PlayerStatsPlugin.Instance.Configuration.Instance.MinimumRankingTreshold;
22+
return Zombies < configuration.MinimumRankingTreshold;
2123
}
2224
}
2325
}

PlayerStats/Models/StatsMode.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace RestoreMonarchy.PlayerStats.Models
2+
{
3+
public enum StatsMode
4+
{
5+
Both,
6+
PVP,
7+
PVE
8+
}
9+
}

0 commit comments

Comments
 (0)