Skip to content

Instantly share code, notes, and snippets.

View Steellgold's full-sized avatar
🍓

Gaëtan H Steellgold

🍓
View GitHub Profile
<?php
namespace App\Utils;
use Exception;
class UUID {
/**
* @throws Exception
*/
@Steellgold
Steellgold / ChancePercentage.php
Last active January 26, 2022 20:09
Chance Function PHP
<?php
namespace App\Utils;
class ChancePercentage {
public function chancePercentage(array $array = [
"myFirstValue" => [
"chance" => 3,
"name" => "Money x40000",
"content" => "This is mythic rarity! if you have luck you win this!!"
@Steellgold
Steellgold / Serializer.php
Created July 10, 2022 21:06
Serialize and unserialize contents inventory (PocketMine-MP 4)
<?php
namespace steellgold\utils;
use pocketmine\item\Item;
use pocketmine\nbt\BigEndianNbtSerializer;
use pocketmine\nbt\NBT;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\ListTag;
use pocketmine\nbt\TreeRoot;
@Steellgold
Steellgold / Unicode.php
Last active November 25, 2023 15:40
Recover a unicode to use it. (From my private project)
<?php
namespace your/namespace;
use JsonException;
use pocketmine\utils\Config;
// use your/plugin/Main
class Unicode {
@Steellgold
Steellgold / package.json
Created November 25, 2023 15:35
To avoid errors (e.g: Type error: Type 'ZodObject<{ where: ZodLazy<ZodType[...])
"scripts": {
"prisma:generate": "prisma generate && node prisma-zod-ts-nocheck.js"
}
@Steellgold
Steellgold / color.ts
Created November 26, 2023 15:37
Your text need to be dark or white?
const textIsWhite = (color: string): boolean => {
const hex = color.replace("#", "");
const c_r = parseInt(hex.slice(0, 2), 16);
const c_g = parseInt(hex.slice(2, 4), 16);
const c_b = parseInt(hex.slice(4, 6), 16);
const brightness = ((c_r * 299) + (c_g * 587) + (c_b * 114)) / 1000;
return brightness < 155;
};
@Steellgold
Steellgold / system
Last active December 17, 2023 18:09
LOSEAI Prompts
You're a coach who's going to give special sports programs to user requests
- You must respond in JSON format with a list of steps
- There must be no repetition in the steps
- There must be at least 3 steps, and you must give them a title, a description (describing the exercise) and a duration in seconds. For example, you can use the fields: `distance`, `duration`, `repetition`, `weight`, `height`, `speed`, `power` or `intensity` to describe the step.
> You can also use `warning` to give warnings to the user, for example if he needs to pay attention to his posture or breathing.
> You can also use `tips` to give advice to the user, for example about what to do or not to do.
- There must be a warm-up step and a stretching step as first and last steps.
@Steellgold
Steellgold / double-clickable.tsx
Created March 18, 2024 18:15
Double clickable component (react native)
import type { PropsWithChildren, ReactElement } from "react";
import { useState } from "react";
import { TouchableWithoutFeedback } from "react-native-gesture-handler";
type DoubleClickableViewProps = {
onDoubleClick: () => void;
delay?: number;
} & PropsWithChildren;
export const DoubleClickableView = ({ onDoubleClick, delay = 300, children }: DoubleClickableViewProps): ReactElement => {
const colors = {
reset: "\x1b[0m",
bold: "\x1b[1m",
thin: "\x1b[2m",
underscore: "\x1b[4m",
blink: "\x1b[5m",
reverse: "\x1b[7m",
hidden: "\x1b[8m",
fg: {
/* eslint-disable max-len */
"use client";
import { env } from "@/env.mjs";
import { cn } from "@/utils";
import { Building2, Folders, KeySquare, Settings2Icon, StickyNote } from "lucide-react";
import Image from "next/image";
import Link from "next/link";
import { usePathname } from "next/navigation";
import type { ReactElement } from "react";