VeTeR
1
Сливаю вам ну полную копию mashine с сервера HypeGo
И так
Название : machine
author: Кирилл (какой-то в душе не кчаю кто он)
api: 3.0.0
Компнда:
mashine:
description: Доступ к майнинг-ферме сервера
Нашел как то в файлах та еще дичь
Советую базу данных поменять для использования
machine.zip (18,4 КБ)
VeTeR
3
Я не знаю я сам плагин не смотрел нашел в файлах
Надеюсь 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 и его убогие форе🙂
Daddy
10
вот именно что ты в состоянии только убожество и написать
Привет многопоточный, == медленнее чем ===, как мне тебя называть, просто не знаю? Minimal Flash?
Daddy
12
Роман Слабоумнов высказался
И это все что ты можешь сказать? Истинный пиздабол интернета, ещё что то про слабоумия мне говорит, видимо тебя ничему жизнь не учит)
abcdef
14
го я начну реализацию твоих кейсов обсуждать?
Я тебе и не запрещал, выслушаю тебя за мою древнею работаю для пммп’истов. Надо его с github’a его удалить не забыть
Прям такая древняя, 10 месяцев прошло