updated PacketEvents andd addeddd zims stuff

This commit is contained in:
xSquishyLiam
2025-12-10 05:10:33 +00:00
parent be7b067889
commit a109d21b76
8 changed files with 29 additions and 9 deletions

2
.idea/workspace.xml generated
View File

@@ -11,7 +11,7 @@
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="DarkyenusTimeTracker"> <component name="DarkyenusTimeTracker">
<option name="totalTimeSeconds" value="21532" /> <option name="totalTimeSeconds" value="24424" />
</component> </component>
<component name="ExternalProjectsData"> <component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$"> <projectState path="$PROJECT_DIR$">

View File

@@ -29,7 +29,7 @@ dependencies {
compileOnly(files("libs/geyserutils-spigot-1.0-SNAPSHOT.jar")) compileOnly(files("libs/geyserutils-spigot-1.0-SNAPSHOT.jar"))
compileOnly("org.geysermc.floodgate:api:2.2.4-SNAPSHOT") compileOnly("org.geysermc.floodgate:api:2.2.4-SNAPSHOT")
implementation("com.github.retrooper:packetevents-spigot:2.10.1") implementation("com.github.retrooper:packetevents-spigot:2.11.0")
implementation("org.bstats:bstats-bukkit:3.0.2") implementation("org.bstats:bstats-bukkit:3.0.2")
implementation("org.reflections:reflections:0.10.2") implementation("org.reflections:reflections:0.10.2")

View File

@@ -10,6 +10,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.world.WorldInitEvent; import org.bukkit.event.world.WorldInitEvent;
import org.geysermc.floodgate.api.FloodgateApi; import org.geysermc.floodgate.api.FloodgateApi;
import re.imc.geysermodelengine.GeyserModelEngine; import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.util.BedrockUtils;
public class ModelListener implements Listener { public class ModelListener implements Listener {
@@ -36,14 +37,14 @@ public class ModelListener implements Listener {
@EventHandler @EventHandler
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (!FloodgateApi.getInstance().isFloodgatePlayer(player.getUniqueId())) return; if (!BedrockUtils.isBedrockPlayer(player)) return;
Bukkit.getGlobalRegionScheduler().runDelayed(plugin, scheduledTask -> plugin.getModelManager().getPlayerJoinedCache().add(player.getUniqueId()), 10); Bukkit.getGlobalRegionScheduler().runDelayed(plugin, scheduledTask -> plugin.getModelManager().getPlayerJoinedCache().add(player.getUniqueId()), 10);
} }
@EventHandler @EventHandler
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (!FloodgateApi.getInstance().isFloodgatePlayer(player.getUniqueId())) return; if (!BedrockUtils.isBedrockPlayer(player)) return;
plugin.getModelManager().getPlayerJoinedCache().remove(player.getUniqueId()); plugin.getModelManager().getPlayerJoinedCache().remove(player.getUniqueId());
} }
} }

View File

@@ -11,6 +11,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.geysermc.floodgate.api.FloodgateApi; import org.geysermc.floodgate.api.FloodgateApi;
import re.imc.geysermodelengine.GeyserModelEngine; import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.util.BedrockUtils;
public class MountPacketListener implements PacketListener { public class MountPacketListener implements PacketListener {
@@ -23,9 +24,9 @@ public class MountPacketListener implements PacketListener {
@Override @Override
public void onPacketReceive(PacketReceiveEvent event) { public void onPacketReceive(PacketReceiveEvent event) {
if (event.getPacketType() != PacketType.Play.Client.ENTITY_ACTION) return; if (event.getPacketType() != PacketType.Play.Client.ENTITY_ACTION) return;
if (!FloodgateApi.getInstance().isFloodgatePlayer(event.getUser().getUUID())) return;
Player player = event.getPlayer(); Player player = event.getPlayer();
if (!BedrockUtils.isBedrockPlayer(player)) return;
WrapperPlayClientEntityAction action = new WrapperPlayClientEntityAction(event); WrapperPlayClientEntityAction action = new WrapperPlayClientEntityAction(event);
Pair<ActiveModel, Mount> seat = plugin.getModelManager().getDriversCache().get(player.getUniqueId()); Pair<ActiveModel, Mount> seat = plugin.getModelManager().getDriversCache().get(player.getUniqueId());

View File

@@ -6,7 +6,6 @@ import me.zimzaza4.geyserutils.spigot.api.EntityUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.geysermc.floodgate.api.FloodgateApi;
import re.imc.geysermodelengine.GeyserModelEngine; import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.managers.model.entity.EntityData; import re.imc.geysermodelengine.managers.model.entity.EntityData;
import re.imc.geysermodelengine.managers.model.propertyhandler.BetterModelPropertyHandler; import re.imc.geysermodelengine.managers.model.propertyhandler.BetterModelPropertyHandler;
@@ -15,6 +14,7 @@ import re.imc.geysermodelengine.managers.model.propertyhandler.PropertyHandler;
import re.imc.geysermodelengine.managers.model.entity.ModelEngineEntityData; import re.imc.geysermodelengine.managers.model.entity.ModelEngineEntityData;
import re.imc.geysermodelengine.managers.model.taskshandler.TaskHandler; import re.imc.geysermodelengine.managers.model.taskshandler.TaskHandler;
import re.imc.geysermodelengine.packet.entity.PacketEntity; import re.imc.geysermodelengine.packet.entity.PacketEntity;
import re.imc.geysermodelengine.util.BedrockUtils;
import java.util.*; import java.util.*;
@@ -41,7 +41,7 @@ public class EntityTaskManager {
public void checkViewers(EntityData model, Set<Player> viewers) { public void checkViewers(EntityData model, Set<Player> viewers) {
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
if (!FloodgateApi.getInstance().isFloodgatePlayer(onlinePlayer.getUniqueId())) continue; if (!BedrockUtils.isBedrockPlayer(onlinePlayer)) return;
if (canSee(onlinePlayer, model.getEntity())) { if (canSee(onlinePlayer, model.getEntity())) {
if (!viewers.contains(onlinePlayer)) { if (!viewers.contains(onlinePlayer)) {

View File

@@ -47,7 +47,7 @@ public class PacketEntity {
} }
public boolean teleport(@NotNull Location location) { public boolean teleport(@NotNull Location location) {
boolean sent = this.location.getWorld() != location.getWorld() || this.location.distanceSquared(location) > 0.000001; boolean sent = this.location.getWorld() != location.getWorld() || this.location.distanceSquared(location) > 0.000001 || this.location.getYaw() != location.getYaw() || this.location.getPitch() != location.getPitch();
this.location = location.clone(); this.location = location.clone();
if (sent) sendLocationPacket(viewers); if (sent) sendLocationPacket(viewers);

View File

@@ -0,0 +1,18 @@
package re.imc.geysermodelengine.util;
import org.bukkit.entity.Player;
import org.geysermc.floodgate.api.FloodgateApi;
public class BedrockUtils {
private static FloodgateApi FLOODGATE_API;
public static boolean isBedrockPlayer(Player player) {
if (FLOODGATE_API != null) return FLOODGATE_API.isFloodgatePlayer(player.getUniqueId());
return player.getClientBrandName().contains("Geyser");
}
public static FloodgateApi getFloodgateApi() {
return FLOODGATE_API;
}
}

View File

@@ -17,7 +17,7 @@ dependencies:
packetevents: packetevents:
required: true required: true
floodgate: floodgate:
required: true required: false
ModelEngine: ModelEngine:
required: false required: false
BetterModel: BetterModel: