Skip to content

Instantly share code, notes, and snippets.

View Muqsit's full-sized avatar
👑
A beacon of hope.

Muqsit Muqsit

👑
A beacon of hope.
View GitHub Profile
This file has been truncated, but you can view the full file.
UEsDBAoAAAAAAOl7nlgAAAAAAAAAAAAAAAAFABwAZGF0YS9VVAkAA3bIMGbfyDBmdXgLAAEEAAAAAAQAAAAAUEsDBBQAAAAIABZ6nlg7m8oxPwMAAJEDAAAKABwAZGF0YS8wLnBuZ1VUCQADC8UwZpLIMGZ1eAsAAQQAAAAABAAAAADrDPBz5+WS4mJgYOD19HAJAtIKIMzBBCT/SLxdzMDAHOHp4hjiwbv1oH2GaLkMw4fzon+Yp3m4VlxQ1byq2MgT5iIisn3KNIHbixY4OTrKiAju2f7HR3wiT53z7jue66On+vmpWnhsX7RokcDj+S87w5pXOB9Rj2RKyt/50KGgar6/mCCbZjdH8xTXFsdTSocUUgUTJ2zqMPCIdMl4nfdvwbcH9kdmCc4PElWtOl7nsOZXULSY4K1ds+1X2P7g35h2ZHmIa+e9jfICq/ddmebasm2VxsXqXyyz3fYd2ih8vNYndMqPj7//WtS/lz9yr/nWpo4LYUBj/OcnXD4RblH2aEf/yi4h+7r98s/f/22+UR0AMnnVIpf3L3W3OrsLRpf9nAE0bneNo+58Nx+5CzDjq7zfXgg8Mi3WbpmW1xe9+IDTywUns29JFVy4VsvrzY193NP3/WWbezl94vIlgaKq++Tkjl0tXn5hplWTjWou0Euru4Sst70/tDR/v+PzL5FPNDOB7l/f3l749Y5mybI+BX9PiCOOvLhh8eyfxeKyHypJSfPdQqe8iN23YFshx9y1k08EX4I4xdDKrG+n/bkVsnadM24sB1pWNV1/Ra6MU/prlU9ToA7q6evNPlO7reXG5vDFQOeu+9N58p1O3v09bXDXLE5+LFU8X1fx25urK7qE9mrXJ22y7r5tvl4R7BSp0MBF5v/N1fj9klN39v/8zQ20/cW9v+LC+r8i9uZxaJ+uPXM/3mHeJDeSlK4AWzvjt2549feot0+VrOznuwIlvj+Uzdn9m0N6342Gq6/bNmy6c/zq1/eCu5dPcGWBhkjd6av39oZV7+w4dx4U
<?php
declare(strict_types=1);
use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Facing;
use pocketmine\math\Vector3;
use pocketmine\math\VoxelRayTrace;
use pocketmine\player\Player;
use pocketmine\scheduler\CancelTaskException;
@Muqsit
Muqsit / build-pathfinding-mesh.php
Created April 23, 2024 00:53
Pathfinding Block Position Mesh for Arbitrary-Sized Mobs
<?php
declare(strict_types=1);
use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Facing;
use pocketmine\math\Vector3;
use pocketmine\player\Player;
use pocketmine\scheduler\CancelTaskException;
use pocketmine\scheduler\ClosureTask;
<?php
declare(strict_types=1);
/**
* @name KitEditorPlugin
* @main muqsit\kiteditorplugin\KitEditorPlugin
* @api 5.0.0
* @version 0.0.1
*/
@Muqsit
Muqsit / GeneratorMethodNotYieldingRule.php
Last active April 5, 2024 00:55
PHPStan rule to find unused instantiated generators
<?php
declare(strict_types=1);
namespace pocketmine\phpstan\rules;
use Generator;
use PhpParser\Node\Arg;
use PhpParser\Node\Expr\ArrayItem;
use PhpParser\Node\Expr\Assign;
@Muqsit
Muqsit / nbt-json.php
Last active November 11, 2023 11:53
NBT CompoundTag to JSON in PocketMine-MP using a stack for iterative node traversal
<?php
declare(strict_types=1);
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\player\Player;
use pocketmine\Server;
$server = Server::getInstance();
assert(isset($sender) && $sender instanceof Player);
@Muqsit
Muqsit / test.php
Created September 9, 2023 07:58
Terraforming regions in PocketMine-MP worlds using Scripter plugin
<?php
declare(strict_types=1);
use cosmicpe\CosmicPE;
use pocketmine\block\Block;
use pocketmine\block\BlockTypeIds;
use pocketmine\block\Liquid;
use pocketmine\block\VanillaBlocks;
use pocketmine\event\EventPriority;
@Muqsit
Muqsit / AdjacencyMatrix.php
Last active April 25, 2023 15:05
A memory-efficient adjacency matrix that can store values in the range 0-15 (4 bits) per cell. Takes roughly 8 * v bytes of memory space (where v = number of vertices). Suitable for Minecraft redstone wires which have a strength of up to 15.
<?php
final class AdjacencyMatrix{
public static function read(string $data) : self{
return new self(array_values(unpack("J*", $data)));
}
public static function of(int $size) : self{
return new self(array_fill(0, ($size >> 4) | $size, 0));
@Muqsit
Muqsit / neural_network.py
Created March 2, 2023 19:17
Simple Neural Network (Python)
import numpy as np
from numpy import exp, array, random, dot
class NeuralNetwork():
def __init__(self):
self.synaptic_weights = 2 * random.random((3, 1)) - 1
def __sigmoid(self, x):
return 1 / (1 + exp(-x))
@Muqsit
Muqsit / simple_neural_network.php
Last active February 27, 2023 09:37
Simple Neural Network implementation in pure PHP (translated from Python). This is a translation of my university classwork on Neural Networks. This can be live-tested on https://3v4l.org (using PHP 8.1.16).
<?php
declare(strict_types=1);
final class Matrix{
/**
* Equivalent of numpy.random.random(size=(size_x, size_y))
*
* @param int $size_x