· 8 years ago · Mar 12, 2018, 02:48 PM
1using Rocket.Core.Logging;
2using Rocket.Core.Plugins;
3using Rocket.Unturned;
4using System;
5using System.Collections.Generic;
6using System.Linq;
7using System.Text;
8using System.Threading.Tasks;
9using MySql.Data;
10using MySql.Data.MySqlClient;
11using Rocket.Unturned.Chat;
12using Rocket.Core.Commands;
13using Rocket.API;
14using Rocket.Unturned.Player;
15using Rocket.Core.Permissions;
16using Rocket.Core;
17using SDG.Unturned;
18using Rocket.Unturned.Events;
19
20namespace Countrys
21{
22 public class Countrys : RocketPlugin<UConfig>
23 {
24 public RocketPermissionsManager Permissions = R.Instance.GetComponent<RocketPermissionsManager>();
25 [RocketCommand("country", "", "", Rocket.API.AllowedCaller.Player)]
26 //Lav is look at vehicle
27 public void Execute(IRocketPlayer caller, params string[] command)
28 {
29 UnturnedPlayer Uply = caller as UnturnedPlayer;
30
31 if(command.Length == 1)
32 {
33
34 string mySelectQuery = "select exists (select 1 from COUNTRYS where steamid =" + Uply.Id + ");";
35 MySqlCommand myCommand = new MySqlCommand(mySelectQuery, connection);
36 connection.Open();
37 MySqlDataReader myReader;
38 myReader = myCommand.ExecuteReader();
39
40 myReader.Read();
41 bool doesexist = myReader.GetBoolean(0);
42 if (doesexist == true)
43 {
44 myReader.Close();
45 connection.Close();
46 Logger.Log("Gay");
47
48 }
49 else
50 {
51 if (command[0].ToLower() == Insta.Configuration.Instance.Country1 || command[0].ToLower() == Insta.Configuration.Instance.Country1.Substring(0, 3))
52 {
53 myReader.Close();
54 connection.Close();
55 UnturnedPlayer ply = caller as UnturnedPlayer;
56 PerseusIsGay(2, ply);
57 Permissions.AddPlayerToGroup(Insta.Configuration.Instance.Countrey1Perm , caller);
58
59 }
60 else if (command[0].ToLower() == Insta.Configuration.Instance.Country2 || command[0].ToLower() == Insta.Configuration.Instance.Country2.Substring(0, 3))
61 {
62
63 myReader.Close();
64 connection.Close();
65 UnturnedPlayer ply = caller as UnturnedPlayer;
66 Permissions.AddPlayerToGroup(Insta.Configuration.Instance.Country2Perm, caller);
67 PerseusIsGay(1, ply);
68 } else if (command[0] == null)
69 {
70 UnturnedPlayer ply = caller as UnturnedPlayer;
71 Events_OnPlayerConnected(Uply);
72 }
73 }
74 }
75
76 }
77 public MySqlConnection connection;
78 public static Countrys Insta;
79 protected override void Load()
80 {
81 Insta = this;
82 Logger.Log("UCountys Has Been Loaded");
83 DBConnectionInit();
84 U.Events.OnPlayerConnected += Events_OnPlayerConnected;
85 UnturnedPlayerEvents.OnPlayerDeath += UnturnedPlayerEvents_OnPlayerDeath;
86 UnturnedPlayerEvents.OnPlayerRevive += UnturnedPlayerEvents_OnPlayerRevive;
87
88
89 }
90
91 public void UnturnedPlayerEvents_OnPlayerRevive(UnturnedPlayer player, UnityEngine.Vector3 position, byte angle)
92 {
93 if (player.HasPermission(Insta.Configuration.Instance.Countrey1Perm))
94 {
95
96 player.GiveItem(Insta.Configuration.Instance.Passport1, 1);
97
98
99 }
100 else if (player.HasPermission(Insta.Configuration.Instance.Country2Perm))
101 {
102 player.GiveItem(Insta.Configuration.Instance.Passport2, 1);
103 }
104
105 }
106
107 public void UnturnedPlayerEvents_OnPlayerDeath(UnturnedPlayer player, EDeathCause cause, ELimb limb, Steamworks.CSteamID murderer)
108 {
109
110 if (player.HasPermission("estonian"))
111 {
112
113 RemoveInventoryItem(player, Insta.Configuration.Instance.Passport1);
114 } else if (player.HasPermission("sweden"))
115 {
116 RemoveInventoryItem(player, Insta.Configuration.Instance.Passport2);
117 }
118
119 }
120
121 private void Events_OnPlayerConnected(UnturnedPlayer player)
122 {
123 string mySelectQuery = "select exists (select 1 from COUNTRYS where steamid =" + player.Id + ");";
124 MySqlCommand myCommand = new MySqlCommand(mySelectQuery, connection);
125 connection.Open();
126 MySqlDataReader myReader;
127 myReader = myCommand.ExecuteReader();
128 myReader.Read();
129 bool doesexist = myReader.GetBoolean(0);
130 int Country = myReader.GetInt16(0);
131 if (doesexist != true)
132 {
133 myReader.Close();
134 connection.Close();
135 EffectManager.sendUIEffect(10090, short.Parse((player.CSteamID.m_SteamID / 9390480284091).ToString()), player.CSteamID, false, player.DisplayName);
136 } else
137 {
138 myReader.Close();
139 connection.Close();
140 UnturnedChat.Say("You Already Live In " + Country);
141
142 }
143
144 }
145
146 public void DBConnectionInit ()
147 {
148 string DBConnectstring = "SERVER=" + Insta.Configuration.Instance.MysqlServerIP + ";" + "PORT=" + Insta.Configuration.Instance.MySqlServerPort + ";" + "DATABASE=" + Insta.Configuration.Instance.MySqlServerDatabase + ";" + "UID=" + Insta.Configuration.Instance.MySqlServerUser + ";" + "Pwd=" + Insta.Configuration.Instance.MySqlServerPassword + ";";
149 if(Insta.Configuration.Instance.HasPassword == false)
150 {
151 DBConnectstring = "SERVER=" + Insta.Configuration.Instance.MysqlServerIP + ";" + "PORT=" + Insta.Configuration.Instance.MySqlServerPort + ";" + "DATABASE=" + Insta.Configuration.Instance.MySqlServerDatabase + ";" + "UID=" + Insta.Configuration.Instance.MySqlServerUser + ";" + "Trusted_Connection=True;";
152 }
153 connection = new MySqlConnection(DBConnectstring);
154 try { connection.Open(); } catch(MySqlException) {
155 Logger.Log("Can't Connect To The Database. Check If Your Configuration Is Done Correctly");
156 }
157 connection.Close();
158 TableChecker();
159
160 }
161 public void TableChecker()
162 {
163 string qry = "CREATE TABLE IF NOT EXISTS COUNTRYS (steamid BIGINT, Country INT(1));";
164 MySqlCommand cmd = new MySqlCommand(qry,connection);
165 connection.Open();
166 cmd.ExecuteNonQuery();
167 connection.Close();
168
169 }
170
171
172 public void PerseusIsGay(int choice, UnturnedPlayer player)
173 {
174 switch (choice)
175 {
176 case 1:
177 string qry1 = "INSERT INTO COUNTRYS (steamid, Country) VALUES(" + player.Id + ", " + 2 + ")";
178 MySqlCommand cmd = new MySqlCommand(qry1, connection);
179 connection.Open();
180 cmd.ExecuteNonQuery();
181 connection.Close();
182 break;
183
184 case 2:
185 string qry2 = "INSERT INTO COUNTRYS (steamid, Country) VALUES(" + player.Id + ", " + 3 + ");";
186 MySqlCommand cmd1 = new MySqlCommand(qry2, connection);
187 connection.Open();
188 cmd1.ExecuteNonQuery();
189 connection.Close();
190 break;
191 }
192
193 }
194
195 protected override void Unload()
196 {
197 base.Unload();
198 Logger.Log("UCountys Has Been Unloaded");
199 Insta = null;
200 U.Events.OnPlayerConnected -= Events_OnPlayerConnected;
201 UnturnedPlayerEvents.OnPlayerDeath -= UnturnedPlayerEvents_OnPlayerDeath;
202 UnturnedPlayerEvents.OnPlayerRevive -= UnturnedPlayerEvents_OnPlayerRevive;
203 }
204 public void RemoveInventoryItem(UnturnedPlayer player, ushort itemId)
205 {
206 try
207 {
208 for (byte page = 0; page < 8; page++)
209 {
210 var count = player.Inventory.getItemCount(page);
211
212 for (byte index = 0; index < count; index++)
213 {
214 if (player.Inventory.getItem(page, index).item.id == itemId)
215 {
216 player.Inventory.removeItem(page, index);
217 }
218 }
219 }
220 }
221 catch (Exception ex)
222 {
223 Logger.LogException(ex);
224 }
225 }
226
227 }
228}