mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-19 14:59:19 +00:00
updated PacketEvents andd addeddd zims stuff
This commit is contained in:
2
.idea/workspace.xml
generated
2
.idea/workspace.xml
generated
@@ -11,7 +11,7 @@
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="DarkyenusTimeTracker">
|
||||
<option name="totalTimeSeconds" value="21532" />
|
||||
<option name="totalTimeSeconds" value="24424" />
|
||||
</component>
|
||||
<component name="ExternalProjectsData">
|
||||
<projectState path="$PROJECT_DIR$">
|
||||
|
||||
@@ -29,7 +29,7 @@ dependencies {
|
||||
compileOnly(files("libs/geyserutils-spigot-1.0-SNAPSHOT.jar"))
|
||||
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.reflections:reflections:0.10.2")
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.world.WorldInitEvent;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import re.imc.geysermodelengine.GeyserModelEngine;
|
||||
import re.imc.geysermodelengine.util.BedrockUtils;
|
||||
|
||||
public class ModelListener implements Listener {
|
||||
|
||||
@@ -36,14 +37,14 @@ public class ModelListener implements Listener {
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
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);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
if (!FloodgateApi.getInstance().isFloodgatePlayer(player.getUniqueId())) return;
|
||||
if (!BedrockUtils.isBedrockPlayer(player)) return;
|
||||
plugin.getModelManager().getPlayerJoinedCache().remove(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import re.imc.geysermodelengine.GeyserModelEngine;
|
||||
import re.imc.geysermodelengine.util.BedrockUtils;
|
||||
|
||||
public class MountPacketListener implements PacketListener {
|
||||
|
||||
@@ -23,9 +24,9 @@ public class MountPacketListener implements PacketListener {
|
||||
@Override
|
||||
public void onPacketReceive(PacketReceiveEvent event) {
|
||||
if (event.getPacketType() != PacketType.Play.Client.ENTITY_ACTION) return;
|
||||
if (!FloodgateApi.getInstance().isFloodgatePlayer(event.getUser().getUUID())) return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
if (!BedrockUtils.isBedrockPlayer(player)) return;
|
||||
|
||||
WrapperPlayClientEntityAction action = new WrapperPlayClientEntityAction(event);
|
||||
Pair<ActiveModel, Mount> seat = plugin.getModelManager().getDriversCache().get(player.getUniqueId());
|
||||
|
||||
@@ -6,7 +6,6 @@ import me.zimzaza4.geyserutils.spigot.api.EntityUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import re.imc.geysermodelengine.GeyserModelEngine;
|
||||
import re.imc.geysermodelengine.managers.model.entity.EntityData;
|
||||
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.taskshandler.TaskHandler;
|
||||
import re.imc.geysermodelengine.packet.entity.PacketEntity;
|
||||
import re.imc.geysermodelengine.util.BedrockUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -41,7 +41,7 @@ public class EntityTaskManager {
|
||||
|
||||
public void checkViewers(EntityData model, Set<Player> viewers) {
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
if (!FloodgateApi.getInstance().isFloodgatePlayer(onlinePlayer.getUniqueId())) continue;
|
||||
if (!BedrockUtils.isBedrockPlayer(onlinePlayer)) return;
|
||||
|
||||
if (canSee(onlinePlayer, model.getEntity())) {
|
||||
if (!viewers.contains(onlinePlayer)) {
|
||||
|
||||
@@ -47,7 +47,7 @@ public class PacketEntity {
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
if (sent) sendLocationPacket(viewers);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ dependencies:
|
||||
packetevents:
|
||||
required: true
|
||||
floodgate:
|
||||
required: true
|
||||
required: false
|
||||
ModelEngine:
|
||||
required: false
|
||||
BetterModel:
|
||||
|
||||
Reference in New Issue
Block a user