помогите как сделать или найти рубли на етот плагин на донат шоп
DonShop.zip (6,0 КБ)
вот он
Какие рубли, этот плагин использует DonateEconomy - скорее всего аналог EconomyAPI. А не систему магазина принимаемого оплату с карты и т.п. сервисов.
Либо найди DonateEconomy (возможно она в сборке где ты взял этот плагин), либо просто перепиши на другую экономику, или напиши такую экономику сам (ничего сложного тут нет).
ага ппц как легко
Там вроде API ничем не отличается от Economy, можно просто заменить вызов. Так что переписывать и нечего
Лучше просто найди базовую экономику в 1 файл и замени DonateEconomy на нужную, чем мучаться с поиском и подключением.
или можно тупо изменить название той экономике который использует автор поста, например так:
name: DonateEconomy // <—
main: Economy\Main
api: 3.0.0
version: 1.1.5
Смысл менять название основной экономики на DonateEconomy
Не выйдет, надо ещё namespace менять чтобы всё корректно работало
P.S: Yaml не поддерживает //, ему надо #
Видимо тренд какой то у них
я как бы вариант показал
Сегодня DonateEconomy, а завтра что? Магазины будут именовать славянским секс шопом?
Это не будет работать так, тебе уже сказали выше почему
На хрена…
<?php
namespace DonateShop;
use pocketmine\plugin\PluginBase;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\Player;
use pocketmine\utils\TextFormat as TF;
class Main extends PluginBase {
private $donateEconomy;
public function onEnable(): void {
$this->getLogger()->info(TF::GREEN . "Донат-шоп успешно загружен!");
$this->donateEconomy = $this->getServer()->getPluginManager()->getPlugin("DonateEconomy");
if ($this->donateEconomy === null) {
$this->getLogger()->error(TF::RED . "Ошибка: DonateEconomy не найден!");
}
}
public function onCommand(CommandSender $sender, Command $cmd, string $label, array $args): bool {
if (!$sender instanceof Player) {
$sender->sendMessage("Эта команда доступна только в игре!");
return true;
}
if (strtolower($cmd->getName()) === "donateshop") {
$sender->sendMessage(TF::YELLOW . "----- Донат Магазин -----");
$sender->sendMessage(TF::GOLD . "/buyvip - Купить VIP за 100 донат-коинов");
$sender->sendMessage(TF::GOLD . "/buygold - Купить Золотой меч за 50 донат-коинов");
return true;
}
if (strtolower($cmd->getName()) === "buyvip") {
return $this->buyRank($sender, "VIP", 100);
}
if (strtolower($cmd->getName()) === "buygold") {
return $this->buyItem($sender, "Золотой меч", 50);
}
return false;
}
private function buyRank(Player $player, string $rank, int $price): bool {
$name = $player->getName();
$balance = $this->donateEconomy->getDonateMoney($name);
if ($balance >= $price) {
$this->donateEconomy->reduceDonateMoney($name, $price);
$player->sendMessage(TF::GREEN . "Поздравляем! Вы купили привилегию " . TF::AQUA . $rank);
// Здесь можешь добавить команду на выдачу ранга:
$this->getServer()->dispatchCommand($this->getServer()->getConsoleSender(), "setgroup $name $rank");
} else {
$player->sendMessage(TF::RED . "У вас недостаточно донат-коинов!");
}
return true;
}
private function buyItem(Player $player, string $itemName, int $price): bool {
$name = $player->getName();
$balance = $this->donateEconomy->getDonateMoney($name);
if ($balance >= $price) {
$this->donateEconomy->reduceDonateMoney($name, $price);
$player->sendMessage(TF::GREEN . "Поздравляем! Вы купили предмет " . TF::AQUA . $itemName);
// Здесь можешь выдать игроку предмет через команду или через код.
$this->getServer()->dispatchCommand($this->getServer()->getConsoleSender(), "give $name 283 1"); // 283 = золотой меч
} else {
$player->sendMessage(TF::RED . "У вас недостаточно донат-коинов!");
}
return true;
}
}
Дальше сам разберёшся
SexDonateEconomyProMaxSuperMod
Жесть, в самом плагине не учитывается метод для выдачи привилегий
TheSlavicToySexShop