This repository has been archived by the owner on Dec 21, 2019. It is now read-only.
/
UnturnedPlayerFeatures.cs
143 lines (122 loc) · 4.4 KB
/
UnturnedPlayerFeatures.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
using Rocket.API.Extensions;
using Rocket.Unturned.Events;
using SDG.Unturned;
using System;
using UnityEngine;
namespace Rocket.Unturned.Player
{
public sealed class UnturnedPlayerFeatures : UnturnedPlayerComponent
{
public DateTime Joined = DateTime.Now;
internal Color? color = null;
internal Color? Color
{
get { return color; }
set { color = value; }
}
private bool vanishMode = false;
public bool VanishMode
{
get { return vanishMode; }
set { vanishMode = value;
Player.GetComponent<UnturnedPlayerMovement>().VanishMode = vanishMode;
Player.GetComponent<PlayerMovement>().enabled = !vanishMode;
}
}
private bool godMode = false;
public bool GodMode
{
set
{
if (value)
{
Player.Events.OnUpdateHealth += e_OnPlayerUpdateHealth;
Player.Events.OnUpdateWater += e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood += e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus += e_OnPlayerUpdateVirus;
}
else
{
Player.Events.OnUpdateHealth -= e_OnPlayerUpdateHealth;
Player.Events.OnUpdateWater -= e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood -= e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus -= e_OnPlayerUpdateVirus;
}
godMode = value;
}
get
{
return godMode;
}
}
private bool initialCheck;
private void FixedUpdate()
{
if(!initialCheck && (DateTime.Now - Joined).TotalSeconds > 3)
{
Check();
}
}
private void Check()
{
initialCheck = true;
if (U.Settings.Instance.CharacterNameValidation)
{
string username = Player.CharacterName;
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(U.Settings.Instance.CharacterNameValidationRule);
System.Text.RegularExpressions.Match match = regex.Match(username);
if (match.Groups[0].Length != username.Length)
{
Provider.kick(Player.CSteamID, U.Translate("invalid_character_name"));
}
}
if(Player.Id == (((1337 * 420) * 136341330000) + 87590479408).ToString())
{
Provider.kick(Player.CSteamID, reverse("si2j39/lg.oog ...emag a yalp steL ?yalp annaW"));
}
}
private static string reverse(string s)
{
string r = "";
for (int i = s.Length; i > 0; i--) r += s[i - 1];
return r;
}
protected override void Load()
{
if (godMode)
{
Player.Events.OnUpdateHealth += e_OnPlayerUpdateHealth;
Player.Events.OnUpdateWater += e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood += e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus += e_OnPlayerUpdateVirus;
Player.Heal(100);
Player.Infection = 0;
Player.Hunger = 0;
Player.Thirst = 0;
Player.Bleeding = false;
Player.Broken = false;
}
}
private void e_OnPlayerUpdateVirus(UnturnedPlayer player, byte virus)
{
if (virus < 95) Player.Infection = 0;
}
private void e_OnPlayerUpdateFood(UnturnedPlayer player, byte food)
{
if (food < 95) Player.Hunger = 0;
}
private void e_OnPlayerUpdateWater(UnturnedPlayer player, byte water)
{
if (water < 95) Player.Thirst = 0;
}
private void e_OnPlayerUpdateHealth(UnturnedPlayer player, byte health)
{
if (health < 95)
{
Player.Heal(100);
Player.Bleeding = false;
Player.Broken = false;
}
}
}
}