· 8 years ago · Jan 31, 2018, 07:34 AM
1<?php
2namespace dc4code\DBLog;
3use pocketmine\command\CommandSender;
4use pocketmine\command\Command;
5use pocketmine\command\CommandExecutor;
6use pocketmine\event\Listener;
7use pocketmine\utils\TextFormat;
8use pocketmine\plugin\PluginBase;
9use pocketmine\event\player\PlayerJoinEvent;
10use pocketmine\event\player\PlayerDeathEvent;
11use pocketmine\Server;
12use pocketmine\Player;
13
14
15class Main extends PluginBase implements Listener{
16
17
18
19public function onEnable(){
20 $this->reloadConfig();
21 $this->getServer()->getPluginManager()->registerEvents($this, $this);
22 $this->getLogger()->info(TextFormat::GREEN . "DBLog v1.0 by DC4CODE is now Enabled!");
23 $cfg = $this->getConfig()->getAll();
24 $configfile = $cfg["mysql-info"];
25 $mysql_host = $configfile["host"];
26 $mysql_user = $configfile["user"];
27 $mysql_pass = $configfile["password"];
28 $mysql_dbname = $configfile["database"];
29 $createtable = mysqli_connect($mysql_host, $mysql_user, $mysql_pass);
30 mysqli_select_db($createtable, $mysql_dbname);
31 $sql = "CREATE TABLE IF NOT EXISTS `dblog`( id INT(6) UNSIGNED auto_increment PRIMARY KEY, name VARCHAR(30) NOT NULL, ip VARCHAR(15) NOT NULL, xuid VARCHAR(50), uuid VARCHAR(50), kills VARCHAR(50), deaths VARCHAR(50), reg_date TIMESTAMP); ";
32 $result = mysqli_query($createtable, $sql);
33 mysqli_close($createtable);
34 }
35
36
37
38public function onJoin(PlayerJoinEvent $ev){
39 $cfg = $this->getConfig()->getAll();
40 $configfile = $cfg["mysql-info"];
41 $mysql_host = $configfile["host"];
42 $mysql_user = $configfile["user"];
43 $mysql_pass = $configfile["password"];
44 $mysql_dbname = $configfile["database"];
45 $conn = mysqli_connect($mysql_host, $mysql_user, $mysql_pass);
46 mysqli_select_db($conn, $mysql_dbname);
47 $ev = $ev->getPlayer();
48 $name = $ev->getName();
49 $name_sub = trim(strtolower($name));
50 $ip = $ev->getAddress();
51 $xuid = $ev->getClientId();
52 $uuid = $ev->getUniqueId();
53 $err = false; //Checking 1
54 $step1 = false; //Checking 2
55 $step2 = false; //Checking 3
56 $this->getLogger()->info(TextFormat::GREEN . "+Player Connected: " . $name);
57 $this->getLogger()->info(TextFormat::RED . " -IP: " . $ip);
58 $this->getLogger()->info(TextFormat::RED . " -Record Name: " . $name_sub);
59 $this->getLogger()->info(TextFormat::RED . " -XUID: " . $xuid);
60 $this->getLogger()->info(TextFormat::RED . " -UUID: " . $uuid);
61 $sql = "UPDATE dblog SET name='$name_sub',ip='$ip',xuid='$xuid',uuid='$uuid' WHERE name='$name_sub'" or die($err = true);
62
63if($err) {
64 $this->getLogger()->alert(TextFormat::RED . "Connection failed: " . $mysqli->connect_error);
65 $this->getServer()->getPluginManager()->disablePlugin($this->getServer()->getPluginManager()->getPlugin("DBLog"));
66}else{
67 $step1 = true;
68}
69
70$res = mysqli_query($conn, $sql);
71
72if ($res === false) {
73 $this->getLogger()->alert(TextFormat::RED . "An Error Occured! - DBLOG STOPPED -");
74 $this->getServer()->getPluginManager()->disablePlugin($this->getServer()->getPluginManager()->getPlugin("DBLog"));
75}else{
76$step2 = true;
77}
78
79if($step1 AND $step2) {
80 $this->getLogger()->info(TextFormat::GREEN . "Query on " . $name_sub . " Completed Successfully");
81}
82
83 mysqli_close($conn);
84 unset($conn);
85}
86
87
88
89public function PlayerDeath(PlayerDeathEvent $event){
90 $cause = $event->getEntity();
91 $name = $cause->getName();
92 $name_sub = trim(strtolower($name));
93 //$name = DEAD_PLAYER
94 //$name_sub = DEAD_PLAYER_LCASE SUBMIT
95
96
97
98
99
100
101
102 $cfg = $this->getConfig()->getAll();
103 $configfile = $cfg["mysql-info"];
104 $mysql_host = $configfile["host"];
105 $mysql_user = $configfile["user"];
106 $mysql_pass = $configfile["password"];
107 $mysql_dbname = $configfile["database"];
108 $conn = mysqli_connect($mysql_host, $mysql_user, $mysql_pass);
109 mysqli_select_db($conn, $mysql_dbname);
110if ($conn->connect_error) {
111//err
112}else{
113//ok
114}
115
116
117
118$sql1 = "SELECT * FROM `dblog` WHERE name=".$name_sub."";
119
120$sql2 = "UPDATE dblog
121SET deaths=".$death_num."
122WHERE name=".$name_sub."";
123
124if ($conn->query($sql1) === TRUE) {
125//ok MSG TODO
126} else {
127//err MSG TODO
128}
129
130$row1 = $sql1->fetch_array();
131$death_num = $row1['deaths'];
132if($death_num == NULL){
133 $death_num = 0;
134 $death_numr = $death_num+1;
135}else{
136 //OK
137}
138if ($conn->query($sql2) === TRUE) {
139$this->getLogger()->info(TextFormat::GREEN . "-DEATH_ADD Query on " . $name_sub . " Completed Successfully!");
140} else {
141$this->getLogger()->alert(TextFormat::RED . "-DEATH_ADD Query Err! SYS_ADD_RECORD = " . $name_sub . ":" . $name);
142}
143
144 if($cause instanceof EntityDamageByEntityEvent){
145 if($killers instanceof Player){
146 $kill = $cause->getDamager();
147 $kill_name = $kill->getName;
148 $kill_name_sub = trim(strtolower($kill_name));
149 //$kill_name = KILLER_NAME
150$sql3 = "SELECT * FROM `dblog` WHERE name=".$kill_name_sub."";
151
152$sql4 = "UPDATE dblog
153SET kills=".$kills_num."
154WHERE name=".$kill_name_sub."";
155
156if ($conn->query($sql3) === TRUE) {
157//ok MSG TODO
158} else {
159//err MSG TODO
160}
161
162$row1 = $sql3->fetch_array();
163$kills_num = $row3['kills']+1;
164if($kills_num == NULL){
165 $kills_num = 0;
166 $kills_numr = $kills_num+1;
167}else{
168 //OK
169}
170
171if ($conn->query($sql4) === TRUE) {
172$this->getLogger()->info(TextFormat::GREEN . "-KILL_ADD Query on " . $name_sub . " Completed Successfully
173!");
174} else {
175$this->getLogger()->alert(TextFormat::RED . "-KILL_ADD Query Err! SYS_ADD_RECORD = " . $kill_name_sub . ":" . $kill_name);
176}
177
178
179$this->getLogger()->alert(TextFormat::GREEN . "KD Transaction : Killer: " . $kill_name . " Target: " . $name . " - - - [SYS.RECORD : " . $kill_name_sub . ":" . $name_sub."]");
180
181
182
183 }
184 }
185 }
186
187
188
189
190
191
192
193
194
195 public function onDisable() {
196 $this->getLogger()->info(TextFormat::RED . "DBLog v1.0 by DC4CODE is now Disabled!");
197 }
198
199
200
201 public function onLoad(){
202 $this->saveDefaultConfig();
203 }
204
205 public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool{
206 switch($command->getName()){
207 case "lookup":
208 if($sender instanceof Player){
209 $player = $args[0];
210if(isset($player)) {
211 $sender->sendMessaage(TextFormat::GREEN . "Player Entered: " . $player);
212}else{
213 $sender->sendMessaage("Usage: /lookup <player>");
214}
215 }else{
216 $player = $args[0];
217
218if(isset($player)) {
219 $this->getLogger()->info(TextFormat::GREEN . "Player Entered: " . $player);
220}else{
221 $this->getLogger()->info("Usage: /lookup <player>");
222}
223 }
224
225
226 return true;
227 default:
228 return false;
229 }
230 }
231}