Skip to content

Instantly share code, notes, and snippets.

View Revxrsal's full-sized avatar

Ali Revxrsal

View GitHub Profile
@Revxrsal
Revxrsal / AsyncOfflinePlayer.java
Last active February 14, 2025 19:07
A utility for fetching OfflinePlayers asynchronously
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Blocking;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import revxrsal.commands.autocomplete.SuggestionProvider;
import revxrsal.commands.bukkit.exception.InvalidPlayerException;
/*
* WorldEdit, a Minecraft world manipulation toolkit
* Copyright (C) sk89q <http://www.sk89q.com>
* Copyright (C) WorldEdit team and contributors
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
package revxrsal.commands.parameters.builtins;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import revxrsal.commands.annotation.AnnotationList;
import revxrsal.commands.Lamp;
import revxrsal.commands.annotation.Delimiter;
import revxrsal.commands.annotation.Sized;
import revxrsal.commands.command.CommandActor;
import revxrsal.commands.node.ExecutionContext;
package revxrsal.commands.resolver;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import revxrsal.commands.annotation.AnnotationList;
import revxrsal.commands.Lamp;
import revxrsal.commands.command.CommandActor;
import revxrsal.commands.node.ExecutionContext;
import revxrsal.commands.node.MutableParameterNode;
import revxrsal.commands.parameters.PrioritySpec;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.Style;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import revxrsal.commands.CommandHandler;
import revxrsal.commands.CommandHandlerVisitor;
@Revxrsal
Revxrsal / InteractiveHelpMenu.java
Created March 30, 2024 21:30
A utility for creating interactive help menus using Lamp
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.Style;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import revxrsal.commands.command.CommandActor;
import revxrsal.commands.command.ExecutableCommand;
@Revxrsal
Revxrsal / HelpRenderer.java
Created March 28, 2024 21:00
HelpRenderer for Lamp
package powerhomes.command.process;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.command.CommandSender;
import powerhomes.PowerHomes;
import powerhomes.util.Preconditions;
import {JSX, splitProps} from "solid-js";
import {isServer, mergeProps, ssr} from "solid-js/web";
type SVGSVGElementTags = JSX.SVGElementTags["svg"];
export interface IconTree {
a: SVGSVGElementTags;
c: string;
}
@Revxrsal
Revxrsal / registry-codec-1.19.4.json
Created May 29, 2023 10:46
Registry codec for Minecraft 1.19.4
{
"minecraft:trim_pattern": {
"type": "minecraft:trim_pattern",
"value": []
},
"minecraft:trim_material": {
"type": "minecraft:trim_material",
"value": []
},
"minecraft:damage_type": {
import type {Accessor, Component, JSX} from "solid-js";
import {createMemo, onCleanup, onMount, splitProps} from "solid-js";
export type KbButtonProps = {
combo: "ctrl" | "shift" | "alt" | "no-repeat" | string;
} & JSX.HTMLAttributes<HTMLButtonElement>;
type KeyBind = ((event: KeyboardEvent) => boolean);
export const KbButton: Component<KbButtonProps> = (props) => {