Advertisement
Guest User

FactionCommands

a guest
Oct 10th, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.62 KB | None | 0 0
  1. <?php
  2.  
  3. namespace FactionsPro;
  4.  
  5. use pocketmine\plugin\PluginBase;
  6. use pocketmine\command\CommandSender;
  7. use pocketmine\command\Command;
  8. use pocketmine\event\Listener;
  9. use pocketmine\event\block\BlockBreakEvent;
  10. use pocketmine\event\player\PlayerChatEvent;
  11. use pocketmine\Player;
  12. use pocketmine\event\entity\EntityDamageByEntityEvent;
  13. use pocketmine\utils\TextFormat;
  14. use pocketmine\scheduler\PluginTask;
  15. use pocketmine\event\player\PlayerJoinEvent;
  16. use pocketmine\utils\Config;
  17. use pocketmine\event\entity\EntityDamageEvent;
  18. use pocketmine\math\Vector3;
  19.  
  20. class FactionCommands {
  21.  
  22. public $plugin;
  23.  
  24. public function __construct(FactionMain $pg) {
  25. $this->plugin = $pg;
  26. }
  27.  
  28. public function onCommand(CommandSender $sender, Command $command, $label, array $args) {
  29. if($sender instanceof Player) {
  30. $player = $sender->getPlayer()->getName();
  31. if(strtolower($command->getName('k'))) {
  32. if(empty($args)) {
  33. $sender->sendMessage($this->plugin->formatMessage("Please use /k help for a list of commands"));
  34. return true;
  35. }
  36. if(count($args == 2)) {
  37. /////////////////////////////// JOIN ///////////////////////////////
  38.  
  39. if($args[0] == "join") {
  40. if(!isset($args[1])) {
  41. $sender->sendMessage($this->plugin->formatMessage("Usage: /k join <kingdom>"));
  42. return true;
  43. }
  44. if($this->plugin->factionExists($args[1]) == false) {
  45. $sender->sendMessage($this->plugin->formatMessage("Kingdom doesnt exist"));
  46. return true;
  47. }
  48.  
  49. if($this->plugin->isInFaction($sender->getName())) {
  50. $sender->sendMessage($this->plugin->formatMessage("You are already in a kingdom"));
  51. return true;
  52. } else {
  53. $factionName = $args[1];
  54. $player = strtolower($player);
  55. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction) VALUES (:player, :faction);");
  56. $stmt->bindValue(":player", $player);
  57. $stmt->bindValue(":faction", $factionName);
  58. $result = $stmt->execute();
  59. $sender->sendMessage($this->plugin->formatMessage("Kingdom successfully joined!", true));
  60. return true;
  61. }
  62. }
  63.  
  64. /////////////////////////////// CREATE ///////////////////////////////
  65.  
  66. if($args[0] == "initiate1") {
  67. if(!isset($args[1])) {
  68. $sender->sendMessage($this->plugin->formatMessage("Usage: /k create <kingdom name>"));
  69. return true;
  70. }
  71. if(!(ctype_alnum($args[1]))) {
  72. $sender->sendMessage($this->plugin->formatMessage("You may only use letters and numbers!"));
  73. return true;
  74. }
  75. if($this->plugin->isNameBanned($args[1])) {
  76. $sender->sendMessage($this->plugin->formatMessage("This name is not allowed."));
  77. return true;
  78. }
  79. if($this->plugin->factionExists($args[1]) == true ) {
  80. $sender->sendMessage($this->plugin->formatMessage("Faction already exists"));
  81. return true;
  82. }
  83. if(strlen($args[1]) > $this->plugin->prefs->get("MaxFactionNameLength")) {
  84. $sender->sendMessage($this->plugin->formatMessage("Kingdoms cant be made at the moment!"));
  85. return true;
  86. }
  87. if($this->plugin->isInFaction($sender->getName())) {
  88. $sender->sendMessage($this->plugin->formatMessage("You must leave this kingdom first"));
  89. return true;
  90. } else {
  91. $factionName = $args[1];
  92. $player = strtolower($player);
  93. $rank = "Leader";
  94. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  95. $stmt->bindValue(":player", $player);
  96. $stmt->bindValue(":faction", $factionName);
  97. $stmt->bindValue(":rank", $rank);
  98. $result = $stmt->execute();
  99. $this->plugin->updateTag($player);
  100. $sender->sendMessage($this->plugin->formatMessage("Kingdom successfully created!", true));
  101. return true;
  102. }
  103. }
  104.  
  105. /////////////////////////////// INVITE ///////////////////////////////
  106.  
  107. if($args[0] == "invite") {
  108. if(!isset($args[1])) {
  109. $sender->sendMessage($this->plugin->formatMessage("Usage: /k invite <player>"));
  110. return true;
  111. }
  112. if( $this->plugin->isFactionFull($this->plugin->getPlayerFaction($player)) ) {
  113. $sender->sendMessage($this->plugin->formatMessage("Kingdom is full. Please kick players to make room."));
  114. return true;
  115. }
  116. $invited = $this->plugin->getServer()->getPlayerExact($args[1]);
  117. if($this->plugin->isInFaction($invited) == true) {
  118. $sender->sendMessage($this->plugin->formatMessage("Player is currently in a kingdom"));
  119. return true;
  120. }
  121. if($this->plugin->prefs->get("OnlyLeadersCanInvite") & !($this->plugin->isLeader($player))) {
  122. $sender->sendMessage($this->plugin->formatMessage("Only your king may invite!"));
  123. return true;
  124. }
  125. if(!$invited instanceof Player) {
  126. $sender->sendMessage($this->plugin->formatMessage("Player not online!"));
  127. return true;
  128. }
  129. if($invited->isOnline() == true) {
  130. $factionName = $this->plugin->getPlayerFaction($player);
  131. $invitedName = $invited->getName();
  132. $rank = "Member";
  133.  
  134. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO confirm (player, faction, invitedby, timestamp) VALUES (:player, :faction, :invitedby, :timestamp);");
  135. $stmt->bindValue(":player", strtolower($invitedName));
  136. $stmt->bindValue(":faction", $factionName);
  137. $stmt->bindValue(":invitedby", $sender->getName());
  138. $stmt->bindValue(":timestamp", time());
  139. $result = $stmt->execute();
  140.  
  141. $sender->sendMessage($this->plugin->formatMessage("$invitedName has been invited!", true));
  142. $invited->sendMessage($this->plugin->formatMessage("You have been invited to $factionName. Type '/k accept' or '/k deny' into chat to accept or deny!", true));
  143. } else {
  144. $sender->sendMessage($this->plugin->formatMessage("Player not online!"));
  145. }
  146. }
  147.  
  148. /////////////////////////////// LEADER ///////////////////////////////
  149.  
  150. if($args[0] == "l138853892") {
  151. if(!isset($args[1])) {
  152. $sender->sendMessage($this->plugin->formatMessage("Usage: /f leader <player>"));
  153. return true;
  154. }
  155. if(!$this->plugin->isInFaction($sender->getName())) {
  156. $sender->sendMessage($this->plugin->formatMessage("You must be in a faction to use this!"));
  157. }
  158. if(!$this->plugin->isLeader($player)) {
  159. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this"));
  160. }
  161. if($this->plugin->getPlayerFaction($player) != $this->plugin->getPlayerFaction($args[1])) {
  162. $sender->sendMessage($this->plugin->formatMessage("Add player to faction first!"));
  163. }
  164. if(!$this->plugin->getServer()->getPlayerExact($args[1])->isOnline()) {
  165. $sender->sendMessage($this->plugin->formatMessage("Player not online!"));
  166. }
  167. $factionName = $this->plugin->getPlayerFaction($player);
  168. $factionName = $this->plugin->getPlayerFaction($player);
  169.  
  170. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  171. $stmt->bindValue(":player", $player);
  172. $stmt->bindValue(":faction", $factionName);
  173. $stmt->bindValue(":rank", "Member");
  174. $result = $stmt->execute();
  175.  
  176. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  177. $stmt->bindValue(":player", strtolower($args[1]));
  178. $stmt->bindValue(":faction", $factionName);
  179. $stmt->bindValue(":rank", "Leader");
  180. $result = $stmt->execute();
  181.  
  182.  
  183. $sender->sendMessage($this->plugin->formatMessage("You are no longer leader!", true));
  184. $this->plugin->getServer()->getPlayer($args[1])->sendMessage($this->plugin->formatMessage("You are now leader \nof $factionName!", true));
  185. $this->plugin->updateTag($sender->getName());
  186. $this->plugin->updateTag($this->plugin->getServer()->getPlayer($args[1])->getName());
  187. }
  188.  
  189. /////////////////////////////// PROMOTE ///////////////////////////////
  190.  
  191. if($args[0] == "promote") {
  192. if(!isset($args[1])) {
  193. $sender->sendMessage($this->plugin->formatMessage("Usage: /k promote <player>"));
  194. return true;
  195. }
  196. if(!$this->plugin->isInFaction($sender->getName())) {
  197. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to use this!"));
  198. return true;
  199. }
  200. if(!$this->plugin->isLeader($player)) {
  201. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this"));
  202. return true;
  203. }
  204. if($this->plugin->getPlayerFaction($player) != $this->plugin->getPlayerFaction($args[1])) {
  205. $sender->sendMessage($this->plugin->formatMessage("Player is not in this kingdom!"));
  206. return true;
  207. }
  208. if($this->plugin->isOfficer($this->plugin->getServer()->getPlayer($args[1])->getName())) {
  209. $sender->sendMessage($this->plugin->formatMessage("Player is already Officer"));
  210. return true;
  211. }
  212. $factionName = $this->plugin->getPlayerFaction($player);
  213. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  214. $stmt->bindValue(":player", strtolower($args[1]));
  215. $stmt->bindValue(":faction", $factionName);
  216. $stmt->bindValue(":rank", "Officer");
  217. $result = $stmt->execute();
  218. $player = $this->plugin->getServer()->getPlayer($args[1]);
  219. $sender->sendMessage($this->plugin->formatMessage("" . $player->getName() . " has been promoted to Officer!", true));
  220. $player->sendMessage($this->plugin->formatMessage("You are now Officer!", true));
  221. $this->plugin->updateTag($player->getName());
  222. }
  223.  
  224. /////////////////////////////// DEMOTE ///////////////////////////////
  225.  
  226. if($args[0] == "demote") {
  227. if(!isset($args[1])) {
  228. $sender->sendMessage($this->plugin->formatMessage("Usage: /k demote <player>"));
  229. return true;
  230. }
  231. if($this->plugin->isInFaction($sender->getName()) == false) {
  232. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to use this!"));
  233. return true;
  234. }
  235. if($this->plugin->isLeader($player) == false) {
  236. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this"));
  237. return true;
  238. }
  239. if($this->plugin->getPlayerFaction($player) != $this->plugin->getPlayerFaction($args[1])) {
  240. $sender->sendMessage($this->plugin->formatMessage("Player is not in this kingdom!"));
  241. return true;
  242. }
  243. if(!$this->plugin->isOfficer($this->plugin->getServer()->getPlayer($args[1])->getName())) {
  244. $sender->sendMessage($this->plugin->formatMessage("Player is already Member"));
  245. return true;
  246. }
  247. $factionName = $this->plugin->getPlayerFaction($player);
  248. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  249. $stmt->bindValue(":player", strtolower($args[1]));
  250. $stmt->bindValue(":faction", $factionName);
  251. $stmt->bindValue(":rank", "Member");
  252. $result = $stmt->execute();
  253. $player = $this->plugin->getServer()->getPlayer($args[1]);
  254. $sender->sendMessage($this->plugin->formatMessage("" . $player->getName() . " has been demoted to Member.", true));
  255. $player->sendMessage($this->plugin->formatMessage("You were demoted to Member.", true));
  256. $this->plugin->updateTag($player->getName());
  257. }
  258.  
  259. /////////////////////////////// KICK ///////////////////////////////
  260.  
  261. if($args[0] == "kick") {
  262. if(!isset($args[1])) {
  263. $sender->sendMessage($this->plugin->formatMessage("Usage: /k kick <player>"));
  264. return true;
  265. }
  266. if($this->plugin->isInFaction($sender->getName()) == false) {
  267. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to use this!"));
  268. return true;
  269. }
  270. if($this->plugin->isLeader($player) == false) {
  271. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this"));
  272. return true;
  273. }
  274. if($this->plugin->getPlayerFaction($player) != $this->$args[1]) {
  275. $sender->sendMessage($this->plugin->formatMessage("Player is not in this kingdom!"));
  276. return true;
  277. }
  278. $kicked = $this->plugin->getServer()->getPlayer($args[1]);
  279. $factionName = $this->plugin->getPlayerFaction($player);
  280. $this->plugin->db->query("DELETE FROM master WHERE player='$args[1]';");
  281. $sender->sendMessage($this->plugin->formatMessage("You successfully kicked $args[1]!", true));
  282. $players[] = $this->plugin->getServer()->getOnlinePlayers();
  283. if(in_array($args[1], $players) == true) {
  284. $this->plugin->getServer()->getPlayer($args[1])->sendMessage($this->plugin->formatMessage("You have been kicked from \n $factionName!, true"));
  285. $this->plugin->updateTag($args[1]);
  286. return true;
  287. }
  288. }
  289.  
  290. /////////////////////////////// INFO ///////////////////////////////
  291.  
  292. if(strtolower($args[0]) == 'info') {
  293. if(isset($args[1])) {
  294. if( !(ctype_alnum($args[1])) | !($this->plugin->factionExists($args[1]))) {
  295. $sender->sendMessage($this->plugin->formatMessage("Kingdom does not exist"));
  296. return true;
  297. }
  298. $faction = strtolower($args[1]);
  299. $leader = $this->plugin->getLeader($faction);
  300. $numPlayers = $this->plugin->getNumberOfPlayers($faction);
  301. $sender->sendMessage(TextFormat::BOLD . "-------------------------");
  302. $sender->sendMessage("$faction");
  303. $sender->sendMessage(TextFormat::BOLD . "Leader: " . TextFormat::RESET . "$leader");
  304. $sender->sendMessage(TextFormat::BOLD . "# of Players: " . TextFormat::RESET . "$numPlayers");
  305. $sender->sendMessage(TextFormat::BOLD . "MOTD: " . TextFormat::RESET . "$message");
  306. $sender->sendMessage(TextFormat::BOLD . "-------------------------");
  307. } else {
  308. $faction = $this->plugin->getPlayerFaction(strtolower($sender->getName()));
  309. $result = $this->plugin->db->query("SELECT * FROM motd WHERE faction='$faction';");
  310. $array = $result->fetchArray(SQLITE3_ASSOC);
  311. $message = $array["message"];
  312. $leader = $this->plugin->getLeader($faction);
  313. $numPlayers = $this->plugin->getNumberOfPlayers($faction);
  314. $sender->sendMessage(TextFormat::BOLD . "-------------------------");
  315. $sender->sendMessage("$faction");
  316. $sender->sendMessage(TextFormat::BOLD . "Leader: " . TextFormat::RESET . "$leader");
  317. $sender->sendMessage(TextFormat::BOLD . "# of Players: " . TextFormat::RESET . "$numPlayers");
  318. $sender->sendMessage(TextFormat::BOLD . "MOTD: " . TextFormat::RESET . "$message");
  319. $sender->sendMessage(TextFormat::BOLD . "-------------------------");
  320. }
  321. }
  322. if(strtolower($args[0]) == "help") {
  323. if(!isset($args[1]) || $args[1] == 1) {
  324. $sender->sendMessage(TextFormat::BLUE . "Kingdoms Help Page 1 of 3" . TextFormat::RED . "\n/k about\n/k accept\n/k join <kingdom>\n/k secretcreatecommand\n/k del\n/k demote <player>\n/k deny");
  325. return true;
  326. }
  327. if($args[1] == 2) {
  328. $sender->sendMessage(TextFormat::BLUE . "Kingdoms Help Page 2 of 3" . TextFormat::RED . "\n/k home\n/k help <page>\n/k info\n/k info <kingdom>\n/k invite <player>\n/k kick <player>\n/k leave");
  329. return true;
  330. } else {
  331. $sender->sendMessage(TextFormat::BLUE . "Kingdoms Help Page 3 of 3" . TextFormat::RED . "\n/k motd\n/k promote <player>\n/k sethome\n/k unclaim\n/k unsethome");
  332. return true;
  333. }
  334. }
  335. }
  336. if(count($args == 1)) {
  337.  
  338. /////////////////////////////// CLAIM ///////////////////////////////
  339.  
  340. if(strtolower($args[0]) == 'wowowowow') {
  341. if(!$this->plugin->isInFaction($player)) {
  342. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom."));
  343. return true;
  344. }
  345. if(!$this->plugin->isLeader($player)) {
  346. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this."));
  347. return true;
  348. }
  349. if($this->plugin->inOwnPlot($sender)) {
  350. $sender->sendMessage($this->plugin->formatMessage("Your faction has already claimed this area."));
  351. return true;
  352. }
  353. $x = floor($sender->getX());
  354. $y = floor($sender->getY());
  355. $z = floor($sender->getZ());
  356. $faction = $this->plugin->getPlayerFaction($sender->getPlayer()->getName());
  357. if($this->plugin->drawPlot($sender, $faction, $x, $y, $z, $sender->getPlayer()->getLevel(), $this->plugin->prefs->get("PlotSize")) == false) {
  358. return true;
  359. }
  360. $sender->sendMessage($this->plugin->formatMessage("Plot claimed.", true));
  361. }
  362.  
  363. /////////////////////////////// UNCLAIM ///////////////////////////////
  364.  
  365. if(strtolower($args[0]) == "unclaim") {
  366. if(!$this->plugin->isLeader($sender->getName())) {
  367. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this."));
  368. return true;
  369. }
  370. $faction = $this->plugin->getPlayerFaction($sender->getName());
  371. $this->plugin->db->query("DELETE FROM plots WHERE faction='$faction';");
  372. $sender->sendMessage($this->plugin->formatMessage("Plot unclaimed.", true));
  373. }
  374.  
  375. /////////////////////////////// MOTD ///////////////////////////////
  376.  
  377. if(strtolower($args[0]) == "motd") {
  378. if($this->plugin->isInFaction($sender->getName()) == false) {
  379. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to use this!"));
  380. return true;
  381. }
  382. if($this->plugin->isLeader($player) == false) {
  383. $sender->sendMessage($this->plugin->formatMessage("You must be leader to use this"));
  384. return true;
  385. }
  386. $sender->sendMessage($this->plugin->formatMessage("Type your message in chat. It will not be visible to other players", true));
  387. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO motdrcv (player, timestamp) VALUES (:player, :timestamp);");
  388. $stmt->bindValue(":player", strtolower($sender->getName()));
  389. $stmt->bindValue(":timestamp", time());
  390. $result = $stmt->execute();
  391. }
  392.  
  393. /////////////////////////////// ACCEPT ///////////////////////////////
  394.  
  395. if(strtolower($args[0]) == "accept") {
  396. $player = $sender->getName();
  397. $lowercaseName = strtolower($player);
  398. $result = $this->plugin->db->query("SELECT * FROM confirm WHERE player='$lowercaseName';");
  399. $array = $result->fetchArray(SQLITE3_ASSOC);
  400. if(empty($array) == true) {
  401. $sender->sendMessage($this->plugin->formatMessage("You have not been invited to any kingdoms!"));
  402. return true;
  403. }
  404. $invitedTime = $array["timestamp"];
  405. $currentTime = time();
  406. if(($currentTime - $invitedTime) <= 60) { //This should be configurable
  407. $faction = $array["faction"];
  408. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO master (player, faction, rank) VALUES (:player, :faction, :rank);");
  409. $stmt->bindValue(":player", strtolower($player));
  410. $stmt->bindValue(":faction", $faction);
  411. $stmt->bindValue(":rank", "Member");
  412. $result = $stmt->execute();
  413. $this->plugin->db->query("DELETE FROM confirm WHERE player='$lowercaseName';");
  414. $sender->sendMessage($this->plugin->formatMessage("You successfully joined $faction!", true));
  415. $this->plugin->getServer()->getPlayerExact($array["invitedby"])->sendMessage($this->plugin->formatMessage("$player joined the kingdom!", true));
  416. $this->plugin->updateTag($sender->getName());
  417. } else {
  418. $sender->sendMessage($this->plugin->formatMessage("Invite has timed out!"));
  419. $this->plugin->db->query("DELETE * FROM confirm WHERE player='$player';");
  420. }
  421. }
  422.  
  423. /////////////////////////////// DENY ///////////////////////////////
  424.  
  425. if(strtolower($args[0]) == "deny") {
  426. $player = $sender->getName();
  427. $lowercaseName = strtolower($player);
  428. $result = $this->plugin->db->query("SELECT * FROM confirm WHERE player='$lowercaseName';");
  429. $array = $result->fetchArray(SQLITE3_ASSOC);
  430. if(empty($array) == true) {
  431. $sender->sendMessage($this->plugin->formatMessage("You have not been invited to any kingdoms!"));
  432. return true;
  433. }
  434. $invitedTime = $array["timestamp"];
  435. $currentTime = time();
  436. if( ($currentTime - $invitedTime) <= 60 ) { //This should be configurable
  437. $this->plugin->db->query("DELETE * FROM confirm WHERE player='$lowercaseName';");
  438. $sender->sendMessage($this->plugin->formatMessage("Invite declined!", true));
  439. $this->plugin->getServer()->getPlayerExact($array["invitedby"])->sendMessage($this->plugin->formatMessage("$player declined the invite!"));
  440. } else {
  441. $sender->sendMessage($this->plugin->formatMessage("Invite has timed out!"));
  442. $this->plugin->db->query("DELETE * FROM confirm WHERE player='$lowercaseName';");
  443. }
  444. }
  445.  
  446. /////////////////////////////// DELETE ///////////////////////////////
  447.  
  448. if(strtolower($args[0]) == "del") {
  449. if($this->plugin->isInFaction($player) == true) {
  450. if($this->plugin->isLeader($player)) {
  451. $faction = $this->plugin->getPlayerFaction($player);
  452. $this->plugin->db->query("DELETE FROM master WHERE faction='$faction';");
  453. $sender->sendMessage($this->plugin->formatMessage("Kingdom successfully disbanded!", true));
  454. $this->plugin->updateTag($sender->getName());
  455. } else {
  456. $sender->sendMessage($this->plugin->formatMessage("You are not leader!"));
  457. }
  458. } else {
  459. $sender->sendMessage($this->plugin->formatMessage("You are not in a kingdom!"));
  460. }
  461. }
  462.  
  463. /////////////////////////////// LEAVE ///////////////////////////////
  464.  
  465. if(strtolower($args[0] == "leave")) {
  466. if($this->plugin->isLeader($player) == false) {
  467. $remove = $sender->getPlayer()->getNameTag();
  468. $faction = $this->plugin->getPlayerFaction($player);
  469. $name = $sender->getName();
  470. $this->plugin->db->query("DELETE FROM master WHERE player='$name';");
  471. $sender->sendMessage($this->plugin->formatMessage("You successfully left $faction", true));
  472. $this->plugin->updateTag($sender->getName());
  473. } else {
  474. $sender->sendMessage($this->plugin->formatMessage("You must delete or give\nleadership first!"));
  475. }
  476. }
  477.  
  478. /////////////////////////////// SETHOME ///////////////////////////////
  479.  
  480. if(strtolower($args[0] == "sethome")) {
  481. if(!$this->plugin->isInFaction($player)) {
  482. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to do this."));
  483. return true;
  484. }
  485. if(!$this->plugin->isLeader($player)) {
  486. $sender->sendMessage($this->plugin->formatMessage("You must be leader to set home."));
  487. return true;
  488. }
  489. $factionName = $this->plugin->getPlayerFaction($sender->getName());
  490. $stmt = $this->plugin->db->prepare("INSERT OR REPLACE INTO home (faction, x, y, z) VALUES (:faction, :x, :y, :z);");
  491. $stmt->bindValue(":faction", $factionName);
  492. $stmt->bindValue(":x", $sender->getX());
  493. $stmt->bindValue(":y", $sender->getY());
  494. $stmt->bindValue(":z", $sender->getZ());
  495. $result = $stmt->execute();
  496. $sender->sendMessage($this->plugin->formatMessage("Home updated!", true));
  497. }
  498.  
  499. /////////////////////////////// UNSETHOME ///////////////////////////////
  500.  
  501. if(strtolower($args[0] == "unsethome")) {
  502. if(!$this->plugin->isInFaction($player)) {
  503. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to do this."));
  504. return true;
  505. }
  506. if(!$this->plugin->isLeader($player)) {
  507. $sender->sendMessage($this->plugin->formatMessage("You must be leader to unset home."));
  508. return true;
  509. }
  510. $faction = $this->plugin->getPlayerFaction($sender->getName());
  511. $this->plugin->db->query("DELETE FROM home WHERE faction = '$faction';");
  512. $sender->sendMessage($this->plugin->formatMessage("Home unset!", true));
  513. }
  514.  
  515. /////////////////////////////// HOME ///////////////////////////////
  516.  
  517. if(strtolower($args[0] == "home")) {
  518. if(!$this->plugin->isInFaction($player)) {
  519. $sender->sendMessage($this->plugin->formatMessage("You must be in a kingdom to do this."));
  520. }
  521. $faction = $this->plugin->getPlayerFaction($sender->getName());
  522. $result = $this->plugin->db->query("SELECT * FROM home WHERE faction = '$faction';");
  523. $array = $result->fetchArray(SQLITE3_ASSOC);
  524. if(!empty($array)) {
  525. $sender->getPlayer()->teleport(new Vector3($array['x'], $array['y'], $array['z']));
  526. $sender->sendMessage($this->plugin->formatMessage("Teleported home.", true));
  527. return true;
  528. } else {
  529. $sender->sendMessage($this->plugin->formatMessage("Home is not set."));
  530. }
  531. }
  532.  
  533. /////////////////////////////// ABOUT ///////////////////////////////
  534.  
  535. if(strtolower($args[0] == 'about')) {
  536. $sender->sendMessage(TextFormat::BLUE . "FactionsPro v1.3.0 by " . TextFormat::BOLD . "Tethered_\n" . TextFormat::RESET . TextFormat::BLUE . "Twitter: " . TextFormat::ITALIC . "@Tethered_");
  537. }
  538. }
  539. }
  540. } else {
  541. $this->plugin->getServer()->getLogger()->info($this->plugin->formatMessage("Please run command in game"));
  542. }
  543. }
  544. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement