-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
aee1593
commit c7691f9
Showing
27 changed files
with
962 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
plugins { | ||
id("java-library") | ||
id("io.papermc.paperweight.userdev") version "1.7.3" | ||
} | ||
|
||
val minecraftVersion = "1.21.4" | ||
|
||
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION | ||
|
||
dependencies { | ||
paperweight.paperDevBundle("$minecraftVersion-R0.1-SNAPSHOT") | ||
compileOnly(project(":api")) | ||
|
||
testImplementation(project(":api")) | ||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2") | ||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2") | ||
} | ||
|
||
tasks { | ||
test { | ||
useJUnitPlatform() | ||
} | ||
} |
48 changes: 48 additions & 0 deletions
48
...n/java/de/oliver/fancysitula/versions/v1_21_4/packets/ClientboundAddEntityPacketImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package de.oliver.fancysitula.versions.v1_21_4.packets; | ||
|
||
import de.oliver.fancysitula.api.entities.FS_RealPlayer; | ||
import de.oliver.fancysitula.api.packets.FS_ClientboundAddEntityPacket; | ||
import de.oliver.fancysitula.api.utils.AngelConverter; | ||
import de.oliver.fancysitula.versions.v1_21_4.utils.VanillaPlayerAdapter; | ||
import net.minecraft.core.registries.BuiltInRegistries; | ||
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraft.world.phys.Vec3; | ||
import org.bukkit.craftbukkit.util.CraftNamespacedKey; | ||
import org.bukkit.entity.EntityType; | ||
|
||
import java.util.UUID; | ||
|
||
public class ClientboundAddEntityPacketImpl extends FS_ClientboundAddEntityPacket { | ||
|
||
public ClientboundAddEntityPacketImpl(int entityId, UUID entityUUID, EntityType entityType, double x, double y, double z, float yaw, float pitch, float headYaw, int velocityX, int velocityY, int velocityZ, int data) { | ||
super(entityId, entityUUID, entityType, x, y, z, yaw, pitch, headYaw, velocityX, velocityY, velocityZ, data); | ||
} | ||
|
||
@Override | ||
public Object createPacket() { | ||
net.minecraft.world.entity.EntityType<?> vanillaType = BuiltInRegistries.ENTITY_TYPE.getValue(CraftNamespacedKey.toMinecraft(entityType.getKey())); | ||
|
||
return new ClientboundAddEntityPacket( | ||
entityId, | ||
entityUUID, | ||
x, | ||
y, | ||
z, | ||
AngelConverter.degreesToVanillaByte(pitch), | ||
AngelConverter.degreesToVanillaByte(yaw), | ||
vanillaType, | ||
data, | ||
new Vec3(velocityX, velocityY, velocityZ), | ||
AngelConverter.degreesToVanillaByte(headYaw) | ||
); | ||
} | ||
|
||
@Override | ||
public void sendPacketTo(FS_RealPlayer player) { | ||
ClientboundAddEntityPacket packet = (ClientboundAddEntityPacket) createPacket(); | ||
|
||
ServerPlayer vanillaPlayer = VanillaPlayerAdapter.asVanilla(player.getBukkitPlayer()); | ||
vanillaPlayer.connection.send(packet); | ||
} | ||
} |
128 changes: 128 additions & 0 deletions
128
.../oliver/fancysitula/versions/v1_21_4/packets/ClientboundCreateOrUpdateTeamPacketImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
package de.oliver.fancysitula.versions.v1_21_4.packets; | ||
|
||
import de.oliver.fancysitula.api.entities.FS_RealPlayer; | ||
import de.oliver.fancysitula.api.packets.FS_ClientboundCreateOrUpdateTeamPacket; | ||
import de.oliver.fancysitula.versions.v1_21_4.utils.VanillaPlayerAdapter; | ||
import io.papermc.paper.adventure.PaperAdventure; | ||
import net.minecraft.ChatFormatting; | ||
import net.minecraft.network.protocol.game.ClientboundSetPlayerTeamPacket; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraft.world.scores.PlayerTeam; | ||
import net.minecraft.world.scores.Scoreboard; | ||
import net.minecraft.world.scores.Team; | ||
|
||
public class ClientboundCreateOrUpdateTeamPacketImpl extends FS_ClientboundCreateOrUpdateTeamPacket { | ||
|
||
private static final Scoreboard SCOREBOARD = new Scoreboard(); | ||
|
||
public ClientboundCreateOrUpdateTeamPacketImpl(String teamName, CreateTeam createTeam) { | ||
super(teamName, createTeam); | ||
} | ||
|
||
public ClientboundCreateOrUpdateTeamPacketImpl(String teamName, RemoveTeam removeTeam) { | ||
super(teamName, removeTeam); | ||
} | ||
|
||
public ClientboundCreateOrUpdateTeamPacketImpl(String teamName, UpdateTeam updateTeam) { | ||
super(teamName, updateTeam); | ||
} | ||
|
||
public ClientboundCreateOrUpdateTeamPacketImpl(String teamName, AddEntity addEntity) { | ||
super(teamName, addEntity); | ||
} | ||
|
||
public ClientboundCreateOrUpdateTeamPacketImpl(String teamName, RemoveEntity removeEntity) { | ||
super(teamName, removeEntity); | ||
} | ||
|
||
@Override | ||
public Object createPacket() { | ||
return switch (method) { | ||
case CREATE_TEAM -> createCreateTeamPacket(); | ||
case REMOVE_TEAM -> createRemoveTeamPacket(); | ||
case UPDATE_TEAM -> createUpdateTeamPacket(); | ||
case ADD_ENTITY -> createAddEntityPacket(); | ||
case REMOVE_ENTITY -> createRemoveEntityPacket(); | ||
}; | ||
} | ||
|
||
private Object createCreateTeamPacket() { | ||
if (createTeam == null) { | ||
return null; | ||
} | ||
|
||
PlayerTeam playerTeam = new PlayerTeam(SCOREBOARD, teamName); | ||
playerTeam.setDisplayName(PaperAdventure.asVanilla(createTeam.getDisplayName())); | ||
playerTeam.setAllowFriendlyFire(createTeam.isAllowFriendlyFire()); | ||
playerTeam.setSeeFriendlyInvisibles(createTeam.isCanSeeFriendlyInvisibles()); | ||
playerTeam.setNameTagVisibility(Team.Visibility.byName(createTeam.getNameTagVisibility().getName())); | ||
playerTeam.setCollisionRule(PlayerTeam.CollisionRule.byName(createTeam.getCollisionRule().getName())); | ||
playerTeam.setColor(ChatFormatting.getById(createTeam.getColor().getId())); | ||
playerTeam.setPlayerPrefix(PaperAdventure.asVanilla(createTeam.getPrefix())); | ||
playerTeam.setPlayerSuffix(PaperAdventure.asVanilla(createTeam.getSuffix())); | ||
for (String entity : createTeam.getEntities()) { | ||
playerTeam.getPlayers().add(entity); | ||
} | ||
|
||
return ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerTeam, true); | ||
} | ||
|
||
private Object createRemoveTeamPacket() { | ||
if (removeTeam == null) { | ||
return null; | ||
} | ||
|
||
PlayerTeam playerTeam = new PlayerTeam(SCOREBOARD, teamName); | ||
return ClientboundSetPlayerTeamPacket.createRemovePacket(playerTeam); | ||
} | ||
|
||
private Object createUpdateTeamPacket() { | ||
if (updateTeam == null) { | ||
return null; | ||
} | ||
|
||
PlayerTeam playerTeam = new PlayerTeam(SCOREBOARD, teamName); | ||
playerTeam.setDisplayName(PaperAdventure.asVanilla(updateTeam.getDisplayName())); | ||
playerTeam.setAllowFriendlyFire(updateTeam.isAllowFriendlyFire()); | ||
playerTeam.setSeeFriendlyInvisibles(updateTeam.isCanSeeFriendlyInvisibles()); | ||
playerTeam.setNameTagVisibility(Team.Visibility.byName(updateTeam.getNameTagVisibility().getName())); | ||
playerTeam.setCollisionRule(PlayerTeam.CollisionRule.byName(updateTeam.getCollisionRule().getName())); | ||
playerTeam.setColor(ChatFormatting.getById(updateTeam.getColor().getId())); | ||
playerTeam.setPlayerPrefix(PaperAdventure.asVanilla(updateTeam.getPrefix())); | ||
playerTeam.setPlayerSuffix(PaperAdventure.asVanilla(updateTeam.getSuffix())); | ||
|
||
return ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerTeam, true); | ||
} | ||
|
||
private Object createAddEntityPacket() { | ||
if (addEntity == null) { | ||
return null; | ||
} | ||
|
||
PlayerTeam playerTeam = new PlayerTeam(SCOREBOARD, teamName); | ||
for (String entity : addEntity.getEntities()) { | ||
playerTeam.getPlayers().add(entity); | ||
} | ||
return ClientboundSetPlayerTeamPacket.createMultiplePlayerPacket(playerTeam, addEntity.getEntities(), ClientboundSetPlayerTeamPacket.Action.ADD); | ||
} | ||
|
||
private Object createRemoveEntityPacket() { | ||
if (removeEntity == null) { | ||
return null; | ||
} | ||
|
||
PlayerTeam playerTeam = new PlayerTeam(SCOREBOARD, teamName); | ||
for (String entity : removeEntity.getEntities()) { | ||
playerTeam.getPlayers().add(entity); | ||
} | ||
return ClientboundSetPlayerTeamPacket.createMultiplePlayerPacket(playerTeam, removeEntity.getEntities(), ClientboundSetPlayerTeamPacket.Action.REMOVE); | ||
} | ||
|
||
@Override | ||
protected void sendPacketTo(FS_RealPlayer player) { | ||
ClientboundSetPlayerTeamPacket packet = (ClientboundSetPlayerTeamPacket) createPacket(); | ||
|
||
ServerPlayer vanillaPlayer = VanillaPlayerAdapter.asVanilla(player.getBukkitPlayer()); | ||
vanillaPlayer.connection.send(packet); | ||
} | ||
} |
Oops, something went wrong.