Skip to content

Commit

Permalink
replace packet creator map with a specific method
Browse files Browse the repository at this point in the history
  • Loading branch information
sathonay committed Dec 19, 2024
1 parent 249a894 commit f83cec4
Show file tree
Hide file tree
Showing 21 changed files with 326 additions and 66 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sathonay.npaper.utils;

import net.minecraft.server.Packet;

public interface EntitySpecificSpawnPacket {
Packet createSpecificSpawnPacket();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
import java.util.List;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.entity.EntityCombustByEntityEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
// CraftBukkit end

public class EntityArrow extends Entity implements IProjectile {
public class EntityArrow extends Entity implements IProjectile, EntitySpecificSpawnPacket {

private int d = -1;
private int e = -1;
Expand Down Expand Up @@ -480,5 +481,11 @@ public boolean isCritical() {
public boolean isInGround() {
return inGround;
}

@Override
public Packet createSpecificSpawnPacket() {
final Entity shooter = this.shooter;
return new PacketPlayOutSpawnEntity(this, 60, shooter != null ? shooter.getId() : this.getId());
}
// CraftBukkit end
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.List;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.Location;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.entity.Vehicle;
Expand All @@ -12,7 +13,7 @@
import org.bukkit.event.vehicle.VehicleMoveEvent;
// CraftBukkit end

public class EntityBoat extends Entity {
public class EntityBoat extends Entity implements EntitySpecificSpawnPacket {

private boolean a;
private double b;
Expand Down Expand Up @@ -501,4 +502,9 @@ public void breakNaturally() {
this.a(Items.STICK, 2, 0.0F);
}
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 1);
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package net.minecraft.server;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerEggThrowEvent;
// CraftBukkit end

public class EntityEgg extends EntityProjectile {
public class EntityEgg extends EntityProjectile implements EntitySpecificSpawnPacket {

public EntityEgg(World world) {
super(world);
Expand Down Expand Up @@ -65,4 +66,9 @@ protected void a(MovingObjectPosition movingobjectposition) {
this.die();
}
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 62);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package net.minecraft.server;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.ExplosionPrimeEvent;
// CraftBukkit end

public class EntityEnderCrystal extends Entity {
public class EntityEnderCrystal extends Entity implements EntitySpecificSpawnPacket {

public int a;
public int b;
Expand Down Expand Up @@ -85,4 +86,9 @@ public boolean damageEntity(DamageSource damagesource, float f) {
return true;
}
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 51);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.minecraft.server;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.entity.CraftPlayer;
Expand All @@ -9,7 +10,7 @@
import org.github.paperspigot.PaperSpigotConfig;
// CraftBukkit end

public class EntityEnderPearl extends EntityProjectile {
public class EntityEnderPearl extends EntityProjectile implements EntitySpecificSpawnPacket {

private Location lastValidLocation; // nPaper - antipearl glitch

Expand Down Expand Up @@ -87,4 +88,9 @@ protected void a(MovingObjectPosition movingobjectposition) {
this.die();
}
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 65);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
package net.minecraft.server;

import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;

public class EntityEnderSignal extends Entity implements EntitySpecificSpawnPacket {
private double a;
private double b;
private double c;
private int d;
private boolean e;

public EntityEnderSignal(World var1) {
super(var1);
this.a(0.25F, 0.25F);
}

protected void c() {
}

public EntityEnderSignal(World var1, double var2, double var4, double var6) {
super(var1);
this.d = 0;
this.a(0.25F, 0.25F);
this.setPosition(var2, var4, var6);
this.height = 0.0F;
}

public void a(double var1, int var3, double var4) {
double var6 = var1 - this.locX;
double var8 = var4 - this.locZ;
float var10 = MathHelper.sqrt(var6 * var6 + var8 * var8);
if (var10 > 12.0F) {
this.a = this.locX + var6 / (double)var10 * 12.0;
this.c = this.locZ + var8 / (double)var10 * 12.0;
this.b = this.locY + 8.0;
} else {
this.a = var1;
this.b = (double)var3;
this.c = var4;
}

this.d = 0;
this.e = this.random.nextInt(5) > 0;
}

public void h() {
this.S = this.locX;
this.T = this.locY;
this.U = this.locZ;
super.h();
this.locX += this.motX;
this.locY += this.motY;
this.locZ += this.motZ;
float var1 = MathHelper.sqrt(this.motX * this.motX + this.motZ * this.motZ);
this.yaw = (float)(Math.atan2(this.motX, this.motZ) * 180.0 / 3.1415927410125732);

for(this.pitch = (float)(Math.atan2(this.motY, (double)var1) * 180.0 / 3.1415927410125732); this.pitch - this.lastPitch < -180.0F; this.lastPitch -= 360.0F) {
}

while(this.pitch - this.lastPitch >= 180.0F) {
this.lastPitch += 360.0F;
}

while(this.yaw - this.lastYaw < -180.0F) {
this.lastYaw -= 360.0F;
}

while(this.yaw - this.lastYaw >= 180.0F) {
this.lastYaw += 360.0F;
}

this.pitch = this.lastPitch + (this.pitch - this.lastPitch) * 0.2F;
this.yaw = this.lastYaw + (this.yaw - this.lastYaw) * 0.2F;
if (!this.world.isStatic) {
double var2 = this.a - this.locX;
double var4 = this.c - this.locZ;
float var6 = (float)Math.sqrt(var2 * var2 + var4 * var4);
float var7 = (float)Math.atan2(var4, var2);
double var8 = (double)var1 + (double)(var6 - var1) * 0.0025;
if (var6 < 1.0F) {
var8 *= 0.8;
this.motY *= 0.8;
}

this.motX = Math.cos((double)var7) * var8;
this.motZ = Math.sin((double)var7) * var8;
if (this.locY < this.b) {
this.motY += (1.0 - this.motY) * 0.014999999664723873;
} else {
this.motY += (-1.0 - this.motY) * 0.014999999664723873;
}
}

float var10 = 0.25F;
if (this.M()) {
for(int var11 = 0; var11 < 4; ++var11) {
this.world.addParticle("bubble", this.locX - this.motX * (double)var10, this.locY - this.motY * (double)var10, this.locZ - this.motZ * (double)var10, this.motX, this.motY, this.motZ);
}
} else {
this.world.addParticle("portal", this.locX - this.motX * (double)var10 + this.random.nextDouble() * 0.6 - 0.3, this.locY - this.motY * (double)var10 - 0.5, this.locZ - this.motZ * (double)var10 + this.random.nextDouble() * 0.6 - 0.3, this.motX, this.motY, this.motZ);
}

if (!this.world.isStatic) {
this.setPosition(this.locX, this.locY, this.locZ);
++this.d;
if (this.d > 80 && !this.world.isStatic) {
this.die();
if (this.e) {
this.world.addEntity(new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Items.EYE_OF_ENDER)));
} else {
this.world.triggerEffect(2003, (int)Math.round(this.locX), (int)Math.round(this.locY), (int)Math.round(this.locZ), 0);
}
}
}

}

public void b(NBTTagCompound var1) {
}

public void a(NBTTagCompound var1) {
}

public float d(float var1) {
return 1.0F;
}

public boolean av() {
return false;
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(entity, 72);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package net.minecraft.server;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.EntityTargetEvent;
// CraftBukkit end

public class EntityExperienceOrb extends Entity {
public class EntityExperienceOrb extends Entity implements EntitySpecificSpawnPacket {

public int a;
public int b;
Expand Down Expand Up @@ -203,4 +204,9 @@ public static int getOrbValue(int i) {
public boolean av() {
return false;
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntityExperienceOrb(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
import java.util.ArrayList;
import java.util.Iterator;

import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit

public class EntityFallingBlock extends Entity {
public class EntityFallingBlock extends Entity implements EntitySpecificSpawnPacket {

public Block id; // CraftBukkit - private -> public
public int data;
Expand Down Expand Up @@ -276,4 +277,9 @@ public void a(CrashReportSystemDetails crashreportsystemdetails) {
public Block f() {
return this.id;
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 70, Block.getId(this.f()) | this.data << 16);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package net.minecraft.server;

public class EntityFireworks extends Entity {
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;

public class EntityFireworks extends Entity implements EntitySpecificSpawnPacket {

private int ticksFlown;
public int expectedLifespan; // CraftBukkit - private -> public
Expand Down Expand Up @@ -127,4 +129,9 @@ public float d(float f) {
public boolean au() {
return false;
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 76);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@
import java.util.List;

// CraftBukkit start
import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.bukkit.entity.Player;
import org.bukkit.entity.Fish;
import org.bukkit.event.player.PlayerFishEvent;
import org.github.paperspigot.PaperSpigotConfig;
// CraftBukkit end

public class EntityFishingHook extends Entity {
public class EntityFishingHook extends Entity implements EntitySpecificSpawnPacket {

private static final List d = Arrays.asList(new PossibleFishingResult[] { (new PossibleFishingResult(new ItemStack(Items.LEATHER_BOOTS), 10)).a(0.9F), new PossibleFishingResult(new ItemStack(Items.LEATHER), 10), new PossibleFishingResult(new ItemStack(Items.BONE), 10), new PossibleFishingResult(new ItemStack(Items.POTION), 10), new PossibleFishingResult(new ItemStack(Items.STRING), 5), (new PossibleFishingResult(new ItemStack(Items.FISHING_ROD), 2)).a(0.9F), new PossibleFishingResult(new ItemStack(Items.BOWL), 10), new PossibleFishingResult(new ItemStack(Items.STICK), 5), new PossibleFishingResult(new ItemStack(Items.INK_SACK, 10, 0), 1), new PossibleFishingResult(new ItemStack(Blocks.TRIPWIRE_SOURCE), 10), new PossibleFishingResult(new ItemStack(Items.ROTTEN_FLESH), 10)});
private static final List e = Arrays.asList(new PossibleFishingResult[] { new PossibleFishingResult(new ItemStack(Blocks.WATER_LILY), 1), new PossibleFishingResult(new ItemStack(Items.NAME_TAG), 1), new PossibleFishingResult(new ItemStack(Items.SADDLE), 1), (new PossibleFishingResult(new ItemStack(Items.BOW), 1)).a(0.25F).a(), (new PossibleFishingResult(new ItemStack(Items.FISHING_ROD), 1)).a(0.25F).a(), (new PossibleFishingResult(new ItemStack(Items.BOOK), 1)).a()});
Expand Down Expand Up @@ -495,4 +496,10 @@ public void die() {
this.owner.hookedFish = null;
}
}

@Override
public Packet createSpecificSpawnPacket() {
final EntityHuman owner = this.owner;
return new PacketPlayOutSpawnEntity(this, 90, owner != null ? owner.getId() : this.getId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import java.util.Iterator;

import com.sathonay.npaper.utils.EntitySpecificSpawnPacket;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import org.bukkit.event.player.PlayerPickupItemEvent; // CraftBukkit
import org.github.paperspigot.PaperSpigotConfig;

public class EntityItem extends Entity {
public class EntityItem extends Entity implements EntitySpecificSpawnPacket {

private static final Logger d = LogManager.getLogger();
public int age;
Expand Down Expand Up @@ -409,4 +410,9 @@ public void die() {
this.owner = null;
super.die();
}

@Override
public Packet createSpecificSpawnPacket() {
return new PacketPlayOutSpawnEntity(this, 2, 1);
}
}
Loading

0 comments on commit f83cec4

Please sign in to comment.