[LiteCore\Govnosys] FindHeadsEvent (1.1.x)

крутой плагин из гриинвикса для хаба, писал сам Рауль Вахитов (Encritary)
суть плагина найти 10 голову человека с разных координатах

авторы: Encritary, Marusel, DinnerBone, Давид Морозов, MEFRREEX, eefsfesg(главный разработчик)

. . .

крутой плагин.zip (3,9 КБ)

:grin: :+1:

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

начнём с того, что

  1. гринвикс адаптирован под ядро AquaMine)
  2. Такой кринж не могли написать ну половина перечисленных людей
<?php

namespace Halloween\HeadHunt;

use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\math\Vector3;
use pocketmine\Player;
use pocketmine\level\particle\Particle;
use pocketmine\level\particle\GenericParticle;
use pocketmine\utils\Color;
use pocketmine\scheduler\Task;
use pocketmine\level\Level;
use pocketmine\utils\TextFormat;
use pocketmine\level\sound\MinecraftSound;
use pocketmine\utils\Config;
use sound\Sound;

class Main extends PluginBase implements Listener {

    private $heads = [];
    private $foundHeads = [];
    private $completedPlayers = [];

    public function onEnable(): void {
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->saveDefaultConfig();
        $this->loadCompletedPlayers();

        $this->heads = [
            new Vector3(56, 48, 156),
            new Vector3(47, 46, 158),
            new Vector3(66, 46, 167),
            new Vector3(60, 46, 128),
            new Vector3(35, 46, 130),
            new Vector3(32, 46, 154),
            new Vector3(37, 51, 177),
            new Vector3(53, 60, 177),
            new Vector3(78, 50, 184),
            new Vector3(84, 47, 145)
        ];
    }

    public function onDisable(): void {
        $this->saveCompletedPlayers();
    }

    public function onInteract(PlayerInteractEvent $event): void {
        $player = $event->getPlayer();
        $block = $event->getBlock();
    
        if (in_array($block->asVector3(), $this->heads)) {
            $headIndex = array_search($block->asVector3(), $this->heads);
            if (!isset($this->foundHeads[$player->getName()])) {
                $this->foundHeads[$player->getName()] = [];
            }
            if (in_array($headIndex, $this->foundHeads[$player->getName()])) {
                $player->sendMessage(TextFormat::RED . "§a» §fВы §cуже §fнашли эту голову §6или §fсобрали все головы и §aполучили свой приз!");
                $player->dataPacket(Sound::getSoundPacket($player->asVector3(), 'mob.cat.hiss'));
                return;
            }
    
            $this->foundHeads[$player->getName()][] = $headIndex;
    
            $this->spawnParticlesAroundHead($player, $block->asVector3());
    
            // Вызов звука
            $player->dataPacket(Sound::getSoundPacket($player->asVector3(), 'mob.cat.meow'));
    
            $totalHeads = count($this->heads);
            $foundHeads = count($this->foundHeads[$player->getName()]);
    
            if ($foundHeads === $totalHeads) {
                $player->sendTitle(TextFormat::GREEN . "Поздравляем!", "", 10, 70, 20);
                $player->sendMessage(TextFormat::GOLD . "§a» §fВы нашли все головы§f! §dВаш приз §fждет вас на сервере§a. . .");
    
                // Вызов звука
                $player->dataPacket(Sound::getSoundPacket($player->asVector3(), 'random.levelup'));
            } else {
                $player->sendMessage(TextFormat::AQUA . "§a» §6Отлично! §fВы нашли одну голову, осталось найти §a" . ($totalHeads - $foundHeads) . " §fголовы. §aУдачи!");
            }
        }
    }

    public function spawnParticlesAroundHead(Player $player, Vector3 $headPosition): void {
        $colors = [
            new Color(255, 0, 0), // Red
            new Color(255, 165, 0), // Orange
            new Color(255, 255, 0), // Yellow
            new Color(0, 255, 0), // Green
            new Color(0, 0, 255), // Blue
            new Color(128, 0, 128) // Purple
        ];

        $level = $player->getLevel();

        foreach ($colors as $color) {
            for ($i = 0; $i < 10; $i++) {
                $xOffset = mt_rand(-1, 1) / 2;
                $yOffset = mt_rand(1, 2);
                $zOffset = mt_rand(-1, 1) / 2;
                $particlePosition = $headPosition->add($xOffset, $yOffset, $zOffset);

                $level->addParticle(new GenericParticle(
                    $particlePosition,
                    Particle::TYPE_MOB_SPELL_INSTANTANEOUS,
                    ((255 & 0xff) << 24) | (($color->getRed() & 0xff) << 16) | (($color->getGreen() & 0xff) << 8) | ($color->getBlue() & 0xff)
                ));
            }
        }

        $this->getServer()->getScheduler()->scheduleDelayedTask(new class($level, $headPosition) extends Task {
            private $level;
            private $headPosition;

            public function __construct(Level $level, Vector3 $headPosition) {
                $this->level = $level;
                $this->headPosition = $headPosition;
            }

            public function onRun($currentTick): void {
                //:⁏‥⁚…⁘…⁇º¡⁝…º⸘‾⌁⸘⁔⁙⁞·…°⁘⁙⁌⁋⁑¶․ªª⁔⁐⁐°…¡¡⁝⁖⁽․⁝_⁖⁚⁚
            }
        }, 20 * 4);
    }

    public function saveCompletedPlayers(): void {
        $config = $this->getConfig();
        $config->set("completed_players", $this->completedPlayers);
        $config->save();
    }

    public function loadCompletedPlayers(): void {
        $config = $this->getConfig();
        $this->completedPlayers = $config->get("completed_players", []);
    }

    public function sendSound(Player $player, string $soundId): void {
        $level = $player->getLevel();
        $pos = $player->asVector3();

        $level->addSound(
            new MinecraftSound(
                $pos, $soundId
            ), [$player]
        );
    }
}

кстати, автор плагина это сам автор темы, это очевидно

Можно меня пж выписать из этого кринжа?

2 лайка

а что вам не нравится

Что там мой никнейм

а что плохого когда ваша никнейм стоит среди автор разработчиков

В том что я не писал подобную хуйню

этот код хуйня потому что внутри нет читабельность и отсутствие константа?

в том, что почти весь код писал ии, да и я не видел, что mefrreex помогал тебе

По всем признакам этот код ■■■■■

.

чтоэ эт это

ккрутой плагин

А я там таким боком?

Жиза

а что за

“\Govnosys”

это GenisysPro