Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. private function claim($player, $username, $region)
  2. {
  3. $level = $player->getLevel()->getName();
  4. $xgroup = $this->plugin->xgroup->getAll();
  5. if ($this->plugin->config->get('use_world_parameter') === true) {
  6. $user_group = $this->plugin->getPlayerGroup($player->getName(), array('levelName' => $level));
  7. } else {
  8. $user_group = $this->plugin->getPlayerGroup($player->getName(), array('levelName' => null));
  9. }
  10. if (isset($xgroup[$user_group]) && is_array($xgroup[$user_group])) {
  11. $group = $user_group;
  12. } else {
  13. $group = $this->plugin->config->get("default_group");
  14. }
  15. if (!empty($region) && preg_match("/^[a-zA-Z0-9_]+$/", $region)) {
  16. $check = $this->plugin->db->query("SELECT COUNT(*) as count FROM AREAS WHERE Region = '$region'")->fetchArray(SQLITE3_ASSOC);
  17. if (!$check['count']) {
  18. if (!isset($this->plugin->pos1[$username]) || !isset($this->plugin->pos2[$username])) {
  19. $msg_claimselectarea = $this->plugin->msg("msg_claimselectarea");
  20. $player->sendMessage($msg_claimselectarea);
  21. return true;
  22. }
  23. if ($this->plugin->pos1[$username][3] !== $this->plugin->pos2[$username][3]) {
  24. $msg_claimselectedpositionsindifferentworlds = $this->plugin->msg("msg_claimselectedpositionsindifferentworlds");
  25. $player->sendMessage($msg_claimselectedpositionsindifferentworlds);
  26. return true;
  27. }
  28. $pos1 = $this->plugin->pos1[$username];
  29. $pos2 = $this->plugin->pos2[$username];
  30. $min[0] = min($pos1[0], $pos2[0]);
  31. $max[0] = max($pos1[0], $pos2[0]);
  32. $min[1] = min($pos1[1], $pos2[1]);
  33. $max[1] = max($pos1[1], $pos2[1]);
  34. $min[2] = min($pos1[2], $pos2[2]);
  35. $max[2] = max($pos1[2], $pos2[2]);
  36. $count = $this->plugin->countBlocks($min[0], $min[1], $min[2], $max[0], $max[1], $max[2]);
  37. $result = $this->plugin->db->query("SELECT * FROM AREAS WHERE Pos2X >= $min[0] AND Pos1X <= $max[0] AND Pos2Y >= $min[1] AND Pos1Y <= $max[1] AND Pos2Z >= $min[2] AND Pos1Z <= $max[2] AND Level = '" . $pos1[3] . "';")->fetchArray(SQLITE3_ASSOC);
  38. if ($result !== false && !$player->isOp()) {
  39. $msg_claimregionoverlapsotherregion = $this->plugin->msg("msg_claimregionoverlapsotherregion");
  40. $msg_claimregionoverlapsotherregion = str_replace("{REGION}", $result['Region'], $msg_claimregionoverlapsotherregion);
  41. $player->sendMessage($msg_claimregionoverlapsotherregion);
  42. return true;
  43. } elseif (($count > $xgroup[$group]['max_region_count_blocks']) && !$player->isOp()) {
  44. $msg_claimmaxblocks = $this->plugin->msg("msg_claimmaxblocks");
  45. $msg_claimmaxblocks = str_replace("{MAX_BLOCKS}", $xgroup[$group]['max_region_count_blocks'], $msg_claimmaxblocks);
  46. $msg_claimmaxblocks = str_replace("{SELECTED_BLOCKS}", $count, $msg_claimmaxblocks);
  47. $player->sendMessage($msg_claimmaxblocks);
  48. return true;
  49. }
  50. $level = $pos1[3];
  51. $rg_count = $this->plugin->db->query("SELECT COUNT(*) as count FROM AREAS WHERE Owner = '$username'")->fetchArray();
  52. if ($rg_count['count'] < $xgroup[$group]["max_regions_num"] || $player->isOp()) {
  53. $this->plugin->db->exec("INSERT INTO AREAS (Owner, Pos1X, Pos1Y, Pos1Z, Pos2X, Pos2Y, Pos2Z, Level, Region) VALUES ('$username', $min[0], $min[1], $min[2], $max[0], $max[1], $max[2], '$level', '$region')");
  54. unset($this->plugin->pos1[$username]);
  55. unset($this->plugin->pos2[$username]);
  56. $msg_claimsuccess = $this->plugin->msg("msg_claimsuccess");
  57. $msg_claimsuccess = str_replace("{REGION}", $region, $msg_claimsuccess);
  58. $player->sendMessage($msg_claimsuccess);
  59. $this->plugin->getServer()->dispatchCommand($player, "flag ".$region." pvp deny");
  60. } else {
  61. $msg_claimmaxregions = $this->plugin->msg("msg_claimmaxregions");
  62. $msg_claimmaxregions = str_replace("{MAX_REGIONS}", $xgroup[$group]['max_regions_num'], $msg_claimmaxregions);
  63. $msg_claimmaxregions = str_replace("{CREATED_REGIONS}", $rg_count['count'], $msg_claimmaxregions);
  64. $player->sendMessage($msg_claimmaxregions);
  65. }
  66. } else {
  67. $msg_claimregionalreadyexists = $this->plugin->msg("msg_claimregionalreadyexists");
  68. $msg_claimregionalreadyexists = str_replace("{REGION}", $region, $msg_claimregionalreadyexists);
  69. $player->sendMessage($msg_claimregionalreadyexists);
  70. }
  71. } else {
  72. $msg_claimincorrect = $this->plugin->msg("msg_claimincorrect");
  73. $player->sendMessage($msg_claimincorrect);
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement