[GenisysPro, LiteCore] Слив плагина с HypeGo :0

Сливаю вам ну полную копию mashine с сервера HypeGo

И так

Название : machine
author: Кирилл (какой-то в душе не кчаю кто он)
api: 3.0.0

Компнда:
mashine:
description: Доступ к майнинг-ферме сервера

Нашел как то в файлах та еще дичь

Советую базу данных поменять для использования

machine.zip (18,4 КБ)

Какая валюта?

Я не знаю я сам плагин не смотрел нашел в файлах

Надеюсь Tether или Bitcoin, и так же надеюсь что у владельцев с этим плагином хорошие сервера для майнинга

Открой код рассмотри

<?php

namespace mrdoge;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\plugin\PluginBase;
use pocketmine\scheduler\CallbackTask;
use SQLite3;

class machine extends PluginBase implements Listener
{

    public $data, $economy;

    private $machine = [];

    public function onEnable()
    {
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->data = new SQLite3($this->getDataFolder() . "machine.sqlite3");
        $this->data->exec("CREATE TABLE IF NOT EXISTS `machine`(`name` TEXT NOT NULL, `balance` INTEGER DEFAULT 0, `status` BOOLEAN DEFAULT false);");
        $this->economy = $this->getServer()->getPluginManager()->getPlugin("CT-Economy");
        $this->getScheduler()->scheduleRepeatingTask(new CallbackTask([$this, "task"]), 20 * 60 * 20);
    }

    public function task()
    {
        foreach ($this->getServer()->getOnlinePlayers() as $pls) {
            if ($pls->hasPermission("cmd.machine")) {
                if (isset($this->machine[strtolower($pls->getName())])) {
                    if ($this->machine[strtolower($pls->getName())]["status"] == true) {
                        $money = round($this->machine[strtolower($pls->getName())]["balance"] / 100);
                        $this->economy->addMoney($pls->getName(), $money);
                        $pls->sendMessage("§7(§eМайнинг§7) §fВам был начислен §e1% (" . $money . "$) §fот общего вклада");
                    }
                }
            }
        }
    }

    public function onJoin(PlayerJoinEvent $e)
    {
        $p = $e->getPlayer();

        if (!$p->isOnline())
            return false;

        if ($p->hasPermission("cmd.machine")) {
            $data = $this->getMachineData($p->getName());
            $this->machine[strtolower($p->getName())] = $data;
        }
    }

    public function getMachineData(string $target)
    {

        if (isset($this->machine[strtolower($target)]))
            return $this->machine[strtolower($target)];

        $prepare = $this->data->prepare("SELECT * FROM `machine` WHERE `name` = :name;");
        $prepare->bindValue(":name", strtolower($target), SQLITE3_TEXT);
        $execute = $prepare->execute();
        $result = $execute->fetchArray(SQLITE3_ASSOC);

        if ($result !== false)
            return $this->machine[strtolower($target)] = ["status" => $result["status"], "balance" => $result["balance"]];

        $prepare = $this->data->prepare("INSERT INTO `machine`(`name`, `balance`, `status`) VALUES (:name, :balance, :status);");
        $prepare->bindValue(":name", strtolower($target), SQLITE3_TEXT);
        $prepare->bindValue(":balance", 0, SQLITE3_INTEGER);
        $prepare->bindValue(":status", false);
        $prepare->execute();

        return $this->machine[strtolower($target)] = ["status" => false, "balance" => 0];
    }

    public function onQuit(PlayerQuitEvent $e)
    {
        $p = $e->getPlayer();
        if (isset($this->machine[strtolower($p->getName())]))
            unset($this->machine[strtolower($p->getName())]);
    }

    public function onCommand(CommandSender $p, Command $cmd, $label, array $args)
    {
        if (strtolower($cmd->getName() == "mashine")) {
            if ($p->hasPermission("cmd.machine")) {
                if (isset($args[0])) {
                    switch ($args[0]) {
                        case "on":
                            $data = $this->getMachineData($p->getName());
                            if ($data["status"] !== true) {
                                if ($data["balance"] >= 100) {
                                    $this->setMachineStatus($p->getName(), true);
                                    $p->sendMessage("§7(§eМайнинг§7) §fМайнинг ферма успешно активирована");
                                } else {
                                    $p->sendMessage("§7(§eМайнинг§7) §fДля начала вы должны вложить в майнинг ферму не менее 100$");
                                }
                            } else {
                                $p->sendMessage("§7(§eМайнинг§7) §fМайнинг ферма уже активна");
                            }
                            break;
                        case "off":
                            $data = $this->getMachineData($p->getName());
                            if ($data["status"] !== false) {
                                $this->setMachineStatus($p->getName(), false);
                                $p->sendMessage("§7(§eМайнинг§7) §fМайнинг ферма успешно отключена");
                            } else {
                                $p->sendMessage("§7(§eМайнинг§7) §fМайнинг ферма и так неактивна");
                            }
                            break;
                        case "balance":
                            $data = $this->getMachineData($p->getName());
                            if ($data["balance"] >= 100) {
                                $p->sendMessage("§7(§eМайнинг§7) §fОбщая сумма вашего вклада составляет: §e" . $data["balance"] . "$");
                                $p->sendMessage("§7(§eМайнинг§7) §fПроцент от вашего вклада состовляет: §e" . round($data["balance"] / 100) . "$");
                            } else {
                                $p->sendMessage("§7(§eМайнинг§7) §fВы пока не вносили вклад в майнинг ферму");
                            }
                            break;
                        case "invest":
                            if (isset($args[1])) {
                                if (is_numeric($args[1])) {
                                    if ($args[1] >= 100) {
                                        if ($this->economy->myMoney($p->getName()) >= $args[1]) {
                                            $this->economy->reduceMoney($p->getName(), $args[1]);
                                            $data = $this->getMachineData($p->getName());
                                            $this->setMachineBalance($p->getName(), $data["balance"] + $args[1]);
                                            $p->sendMessage("§7(§eМайнинг§7) §fВы успешно вложили в майнинг ферму §e" . $args[1] . "$");
                                        } else {
                                            $p->sendMessage("§7(§eМайнинг§7) §fНедостаточно средств");
                                        }
                                    } else {
                                        $p->sendMessage("§7(§eМайнинг§7) §fВклад должен быть не менее 100$");
                                    }
                                } else {
                                    $p->sendMessage("§7(§eМайнинг§7) §fИспользование: /mashine invest <money>");
                                }
                            } else {
                                $p->sendMessage("§7(§eМайнинг§7) §fИспользование: /mashine invest <money>");
                            }
                            break;
                        default:
                            $p->sendMessage("§7(§eМайнинг§7) §fИспользование: \n §e• §f/mashine <on|off> - включить | отключить майнинг ферму \n §e• §f/mashine balance - узнать общую сумму вклада \n §e• §f/mashine invest <money> - вложить деньги в майнинг ферму");
                            break;
                    }
                } else {
                    $p->sendMessage("§7(§eМайнинг§7) §fИспользование: \n §e• §f/mashine <on|off> - включить | отключить майнинг ферму \n §e• §f/mashine balance - узнать общую сумму вклада \n §e• §f/mashine invest <money> - вложить деньги в майнинг ферму");
                }
            } else {
                $p->sendMessage("§7(§eМайнинг§7) §fУ вас недостаточно прав");
            }
        }
    }

    public function setMachineStatus(string $target, bool $value)
    {

        $prepare = $this->data->prepare("UPDATE `machine` SET `status` = :value WHERE `name` = :name;");
        $prepare->bindValue(":name", strtolower($target), SQLITE3_TEXT);
        $prepare->bindValue(":value", $value);
        $prepare->execute();

        $this->machine[strtolower($target)]["status"] = $value;
    }

    public function setMachineBalance(string $target, int $count)
    {

        $prepare = $this->data->prepare("UPDATE `machine` SET `balance` = :count WHERE `name` = :name;");
        $prepare->bindValue(":name", strtolower($target), SQLITE3_TEXT);
        $prepare->bindValue(":count", $count, SQLITE3_INTEGER);
        $prepare->execute();

        $this->machine[strtolower($target)]["balance"] = $count;
    }

}

Господи, реализация просто ужасная…

почему?

Иди свой 1.20 и там пизди

Я и сам в состоянии написать это убожество только адекватно, да я и не использую больше pmmp и его убогие форе🙂

вот именно что ты в состоянии только убожество и написать

Привет многопоточный, == медленнее чем ===, как мне тебя называть, просто не знаю? Minimal Flash?

Роман Слабоумнов высказался

И это все что ты можешь сказать? Истинный пиздабол интернета, ещё что то про слабоумия мне говорит, видимо тебя ничему жизнь не учит)

го я начну реализацию твоих кейсов обсуждать?

Я тебе и не запрещал, выслушаю тебя за мою древнею работаю для пммп’истов. Надо его с github’a его удалить не забыть

Прям такая древняя, 10 месяцев прошло

хаахахаххаха