mirror of
https://github.com/GeyserExtensionists/GeyserUtils.git
synced 2025-12-19 23:19:17 +00:00
particle
This commit is contained in:
@@ -2,6 +2,7 @@ package me.zimzaza4.geyserutils.common.camera.data;
|
|||||||
|
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package me.zimzaza4.geyserutils.common.camera.instruction;
|
|||||||
import lombok.*;
|
import lombok.*;
|
||||||
import me.zimzaza4.geyserutils.common.camera.data.CameraPreset;
|
import me.zimzaza4.geyserutils.common.camera.data.CameraPreset;
|
||||||
import me.zimzaza4.geyserutils.common.camera.data.Ease;
|
import me.zimzaza4.geyserutils.common.camera.data.Ease;
|
||||||
import me.zimzaza4.geyserutils.common.camera.data.Pos;
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
import me.zimzaza4.geyserutils.common.camera.data.Rot;
|
import me.zimzaza4.geyserutils.common.camera.data.Rot;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package me.zimzaza4.geyserutils.common.packet;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import me.zimzaza4.geyserutils.common.animation.Animation;
|
||||||
|
import me.zimzaza4.geyserutils.common.packet.CustomPayloadPacket;
|
||||||
|
import me.zimzaza4.geyserutils.common.particle.CustomParticle;
|
||||||
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class CustomParticleEffectPayloadPacket extends CustomPayloadPacket {
|
||||||
|
private CustomParticle particle;
|
||||||
|
private Pos pos;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package me.zimzaza4.geyserutils.common.particle;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Accessors(fluent = true)
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class CustomParticle {
|
||||||
|
private Pos position;
|
||||||
|
private String identifier;
|
||||||
|
@Nullable
|
||||||
|
private String molangVariablesJson;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package me.zimzaza4.geyserutils.common.camera.data;
|
package me.zimzaza4.geyserutils.common.util;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -14,17 +14,15 @@ import me.zimzaza4.geyserutils.common.channel.GeyserUtilsChannels;
|
|||||||
import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
|
import me.zimzaza4.geyserutils.common.form.element.NpcDialogueButton;
|
||||||
import me.zimzaza4.geyserutils.common.manager.PacketManager;
|
import me.zimzaza4.geyserutils.common.manager.PacketManager;
|
||||||
import me.zimzaza4.geyserutils.common.packet.*;
|
import me.zimzaza4.geyserutils.common.packet.*;
|
||||||
|
import me.zimzaza4.geyserutils.common.packet.CustomParticleEffectPayloadPacket;
|
||||||
import me.zimzaza4.geyserutils.geyser.camera.CameraPresetDefinition;
|
import me.zimzaza4.geyserutils.geyser.camera.CameraPresetDefinition;
|
||||||
import me.zimzaza4.geyserutils.geyser.camera.Converter;
|
import me.zimzaza4.geyserutils.geyser.util.Converter;
|
||||||
import me.zimzaza4.geyserutils.geyser.form.NpcDialogueForm;
|
import me.zimzaza4.geyserutils.geyser.form.NpcDialogueForm;
|
||||||
import me.zimzaza4.geyserutils.geyser.form.NpcDialogueForms;
|
import me.zimzaza4.geyserutils.geyser.form.NpcDialogueForms;
|
||||||
import me.zimzaza4.geyserutils.geyser.form.element.Button;
|
import me.zimzaza4.geyserutils.geyser.form.element.Button;
|
||||||
import me.zimzaza4.geyserutils.geyser.translator.NPCFormResponseTranslator;
|
import me.zimzaza4.geyserutils.geyser.translator.NPCFormResponseTranslator;
|
||||||
import org.cloudburstmc.nbt.NbtMap;
|
import org.cloudburstmc.nbt.NbtMap;
|
||||||
import org.cloudburstmc.protocol.bedrock.packet.AnimateEntityPacket;
|
import org.cloudburstmc.protocol.bedrock.packet.*;
|
||||||
import org.cloudburstmc.protocol.bedrock.packet.CameraInstructionPacket;
|
|
||||||
import org.cloudburstmc.protocol.bedrock.packet.CameraPresetsPacket;
|
|
||||||
import org.cloudburstmc.protocol.bedrock.packet.NpcRequestPacket;
|
|
||||||
import org.cloudburstmc.protocol.common.DefinitionRegistry;
|
import org.cloudburstmc.protocol.common.DefinitionRegistry;
|
||||||
import org.cloudburstmc.protocol.common.NamedDefinition;
|
import org.cloudburstmc.protocol.common.NamedDefinition;
|
||||||
import org.geysermc.event.subscribe.Subscribe;
|
import org.geysermc.event.subscribe.Subscribe;
|
||||||
@@ -36,9 +34,11 @@ import org.geysermc.geyser.api.extension.Extension;
|
|||||||
import org.geysermc.geyser.entity.type.Entity;
|
import org.geysermc.geyser.entity.type.Entity;
|
||||||
import org.geysermc.geyser.registry.Registries;
|
import org.geysermc.geyser.registry.Registries;
|
||||||
import org.geysermc.geyser.session.GeyserSession;
|
import org.geysermc.geyser.session.GeyserSession;
|
||||||
|
import org.geysermc.geyser.util.DimensionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@@ -147,6 +147,13 @@ public class GeyserUtils implements Extension {
|
|||||||
bedrockPacket.setClear(true);
|
bedrockPacket.setClear(true);
|
||||||
}
|
}
|
||||||
session.sendUpstreamPacket(bedrockPacket);
|
session.sendUpstreamPacket(bedrockPacket);
|
||||||
|
} else if (customPacket instanceof CustomParticleEffectPayloadPacket customParticleEffectPacket) {
|
||||||
|
SpawnParticleEffectPacket spawnParticleEffectPacket = new SpawnParticleEffectPacket();
|
||||||
|
spawnParticleEffectPacket.setDimensionId(DimensionUtils.javaToBedrock(session.getDimension()));
|
||||||
|
spawnParticleEffectPacket.setPosition(Converter.serializePos(customParticleEffectPacket.getPos()));
|
||||||
|
spawnParticleEffectPacket.setIdentifier(customParticleEffectPacket.getParticle().identifier());
|
||||||
|
spawnParticleEffectPacket.setMolangVariablesJson(Optional.ofNullable(customParticleEffectPacket.getParticle().molangVariablesJson()));
|
||||||
|
session.sendUpstreamPacket(spawnParticleEffectPacket);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package me.zimzaza4.geyserutils.geyser.camera;
|
package me.zimzaza4.geyserutils.geyser.util;
|
||||||
|
|
||||||
import me.zimzaza4.geyserutils.common.camera.data.*;
|
import me.zimzaza4.geyserutils.common.camera.data.*;
|
||||||
import me.zimzaza4.geyserutils.common.camera.instruction.FadeInstruction;
|
import me.zimzaza4.geyserutils.common.camera.instruction.FadeInstruction;
|
||||||
import me.zimzaza4.geyserutils.common.camera.instruction.SetInstruction;
|
import me.zimzaza4.geyserutils.common.camera.instruction.SetInstruction;
|
||||||
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
|
import me.zimzaza4.geyserutils.geyser.camera.CameraPresetDefinition;
|
||||||
import org.cloudburstmc.math.vector.Vector2f;
|
import org.cloudburstmc.math.vector.Vector2f;
|
||||||
import org.cloudburstmc.math.vector.Vector3f;
|
import org.cloudburstmc.math.vector.Vector3f;
|
||||||
import org.cloudburstmc.protocol.bedrock.data.camera.CameraAudioListener;
|
import org.cloudburstmc.protocol.bedrock.data.camera.CameraAudioListener;
|
||||||
@@ -6,8 +6,11 @@ import me.zimzaza4.geyserutils.common.channel.GeyserUtilsChannels;
|
|||||||
import me.zimzaza4.geyserutils.common.packet.AnimateEntityCustomPayloadPacket;
|
import me.zimzaza4.geyserutils.common.packet.AnimateEntityCustomPayloadPacket;
|
||||||
import me.zimzaza4.geyserutils.common.packet.CameraInstructionCustomPayloadPacket;
|
import me.zimzaza4.geyserutils.common.packet.CameraInstructionCustomPayloadPacket;
|
||||||
import me.zimzaza4.geyserutils.common.packet.CameraShakeCustomPayloadPacket;
|
import me.zimzaza4.geyserutils.common.packet.CameraShakeCustomPayloadPacket;
|
||||||
import me.zimzaza4.geyserutils.common.util.CustomPayloadPacketUtils;
|
import me.zimzaza4.geyserutils.common.packet.CustomParticleEffectPayloadPacket;
|
||||||
|
import me.zimzaza4.geyserutils.common.particle.CustomParticle;
|
||||||
|
import me.zimzaza4.geyserutils.common.util.Pos;
|
||||||
import me.zimzaza4.geyserutils.spigot.GeyserUtils;
|
import me.zimzaza4.geyserutils.spigot.GeyserUtils;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@@ -44,4 +47,12 @@ public class PlayerUtils {
|
|||||||
player.sendPluginMessage(GeyserUtils.getInstance(), GeyserUtilsChannels.MAIN, GeyserUtils.getPacketManager().encodePacket(packet));
|
player.sendPluginMessage(GeyserUtils.getInstance(), GeyserUtilsChannels.MAIN, GeyserUtils.getPacketManager().encodePacket(packet));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendCustomParticle(Player player, Location location, CustomParticle particle) {
|
||||||
|
CustomParticleEffectPayloadPacket packet = new CustomParticleEffectPayloadPacket();
|
||||||
|
packet.setParticle(particle);
|
||||||
|
packet.setPos(new Pos((float) location.getX(), (float) location.getY(), (float) location.getZ()));
|
||||||
|
player.sendPluginMessage(GeyserUtils.getInstance(), GeyserUtilsChannels.MAIN, GeyserUtils.getPacketManager().encodePacket(packet));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user