Skip to content

Instantly share code, notes, and snippets.

@emortaldev
emortaldev / LegacyKnockbackUtil.java
Created April 17, 2024 21:27
Knockback util for 1.8 pvp on Minestom
public final class LegacyKnockbackUtil {
private static final int TPS = ServerFlag.SERVER_TICKS_PER_SECOND;
private static final double HORIZONTAL_KNOCKBACK = 0.4 * TPS;
private static final double VERTICAL_KNOCKBACK = HORIZONTAL_KNOCKBACK;
private static final double EXTRA_HORIZONTAL_KNOCKBACK = 0.5 * TPS;
private static final double EXTRA_VERTICAL_KNOCKBACK = 0.1 * TPS;
private static final double LIMIT_VERTICAL_KNOCKBACK = 0.5 * TPS;
public static void takeKnockback(@NotNull Entity target, @NotNull Vec direction, double strength) {
Vec newVelocity = target.getVelocity()
@emortaldev
emortaldev / ArgumentSound.java
Created April 17, 2024 21:25
ArgumentSound
public class ArgumentSound extends ArgumentRegistry<Key> {
public ArgumentSound(String id) {
super(id);
suggestionType = SuggestionType.AVAILABLE_SOUNDS;
}
@Override
public String parser() {
return "minecraft:resource_location";
}
@emortaldev
emortaldev / ArgumentPotion.java
Created April 17, 2024 21:25
ArgumentPotion
public class ArgumentPotion extends ArgumentRegistry<PotionEffect> {
private static final String[] VALUES = PotionEffect.values().stream().map(potion -> potion.namespace().toString()).toArray(String[]::new);
public ArgumentPotion(String id) {
super(id);
setSuggestionCallback((sender, ctx, suggestion) -> {
for (String value : VALUES) {
System.out.println(suggestion.getInput());
if (!value.startsWith(suggestion.getInput()) && !value.startsWith("minecraft:" + suggestion.getInput())) continue;
suggestion.addEntry(new SuggestionEntry(value));