Advertisement
Guest User

Untitled

a guest
Aug 13th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. <?php
  2.  
  3. namespace wmpe;
  4.  
  5. use pocketmine\plugin\PluginBase;
  6. use pocketmine\utils\Config;
  7. use pocketmine\utils\TextFormat as F;
  8. use pocketmine\command\Command;
  9. use pocketmine\command\CommandSender;
  10. use pocketmine\event\Listener;
  11. use pocketmine\event\player\PlayerMoveEvent;
  12. use pocketmine\event\player\PlayerChatEvent;
  13. use pocketmine\event\player\PlayerDropItemEvent;
  14. use pocketmine\event\player\PlayerJoinEvent;
  15. use pocketmine\event\player\PlayerQuitEvent;
  16. use pocketmine\event\player\PlayerCommandPreprocessEvent;
  17. use pocketmine\Player;
  18. use pocketmine\Server;
  19. use pocketmine\event\block\BlockBreakEvent;
  20. use pocketmine\event\player\PlayerInteractEvent;
  21.  
  22. class wAuth extends PluginBase implements Listener {
  23. private $db, $users = array(), $reg = array();
  24.  
  25. public function onEnable() {
  26. if(!is_dir($this->getDataFolder()))
  27. @mkdir($this->getDataFolder());
  28. $this->config = (new Config($this->getDataFolder()."config.yml", Config::YAML, ["salt" => "ТвойКлючШифрования"]))->getAll();
  29. $this->passwords = (new Config($this->getDataFolger()."passwords.yml", Config::YAML));
  30. $this->db = new \SQLite3($this->getDataFolder()."users.db");
  31. $this->db->exec(stream_get_contents($this->getResource("database.sql")));
  32. $this->getServer()->getPluginManager()->registerEvents($this, $this);
  33. }
  34.  
  35. public function onPlayerMove(PlayerMoveEvent $event) {
  36. if(!isset($this->users[strtolower($event->getPlayer()->getName())]))
  37. $event->setCancelled(true);
  38. }
  39. public function onDrop(PlayerDropItemEvent $e){
  40. if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
  41. $e->setCancelled(true);
  42. }
  43. public function onBreak(BlockBreakEvent $e){
  44. if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
  45. $e->setCancelled(true);
  46. }
  47.  
  48. public function onTap( PlayerInteractEvent $e){
  49. if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
  50. $e->setCancelled(true);
  51. }
  52.  
  53. public function onCommand(CommandSender $sender, Command $cmd, $label, array $cmds)
  54. {
  55. if ($cmd == "cp") {
  56. if($sender instanceof Player){
  57. $player = $sender->getPlayer();
  58. $nick = $player->getName();
  59. if(Empty($cmds[0]) or Empty($cmds[1])){
  60. $sender->sendMessage("§a(§7LastCraft§a) §fИспользование: §e/cp §3[старый пароль] §3[новый пароль]§e.");
  61. }else{
  62. if($cmds[0] !== $this->passwords->get($nick));
  63. {
  64. $sender->sendMessage("§a(§7LastCraft§a) §cВы ввели неверный старый пароль.");
  65. }else{
  66. if(strlen($cmds[1])===6 or strlen($cmds[1])>=6){
  67. $password = $cmds[1];
  68. $this->passwords->set($nick, $password);
  69. $this->passwords->save();
  70. $sender->sendMessage("§a(§7LastCraft§a) §fВы успешно изменили свой пароль на: §e".$cmds[1]."§f.");
  71. }else{
  72. if(strlen($cmds[1])<=5){
  73. $sender->sendMessage("§a§7LastCraft§a) §cВы ввели слишком короткий новый пароль.");
  74. }
  75. }
  76. }
  77. }
  78. }else{
  79. $sender->sendMessage("§eДанная команда работает только в игре!");
  80. }
  81. }
  82. public function onPlayerJoin(PlayerJoinEvent $event) {
  83. $player = $event->getPlayer();
  84. $sql = $this->db->prepare("SELECT * FROM `users` WHERE `nickname` = :nickname");
  85. $sql->bindValue(":nickname", strtolower($player->getName()), SQLITE3_TEXT);
  86. $sql = $sql->execute();
  87. $user = $sql->fetchArray(SQLITE3_ASSOC);
  88. if(isset($user["nickname"])) {
  89. $ip = $player->getAddress();
  90. if($ip == $user["ipLast"]) {
  91. $this->users[strtolower($player->getName())] = [
  92. "pass" => $this->passwords->get($player->getName());
  93. "ip" => $ip
  94. ];
  95. $player->sendMessage("§8(§cLast§fCraft§8)§f Вы уже вводили свой пароль! §aПриятной игры!");
  96. } else
  97. $player->sendMessage("§8(§cLast§fCraft§8)§f Введите §bсвой пароль §fв чат, который вводили при регистрации.");
  98. } else $player->sendMessage("§8(§cLast§fCraft§8)§f Придумайте и введите §bсвой пароль §fв чат, для регистрации.");
  99. $sql->finalize();
  100. }
  101.  
  102. public function onPlayerQuit(PlayerQuitEvent $event) {
  103. unset($this->users[strtolower($event->getPlayer()->getName())]);
  104. }
  105.  
  106. public function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement