Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace wmpe;
- use pocketmine\plugin\PluginBase;
- use pocketmine\utils\Config;
- use pocketmine\utils\TextFormat as F;
- use pocketmine\command\Command;
- use pocketmine\command\CommandSender;
- use pocketmine\event\Listener;
- use pocketmine\event\player\PlayerMoveEvent;
- use pocketmine\event\player\PlayerChatEvent;
- use pocketmine\event\player\PlayerDropItemEvent;
- use pocketmine\event\player\PlayerJoinEvent;
- use pocketmine\event\player\PlayerQuitEvent;
- use pocketmine\event\player\PlayerCommandPreprocessEvent;
- use pocketmine\Player;
- use pocketmine\Server;
- use pocketmine\event\block\BlockBreakEvent;
- use pocketmine\event\player\PlayerInteractEvent;
- class wAuth extends PluginBase implements Listener {
- private $db, $users = array(), $reg = array();
- public function onEnable() {
- if(!is_dir($this->getDataFolder()))
- @mkdir($this->getDataFolder());
- $this->config = (new Config($this->getDataFolder()."config.yml", Config::YAML, ["salt" => "ТвойКлючШифрования"]))->getAll();
- $this->passwords = (new Config($this->getDataFolger()."passwords.yml", Config::YAML));
- $this->db = new \SQLite3($this->getDataFolder()."users.db");
- $this->db->exec(stream_get_contents($this->getResource("database.sql")));
- $this->getServer()->getPluginManager()->registerEvents($this, $this);
- }
- public function onPlayerMove(PlayerMoveEvent $event) {
- if(!isset($this->users[strtolower($event->getPlayer()->getName())]))
- $event->setCancelled(true);
- }
- public function onDrop(PlayerDropItemEvent $e){
- if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
- $e->setCancelled(true);
- }
- public function onBreak(BlockBreakEvent $e){
- if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
- $e->setCancelled(true);
- }
- public function onTap( PlayerInteractEvent $e){
- if(!isset($this->users[strtolower($e->getPlayer()->getName())]))
- $e->setCancelled(true);
- }
- public function onCommand(CommandSender $sender, Command $cmd, $label, array $cmds)
- {
- if ($cmd == "cp") {
- if($sender instanceof Player){
- $player = $sender->getPlayer();
- $nick = $player->getName();
- if(Empty($cmds[0]) or Empty($cmds[1])){
- $sender->sendMessage("§a(§7LastCraft§a) §fИспользование: §e/cp §3[старый пароль] §3[новый пароль]§e.");
- }else{
- if($cmds[0] !== $this->passwords->get($nick));
- {
- $sender->sendMessage("§a(§7LastCraft§a) §cВы ввели неверный старый пароль.");
- }else{
- if(strlen($cmds[1])===6 or strlen($cmds[1])>=6){
- $password = $cmds[1];
- $this->passwords->set($nick, $password);
- $this->passwords->save();
- $sender->sendMessage("§a(§7LastCraft§a) §fВы успешно изменили свой пароль на: §e".$cmds[1]."§f.");
- }else{
- if(strlen($cmds[1])<=5){
- $sender->sendMessage("§a§7LastCraft§a) §cВы ввели слишком короткий новый пароль.");
- }
- }
- }
- }
- }else{
- $sender->sendMessage("§eДанная команда работает только в игре!");
- }
- }
- public function onPlayerJoin(PlayerJoinEvent $event) {
- $player = $event->getPlayer();
- $sql = $this->db->prepare("SELECT * FROM `users` WHERE `nickname` = :nickname");
- $sql->bindValue(":nickname", strtolower($player->getName()), SQLITE3_TEXT);
- $sql = $sql->execute();
- $user = $sql->fetchArray(SQLITE3_ASSOC);
- if(isset($user["nickname"])) {
- $ip = $player->getAddress();
- if($ip == $user["ipLast"]) {
- $this->users[strtolower($player->getName())] = [
- "pass" => $this->passwords->get($player->getName());
- "ip" => $ip
- ];
- $player->sendMessage("§8(§cLast§fCraft§8)§f Вы уже вводили свой пароль! §aПриятной игры!");
- } else
- $player->sendMessage("§8(§cLast§fCraft§8)§f Введите §bсвой пароль §fв чат, который вводили при регистрации.");
- } else $player->sendMessage("§8(§cLast§fCraft§8)§f Придумайте и введите §bсвой пароль §fв чат, для регистрации.");
- $sql->finalize();
- }
- public function onPlayerQuit(PlayerQuitEvent $event) {
- unset($this->users[strtolower($event->getPlayer()->getName())]);
- }
- public function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement