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" />
|
<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$">
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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:
|
packetevents:
|
||||||
required: true
|
required: true
|
||||||
floodgate:
|
floodgate:
|
||||||
required: true
|
required: false
|
||||||
ModelEngine:
|
ModelEngine:
|
||||||
required: false
|
required: false
|
||||||
BetterModel:
|
BetterModel:
|
||||||
|
|||||||
Reference in New Issue
Block a user