Ищю кодера | Естественно не Бесплатно

Привет всем, ищю кодера, надо написать пару простеньких плагинов, и исправить ошибки в одном, ядро EnvyCore 1.6,версия майнкрафт 1.1.5,пишите свой тг, о цене договоримся

Сразу видно всё.

Кал-ядро, кал-версия. Так и живём. :person_shrugging:

Спасибо, чуть позже напишу

Ага

А в чем прикол?

какие плагины надо пофиксить?

@THEDINEER тг

Telegram

Используй CHATGPT, и проси что тебе надо, к примеру “Напиши код для регистрации на сервере POCKETMINE, API к примеру 3.0.0”.
После того как он тебе дал код, делай поправки ему, говори чтоб сделал изменения в коде, добавлял что нибудь и тд , это бесплатно и легко

1 лайк

:expressionless::expressionless::expressionless:

:clown_face::clown_face:

уйди с форума пж

пример

Спойлер

напиши код для регистрации на сервере POCKETMINE API 3.0.0 , когда игрок зашёл на сервер ( если он не зарегестрирован ) просило зарегестрироваться, просто написать пароль в чат без команд , нельзя в пароле использовать пробелы и русские буквы, если он допустил ошибки, в чат писало В пароле нельзя использовать пробелы или русские буквы. Если он попытаеться ввести команды какие нибудь во время авторизации/регистрации, в чат писало Для начало нужно ввести пароль, так же во время авторизации/регистрации нельзя ходить, кстати, авторизации тоже должна быть без команды, просто нужно ввести пароль в чат который он указывал во время регистрации, если пароль был введён не правильно более 3 раз, кикало с сервера и писало Попытка взлома, попробуйте через 5 минут, и если он попытаеться зайти и не прошло 5 минут на сервер он зайти не сможет

<?php

declare(strict_types=1);

namespace YourPluginNamespace;

use pocketmine\event\player\PlayerChatEvent;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\Player;
use pocketmine\utils\Config;
use pocketmine\utils\TextFormat;

class Main extends PluginBase implements Listener {

    private $passwords = [];

    public function onEnable() {
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->saveResource("passwords.yml");
        $this->passwords = (new Config($this->getDataFolder() . "passwords.yml", Config::YAML))->getAll();
    }

    public function onPlayerChat(PlayerChatEvent $event) {
        $player = $event->getPlayer();
        $message = $event->getMessage();

        if (!$this->isRegistered($player)) {
            $passwordData = $this->passwords[$player->getName()] ?? null;

            if ($passwordData !== null) {
                $attempts = $passwordData['attempts'] ?? 0;

                if (trim($message) === $passwordData['password']) {
                    $this->finishRegistration($player);
                } else {
                    $attempts++;
                    $this->passwords[$player->getName()]['attempts'] = $attempts;

                    if ($attempts >= 3) {
                        $this->getServer()->getNameBans()->addBan($player->getName(), "Попытка взлома", null, "console");
                        $this->getServer()->broadcastMessage(TextFormat::RED . $player->getName() . " был кикнут за попытку взлома.");
                        $this->getScheduler()->scheduleDelayedTask(new class($player) extends \pocketmine\scheduler\Task {
                            private $player;

                            public function __construct(Player $player) {
                                $this->player = $player;
                            }

                            public function onRun(int $currentTick) {
                                $this->player->unban();
                            }
                        }, 5 * 60 * 20); // Разбан через 5 минут (5 * 60 * 20 тиков)
                    } else {
                        $player->sendMessage(TextFormat::RED . "Пароль введен неверно. Попробуйте еще раз.");
                    }

                    $this->savePasswords();
                }

                $event->setCancelled(true);
            } else {
                $player->sendMessage(TextFormat::YELLOW . "Для начала вам нужно зарегистрироваться. Введите пароль в чат.");
                $this->generatePassword($player);
                $event->setCancelled(true);
            }
        }
    }

    public function onPlayerMove(PlayerMoveEvent $event) {
        $player = $event->getPlayer();

        if (!$this->isRegistered($player)) {
            $event->setCancelled(true);
            $player->sendMessage(TextFormat::RED . "Для начала вам нужно зарегистрироваться. Введите пароль в чат.");
        }
    }

    private function savePasswords() {
        $config = new Config($this->getDataFolder() . "passwords.yml", Config::YAML);
        $config->setAll($this->passwords);
        $config->save();
    }

    private function generatePassword(Player $player) {
        $password = $this->generateRandomPassword();
        $this->passwords[$player->getName()] = [
            'password' => $password,
            'attempts' => 0
        ];
        $this->savePasswords();
    }

    private function finishRegistration(Player $player) {
        unset($this->passwords[$player->getName()]);
        $this->savePasswords();
        $player->sendMessage(TextFormat::GREEN . "Вы успешно зарегистрировались!");
    }

    private function isRegistered(Player $player) {
        return !empty($this->passwords[$player->getName()]) && !isset($this->passwords[$player->getName()]['password']);
    }

    private function generateRandomPassword() {
        $characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $password = '';
        for ($i = 0; $i < 8; $i++) {
            $password .= $characters[random_int(0, strlen($characters) - 1)];
        }
        return $password;
    }
}
name: YourPluginName
version: 1.0.0
api: [3.0.0]
main: YourPluginNamespace\Main

Это просто пример, я не даю гарантии что плагин работает, используя этот пример можно сделать полноценный плагин

VK - Flein Nenuatšo | VK , напиши, помогу чем смогу

крутой плагин в 1 классе

так еще и плохо реализованный
после выключения сервера забаненые игроки останутся в бане :joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::roller_skate::roller_skate::roller_skate::8ball::8ball::8ball::8ball::8ball:

:sob: где же шифрование паролей опять

Как там хост?))