Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
version=1.2.2
minecraft_version=1.19.3
mcp_mappings=1.19.3
forge_version=44.0.30
version=1.3.0
minecraft_version=1.20.1
mcp_mappings=1.20.1
forge_version=47.1.3
37 changes: 18 additions & 19 deletions src/main/java/tschipp/callablehorses/client/gui/GuiStatViewer.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
import net.minecraft.network.chat.Component;
Expand Down Expand Up @@ -57,7 +57,7 @@ public GuiStatViewer(Player player)
{
super(Component.literal("Horse Stat Viewer"));
this.owner = HorseHelper.getOwnerCap(player);
this.horse = owner.createHorseEntity(player.level);
this.horse = owner.createHorseEntity(player.level());
horse.getAttributes().load(owner.getHorseNBT().getList("Attributes", 10)); // Read

// attributes
Expand Down Expand Up @@ -109,36 +109,35 @@ public GuiStatViewer(Player player)
}

@Override
public void render(PoseStack stack, int mouseX, int mouseY, float partialTicks)
public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks)
{
this.renderBackground(stack);
this.renderBackground(graphics);

// GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
RenderSystem.setShaderTexture(0, TEXTURE);
int i = (this.width - this.xSize) / 2;
int j = (this.height - this.ySize) / 2;
GuiComponent.blit(stack, i, j, 0, 0, this.xSize, this.ySize, 256, 256);
graphics.blit(TEXTURE, i, j, 0, 0, this.xSize, this.ySize, 256, 256);

super.render(stack, mouseX, mouseY, partialTicks);
super.render(graphics, mouseX, mouseY, partialTicks);

InventoryScreen.renderEntityInInventory(i + 43, j + 68, 25, (float) (i + 51) - mouseX, (float) (j + 75 - 50) - mouseY, this.horse);
InventoryScreen.renderEntityInInventoryFollowsMouse(graphics,i + 43, j + 68, 25, (float) (i + 51) - mouseX, (float) (j + 75 - 50) - mouseY, this.horse);

GuiComponent.drawString(stack, mc.font, this.horse.getName(), i + 84, j + 10, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, this.horse.getName(), i + 84, j + 10, DyeColor.WHITE.getTextColor());

GuiComponent.drawString(stack, mc.font, "Health:", i + 84, j + 30, DyeColor.LIGHT_GRAY.getTextColor());
GuiComponent.drawString(stack, mc.font, health + "/" + maxHealth, i + 120, j + 30, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, "Health:", i + 84, j + 30, DyeColor.LIGHT_GRAY.getTextColor());
graphics.drawString(mc.font, health + "/" + maxHealth, i + 120, j + 30, DyeColor.WHITE.getTextColor());

GuiComponent.drawString(stack, mc.font, "Speed:", i + 84, j + 45, DyeColor.LIGHT_GRAY.getTextColor());
GuiComponent.drawString(stack, mc.font, speed + "", i + 120, j + 45, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, "Speed:", i + 84, j + 45, DyeColor.LIGHT_GRAY.getTextColor());
graphics.drawString(mc.font, speed + "", i + 120, j + 45, DyeColor.WHITE.getTextColor());

GuiComponent.drawString(stack, mc.font, "Jump Height:", i + 84, j + 60, DyeColor.LIGHT_GRAY.getTextColor());
GuiComponent.drawString(stack, mc.font, jumpHeight + "", i + 148, j + 60, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, "Jump Height:", i + 84, j + 60, DyeColor.LIGHT_GRAY.getTextColor());
graphics.drawString(mc.font, jumpHeight + "", i + 148, j + 60, DyeColor.WHITE.getTextColor());

GuiComponent.drawString(stack, mc.font, "Last known position:" + "", i + 8, j + 84, DyeColor.LIGHT_GRAY.getTextColor());
GuiComponent.drawString(stack, mc.font, lastPos.equals(Vec3.ZERO) ? "Unknown" : "xyz = " + lastPos.x() + " " + lastPos.y() + " " + lastPos.z(), i + 8, j + 94, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, "Last known position:" + "", i + 8, j + 84, DyeColor.LIGHT_GRAY.getTextColor());
graphics.drawString(mc.font, lastPos.equals(Vec3.ZERO) ? "Unknown" : "xyz = " + lastPos.x() + " " + lastPos.y() + " " + lastPos.z(), i + 8, j + 94, DyeColor.WHITE.getTextColor());

GuiComponent.drawString(stack, mc.font, "Last known dimension:" + "", i + 8, j + 110, DyeColor.LIGHT_GRAY.getTextColor());
GuiComponent.drawString(stack, mc.font, this.lastDim.location().toString(), i + 8, j + 120, DyeColor.WHITE.getTextColor());
graphics.drawString(mc.font, "Last known dimension:" + "", i + 8, j + 110, DyeColor.LIGHT_GRAY.getTextColor());
graphics.drawString(mc.font, this.lastDim.location().toString(), i + 8, j + 120, DyeColor.WHITE.getTextColor());

}
@Override
Expand Down
40 changes: 20 additions & 20 deletions src/main/java/tschipp/callablehorses/common/HorseManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,16 @@ public static boolean callHorse(Player player)
if (!canCallHorse(player))
return false;
Random rand = new Random();
player.level.playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3));
player.level().playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3));
CallableHorses.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer)player), new PlayWhistlePacket());

AbstractHorse e = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level);
AbstractHorse e = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level());
if (e != null)
{
IStoredHorse horse = HorseHelper.getHorseCap(e);
if (horse.getStorageUUID().equals(horseOwner.getStorageUUID()))
{
if (e.level.dimensionType() == player.level.dimensionType())
if (e.level().dimensionType() == player.level().dimensionType())
{
e.ejectPassengers();

Expand Down Expand Up @@ -105,11 +105,11 @@ public static boolean callHorse(Player player)
}

// Spawning a new horse with a new num
AbstractHorse newHorse = horseOwner.createHorseEntity(player.level);
AbstractHorse newHorse = horseOwner.createHorseEntity(player.level());
newHorse.setPos(player.getX(), player.getY(), player.getZ());
player.level.addFreshEntity(newHorse);
player.level().addFreshEntity(newHorse);
IStoredHorse h = HorseHelper.getHorseCap(newHorse);
HorseHelper.setHorseNum((ServerLevel) newHorse.level, h.getStorageUUID(), h.getHorseNum());
HorseHelper.setHorseNum((ServerLevel) newHorse.level(), h.getStorageUUID(), h.getHorseNum());
HorseHelper.sendHorseUpdateInRange(newHorse);
HorseHelper.setHorseLastSeen(player);
return true;
Expand Down Expand Up @@ -161,14 +161,14 @@ public static void setHorse(Player player)
// Marking any old horses as disbanded
if (!ownedID.isEmpty())
{
Entity ent = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level);
Entity ent = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level());
if (ent != null)
{
clearHorse(HorseHelper.getHorseCap(ent));
}
else
{
player.level.getServer().getAllLevels().forEach(serverworld -> {
player.level().getServer().getAllLevels().forEach(serverworld -> {
StoredHorsesWorldData data = HorseHelper.getWorldData(serverworld);
data.disbandHorse(ownedID);
});
Expand All @@ -180,7 +180,7 @@ public static void setHorse(Player player)
// Setting the new horse
horseOwner.setHorse((AbstractHorse) e, player);
HorseHelper.setHorseLastSeen(player);
HorseHelper.setHorseNum((ServerLevel) e.level, storedHorse.getStorageUUID(), storedHorse.getHorseNum());
HorseHelper.setHorseNum((ServerLevel) e.level(), storedHorse.getStorageUUID(), storedHorse.getHorseNum());
player.displayClientMessage(Component.translatable("callablehorses.success"), true);
HorseHelper.sendHorseUpdateInRange(e);

Expand All @@ -198,7 +198,7 @@ public static void showHorseStats(ServerPlayer player)
return;
}

Entity e = findHorseWithStorageID(owner.getStorageUUID(), player.level);
Entity e = findHorseWithStorageID(owner.getStorageUUID(), player.level());
if (e != null)
{
HorseManager.saveHorse(e);
Expand Down Expand Up @@ -287,15 +287,15 @@ public static boolean canCallHorse(Player player)
endY = player.getY() + 2;
endZ = player.getZ() + 1;

Level world = player.level;
Level world = player.level();

for (double x = startX; x <= endX; x++)
{
for (double y = startY; y <= endY; y++)
{
for (double z = startZ; z <= endZ; z++)
{
BlockPos pos = new BlockPos(x, y, z);
BlockPos pos = new BlockPos((int) x, (int) y, (int) z);
BlockState state = world.getBlockState(pos);
if (state.getBlock().getCollisionShape(state, world, pos, null) != Shapes.empty())
{
Expand All @@ -310,7 +310,7 @@ public static boolean canCallHorse(Player player)
if (!SERVER.callableInEveryDimension.get())
{
List<? extends String> allowedDims = SERVER.callableDimsWhitelist.get();
ResourceKey<Level> playerDim = player.level.dimension();
ResourceKey<Level> playerDim = player.level().dimension();

for (int i = 0; i < allowedDims.size(); i++)
{
Expand All @@ -331,20 +331,20 @@ public static boolean canCallHorse(Player player)
if (lastSeenPos.equals(Vec3.ZERO))
return true;

MinecraftServer server = player.level.getServer();
MinecraftServer server = player.level().getServer();

Entity livingHorse = findHorseWithStorageID(owner.getStorageUUID(), player.level);
Entity livingHorse = findHorseWithStorageID(owner.getStorageUUID(), player.level());
if (livingHorse != null)
{
lastSeenPos = livingHorse.position();
lastSeenDim = livingHorse.level.dimension(); // Dimension
lastSeenDim = livingHorse.level().dimension(); // Dimension
// registry
// key
}

double movementFactorHorse = server.getLevel(lastSeenDim).dimensionType().coordinateScale(); // getDimensionType,
// getMovementFactor
double movementFactorOwner = player.level.dimensionType().coordinateScale();
double movementFactorOwner = player.level().dimensionType().coordinateScale();

double movementFactorTotal = movementFactorHorse > movementFactorOwner ? movementFactorHorse / movementFactorOwner : movementFactorOwner / movementFactorHorse;

Expand Down Expand Up @@ -377,7 +377,7 @@ public static void saveHorse(Entity e)
if (abstractHorse.isDeadOrDying())
return;

Level world = e.level;
Level world = e.level();
IStoredHorse horse = HorseHelper.getHorseCap(e);
if (horse != null && horse.isOwned())
{
Expand All @@ -392,7 +392,7 @@ public static void saveHorse(Entity e)
{
CompoundTag nbt = e.serializeNBT();
horseOwner.setHorseNBT(nbt);
horseOwner.setLastSeenDim(e.level.dimension());
horseOwner.setLastSeenDim(e.level().dimension());
horseOwner.setLastSeenPosition(e.position());
}
else
Expand All @@ -416,7 +416,7 @@ private static boolean isAreaProtected(Player player, @Nullable Entity fakeHorse
{
IHorseOwner owner = HorseHelper.getOwnerCap(player);
if (fakeHorse == null)
fakeHorse = owner.createHorseEntity(player.level);
fakeHorse = owner.createHorseEntity(player.level());
fakeHorse.setPos(player.getX(), player.getY(), player.getZ());
PlayerInteractEvent.EntityInteract interactEvent = new EntityInteract(player, InteractionHand.MAIN_HAND, fakeHorse);
AttackEntityEvent attackEvent = new AttackEntityEvent(player, fakeHorse);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,12 @@ public static CompoundTag writeNBT(IHorseOwner instance) {
}
CompoundTag tag = new CompoundTag();

Vec3 lastSeen = instance.getLastSeenPosition();

tag.put("horse", instance.getHorseNBT());
tag.putInt("horseNum", instance.getHorseNum());
tag.putString("uuid", instance.getStorageUUID());
tag.put("lastSeenPos", NbtUtils.writeBlockPos(new BlockPos(instance.getLastSeenPosition())));
tag.put("lastSeenPos", NbtUtils.writeBlockPos(new BlockPos((int) lastSeen.x, (int)lastSeen.y, (int)lastSeen.z)));
tag.putString("lastSeenDim", instance.getLastSeenDim().location().toString());
return tag;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ else if (joiningEntity instanceof AbstractHorse)
if (horse.isOwned())
{
StoredHorsesWorldData data = HorseHelper.getWorldData((ServerLevel) world);
int globalNum = HorseHelper.getHorseNum((ServerLevel) joiningEntity.level, horse.getStorageUUID());
int globalNum = HorseHelper.getHorseNum((ServerLevel) joiningEntity.level(), horse.getStorageUUID());
if (globalNum > horse.getHorseNum())
{
event.setCanceled(true);
Expand Down Expand Up @@ -221,7 +221,7 @@ public static void onEntityLeaveWorld(EntityLeaveLevelEvent event)
public static void onStopTracking(PlayerEvent.StopTracking event)
{
Player player = event.getEntity();
Level world = player.level;
Level world = player.level();
Entity e = event.getTarget();

if (!world.isClientSide && e.isAlive())
Expand All @@ -236,7 +236,7 @@ public static void onStopTracking(PlayerEvent.StopTracking event)
public static void onStartTracking(PlayerEvent.StartTracking event)
{
Player player = event.getEntity();
if (!player.level.isClientSide)
if (!player.level().isClientSide)
{
Entity target = event.getTarget();
if (target instanceof AbstractHorse)
Expand All @@ -252,7 +252,7 @@ public static void onLivingUpdate(LivingTickEvent event)
{

Entity e = event.getEntity();
if (e instanceof AbstractHorse && !e.level.isClientSide)
if (e instanceof AbstractHorse && !e.level().isClientSide)
{
if (Configs.SERVER.enableDebug.get() || Configs.SERVER.continuousAntiDupeChecking.get())
{
Expand All @@ -263,7 +263,7 @@ public static void onLivingUpdate(LivingTickEvent event)
if (Configs.SERVER.continuousAntiDupeChecking.get())
{
int thisNum = horse.getHorseNum();
int globalNum = HorseHelper.getHorseNum((ServerLevel) e.level, horse.getStorageUUID());
int globalNum = HorseHelper.getHorseNum((ServerLevel) e.level(), horse.getStorageUUID());
if (globalNum > thisNum)
{
// e.setPosition(e.getPosX(), -200, e.getPosZ());
Expand All @@ -281,12 +281,12 @@ public static void onLivingDeath(LivingDeathEvent event)
{
Entity e = event.getEntity();

if (!e.level.isClientSide && e instanceof AbstractHorse)
if (!e.level().isClientSide && e instanceof AbstractHorse)
{
IStoredHorse horse = HorseHelper.getHorseCap(e);
if (horse.isOwned())
{
Player owner = HorseHelper.getPlayerFromUUID(horse.getOwnerUUID(), e.level);
Player owner = HorseHelper.getPlayerFromUUID(horse.getOwnerUUID(), e.level());
if (owner != null)
{
IHorseOwner horseOwner = HorseHelper.getOwnerCap(owner);
Expand All @@ -298,7 +298,7 @@ public static void onLivingDeath(LivingDeathEvent event)
else
{
HorseManager.saveHorse(e);
AbstractHorse deadHorse = horseOwner.createHorseEntity(owner.level);
AbstractHorse deadHorse = horseOwner.createHorseEntity(owner.level());
HorseManager.prepDeadHorseForRespawning(deadHorse);
horseOwner.setHorseNBT(deadHorse.serializeNBT());
horseOwner.setLastSeenPosition(Vec3.ZERO);
Expand All @@ -308,7 +308,7 @@ public static void onLivingDeath(LivingDeathEvent event)
else
{
CallableHorses.LOGGER.debug(e + " was marked as killed.");
e.level.getServer().getAllLevels().forEach(serverworld -> {
e.level().getServer().getAllLevels().forEach(serverworld -> {
HorseHelper.getWorldData(serverworld).markKilled(horse.getStorageUUID());
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public static IStoredHorse getHorseCap(Entity horse)
public static void sendHorseUpdateInRange(Entity horse)
{
IStoredHorse storedHorse = getHorseCap(horse);
CallableHorses.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(horse.getX(), horse.getZ(), horse.getZ(), 32, horse.level.dimension())), new HorseCapSyncPacket(horse.getId(), storedHorse));
CallableHorses.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(horse.getX(), horse.getZ(), horse.getZ(), 32, horse.level().dimension())), new HorseCapSyncPacket(horse.getId(), storedHorse));
}

public static void sendHorseUpdateToClient(Entity horse, Player player)
Expand Down Expand Up @@ -91,7 +91,7 @@ public static void setHorseLastSeen(Player player)
{
IHorseOwner owner = getOwnerCap(player);
owner.setLastSeenPosition(player.position());
owner.setLastSeenDim(player.level.dimension());
owner.setLastSeenDim(player.level().dimension());
}

public static StoredHorsesWorldData getWorldData(ServerLevel world)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.jetbrains.annotations.NotNull;
import tschipp.callablehorses.CallableHorses;
import tschipp.callablehorses.common.capabilities.storedhorse.IStoredHorse;
import tschipp.callablehorses.common.config.Configs;
import tschipp.callablehorses.common.helper.HorseHelper;

public class HorseDropModifier extends LootModifier
Expand Down Expand Up @@ -51,7 +52,10 @@ protected HorseDropModifier(LootItemCondition[] conditionsIn)
IStoredHorse horse = HorseHelper.getHorseCap(entity);
if (horse != null && horse.isOwned())
{
generatedLoot.clear();
if (Configs.SERVER.disableHorseDrops.get())
{
generatedLoot.clear();
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void handle(Supplier<NetworkEvent.Context> context)
if (player != null)
{
Random rand = new Random();
player.level.playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3));
player.level().playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3));
}
}
});
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
modLoader="javafml" #mandatory
loaderVersion="[44,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
loaderVersion="[46,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
license="GNU LGPLv3"
logoFile="logo.png" #optional

Expand All @@ -17,7 +17,7 @@ logoFile="logo.png" #optional
# Does this dependency have to exist - if not, ordering below must be specified
mandatory=true #mandatory
# The version range of the dependency
versionRange="[44.0.30,)" #mandatory
versionRange="[46,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
Expand All @@ -26,6 +26,6 @@ logoFile="logo.png" #optional
[[dependencies.callablehorses]]
modId="minecraft"
mandatory=true
versionRange="[1.19.3,1.20)"
versionRange="[1.20,1.21)"
ordering="NONE"
side="BOTH"
Loading