Migrate the Carpet codebase to Mojang Mappings
This commit is contained in:
346 files changed
+8353
-8492
No files matched your search
@@ -8,17 +8,16 @@ import carpet.mixins.PlayerListHeaderS2CPacketMixin;
|
||||
import carpet.utils.Messenger;
|
||||
import carpet.utils.SpawnReporter;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.network.packet.s2c.play.PlayerListHeaderS2CPacket;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.protocol.game.ClientboundTabListPacket;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.text.BaseText;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -43,18 +42,18 @@ public class HUDController
|
||||
HUDListeners.add(listener);
|
||||
}
|
||||
|
||||
public static Map<ServerPlayerEntity, List<BaseText>> player_huds = new HashMap<>();
|
||||
public static Map<ServerPlayer, List<BaseComponent>> player_huds = new HashMap<>();
|
||||
//keyed with player names so unlogged players don't hold the reference
|
||||
public static final Map<String, BaseText> scarpet_headers = new HashMap<>();
|
||||
public static final Map<String, BaseComponent> scarpet_headers = new HashMap<>();
|
||||
|
||||
public static final Map<String, BaseText> scarpet_footers = new HashMap<>();
|
||||
public static final Map<String, BaseComponent> scarpet_footers = new HashMap<>();
|
||||
|
||||
public static void resetScarpetHUDs() {
|
||||
scarpet_headers.clear();
|
||||
scarpet_footers.clear();
|
||||
}
|
||||
|
||||
public static void addMessage(ServerPlayerEntity player, BaseText hudMessage)
|
||||
public static void addMessage(ServerPlayer player, BaseComponent hudMessage)
|
||||
{
|
||||
if (player == null) return;
|
||||
if (!player_huds.containsKey(player))
|
||||
@@ -63,29 +62,29 @@ public class HUDController
|
||||
}
|
||||
else
|
||||
{
|
||||
player_huds.get(player).add(new LiteralText("\n"));
|
||||
player_huds.get(player).add(new TextComponent("\n"));
|
||||
}
|
||||
player_huds.get(player).add(hudMessage);
|
||||
}
|
||||
public static void clear_player(PlayerEntity player)
|
||||
public static void clear_player(Player player)
|
||||
{
|
||||
PacketByteBuf packetData = new PacketByteBuf(Unpooled.buffer()).writeText(new LiteralText("")).writeText(new LiteralText(""));
|
||||
PlayerListHeaderS2CPacket packet = new PlayerListHeaderS2CPacket(packetData);
|
||||
FriendlyByteBuf packetData = new FriendlyByteBuf(Unpooled.buffer()).writeComponent(new TextComponent("")).writeComponent(new TextComponent(""));
|
||||
ClientboundTabListPacket packet = new ClientboundTabListPacket(packetData);
|
||||
//((PlayerListHeaderS2CPacketMixin)packet).setHeader(new LiteralText(""));
|
||||
//((PlayerListHeaderS2CPacketMixin)packet).setFooter(new LiteralText(""));
|
||||
((ServerPlayerEntity)player).networkHandler.sendPacket(packet);
|
||||
((ServerPlayer)player).connection.send(packet);
|
||||
}
|
||||
|
||||
|
||||
public static void update_hud(MinecraftServer server, List<ServerPlayerEntity> force)
|
||||
public static void update_hud(MinecraftServer server, List<ServerPlayer> force)
|
||||
{
|
||||
if (((server.getTicks() % 20 != 0) && force == null) || CarpetServer.minecraft_server == null)
|
||||
if (((server.getTickCount() % 20 != 0) && force == null) || CarpetServer.minecraft_server == null)
|
||||
return;
|
||||
|
||||
player_huds.clear();
|
||||
|
||||
server.getPlayerManager().getPlayerList().forEach(p -> {
|
||||
BaseText scarpetFOoter = scarpet_footers.get(p.getEntityName());
|
||||
server.getPlayerList().getPlayers().forEach(p -> {
|
||||
BaseComponent scarpetFOoter = scarpet_footers.get(p.getScoreboardName());
|
||||
if (scarpetFOoter != null) HUDController.addMessage(p, scarpetFOoter);
|
||||
});
|
||||
|
||||
@@ -94,20 +93,20 @@ public class HUDController
|
||||
|
||||
if (LoggerRegistry.__mobcaps)
|
||||
LoggerRegistry.getLogger("mobcaps").log((option, player) -> {
|
||||
RegistryKey<World> dim = player.world.getRegistryKey(); //getDimType
|
||||
ResourceKey<Level> dim = player.level.dimension(); //getDimType
|
||||
switch (option)
|
||||
{
|
||||
case "overworld":
|
||||
dim = World.OVERWORLD; // OW
|
||||
dim = Level.OVERWORLD; // OW
|
||||
break;
|
||||
case "nether":
|
||||
dim = World.NETHER; // nether
|
||||
dim = Level.NETHER; // nether
|
||||
break;
|
||||
case "end":
|
||||
dim = World.END; // end
|
||||
dim = Level.END; // end
|
||||
break;
|
||||
}
|
||||
return new BaseText[]{SpawnReporter.printMobcapsForDimension(server.getWorld(dim), false).get(0)};
|
||||
return new BaseComponent[]{SpawnReporter.printMobcapsForDimension(server.getLevel(dim), false).get(0)};
|
||||
});
|
||||
|
||||
if(LoggerRegistry.__counter)
|
||||
@@ -119,43 +118,43 @@ public class HUDController
|
||||
// extensions have time to pitch in.
|
||||
HUDListeners.forEach(l -> l.accept(server));
|
||||
|
||||
Set<ServerPlayerEntity> targets = new HashSet<>(player_huds.keySet());
|
||||
Set<ServerPlayer> targets = new HashSet<>(player_huds.keySet());
|
||||
if (force!= null) targets.addAll(force);
|
||||
for (ServerPlayerEntity player: targets)
|
||||
for (ServerPlayer player: targets)
|
||||
{
|
||||
PacketByteBuf packetData = new PacketByteBuf(Unpooled.buffer()).
|
||||
writeText(scarpet_headers.getOrDefault(player.getEntityName(), new LiteralText(""))).
|
||||
writeText(Messenger.c(player_huds.getOrDefault(player, Collections.emptyList()).toArray(new Object[0])));
|
||||
PlayerListHeaderS2CPacket packet = new PlayerListHeaderS2CPacket(packetData);
|
||||
FriendlyByteBuf packetData = new FriendlyByteBuf(Unpooled.buffer()).
|
||||
writeComponent(scarpet_headers.getOrDefault(player.getScoreboardName(), new TextComponent(""))).
|
||||
writeComponent(Messenger.c(player_huds.getOrDefault(player, Collections.emptyList()).toArray(new Object[0])));
|
||||
ClientboundTabListPacket packet = new ClientboundTabListPacket(packetData);
|
||||
|
||||
//PlayerListHeaderS2CPacket packet = new PlayerListHeaderS2CPacket();
|
||||
//((PlayerListHeaderS2CPacketMixin)packet).setHeader(scarpet_headers.getOrDefault(player.getEntityName(), new LiteralText("")));
|
||||
//((PlayerListHeaderS2CPacketMixin)packet).setFooter(Messenger.c(player_huds.getOrDefault(player, Collections.emptyList()).toArray(new Object[0])));
|
||||
player.networkHandler.sendPacket(packet);
|
||||
player.connection.send(packet);
|
||||
}
|
||||
}
|
||||
private static BaseText [] send_tps_display(MinecraftServer server)
|
||||
private static BaseComponent [] send_tps_display(MinecraftServer server)
|
||||
{
|
||||
double MSPT = MathHelper.average(server.lastTickLengths) * 1.0E-6D;
|
||||
double MSPT = Mth.average(server.tickTimes) * 1.0E-6D;
|
||||
double TPS = 1000.0D / Math.max((TickSpeed.time_warp_start_time != 0)?0.0:TickSpeed.mspt, MSPT);
|
||||
String color = Messenger.heatmap_color(MSPT,TickSpeed.mspt);
|
||||
return new BaseText[]{Messenger.c(
|
||||
return new BaseComponent[]{Messenger.c(
|
||||
"g TPS: ", String.format(Locale.US, "%s %.1f",color, TPS),
|
||||
"g MSPT: ", String.format(Locale.US,"%s %.1f", color, MSPT))};
|
||||
}
|
||||
|
||||
private static BaseText [] send_counter_info(MinecraftServer server, String color)
|
||||
private static BaseComponent [] send_counter_info(MinecraftServer server, String color)
|
||||
{
|
||||
List <BaseText> res = new ArrayList<>();
|
||||
List <BaseComponent> res = new ArrayList<>();
|
||||
Arrays.asList(color.split(",")).forEach(c ->{
|
||||
HopperCounter counter = HopperCounter.getCounter(c);
|
||||
if (counter != null) res.addAll(counter.format(server, false, true));
|
||||
});
|
||||
return res.toArray(new BaseText[0]);
|
||||
return res.toArray(new BaseComponent[0]);
|
||||
}
|
||||
private static BaseText [] packetCounter()
|
||||
private static BaseComponent [] packetCounter()
|
||||
{
|
||||
BaseText [] ret = new BaseText[]{
|
||||
BaseComponent [] ret = new BaseComponent[]{
|
||||
Messenger.c("w I/" + PacketCounter.totalIn + " O/" + PacketCounter.totalOut),
|
||||
};
|
||||
PacketCounter.reset();
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package carpet.logging;
|
||||
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.BaseText;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
||||
public class HUDLogger extends Logger
|
||||
{
|
||||
@@ -38,15 +37,15 @@ public class HUDLogger extends Logger
|
||||
@Override
|
||||
public void removePlayer(String playerName)
|
||||
{
|
||||
ServerPlayerEntity player = playerFromName(playerName);
|
||||
ServerPlayer player = playerFromName(playerName);
|
||||
if (player != null) HUDController.clear_player(player);
|
||||
super.removePlayer(playerName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPlayerMessage(ServerPlayerEntity player, BaseText... messages)
|
||||
public void sendPlayerMessage(ServerPlayer player, BaseComponent... messages)
|
||||
{
|
||||
for (BaseText m:messages) HUDController.addMessage(player, m);
|
||||
for (BaseComponent m:messages) HUDController.addMessage(player, m);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,11 +2,6 @@ package carpet.logging;
|
||||
|
||||
import carpet.CarpetServer;
|
||||
import carpet.CarpetSettings;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.BaseText;
|
||||
import net.minecraft.util.Util;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -14,6 +9,10 @@ import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
||||
public class Logger
|
||||
{
|
||||
@@ -136,15 +135,15 @@ public class Logger
|
||||
* will repeat invocation for players that share the same option
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface lMessage { BaseText [] get(String playerOption, PlayerEntity player);}
|
||||
public interface lMessage { BaseComponent [] get(String playerOption, Player player);}
|
||||
public void log(lMessage messagePromise)
|
||||
{
|
||||
for (Map.Entry<String,String> en : subscribedOnlinePlayers.entrySet())
|
||||
{
|
||||
ServerPlayerEntity player = playerFromName(en.getKey());
|
||||
ServerPlayer player = playerFromName(en.getKey());
|
||||
if (player != null)
|
||||
{
|
||||
BaseText [] messages = messagePromise.get(en.getValue(),player);
|
||||
BaseComponent [] messages = messagePromise.get(en.getValue(),player);
|
||||
if (messages != null)
|
||||
sendPlayerMessage(player, messages);
|
||||
}
|
||||
@@ -156,13 +155,13 @@ public class Logger
|
||||
* and served the same way to all other players subscribed to the same option
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface lMessageIgnorePlayer { BaseText [] get(String playerOption);}
|
||||
public interface lMessageIgnorePlayer { BaseComponent [] get(String playerOption);}
|
||||
public void log(lMessageIgnorePlayer messagePromise)
|
||||
{
|
||||
Map<String, BaseText[]> cannedMessages = new HashMap<>();
|
||||
Map<String, BaseComponent[]> cannedMessages = new HashMap<>();
|
||||
for (Map.Entry<String,String> en : subscribedOnlinePlayers.entrySet())
|
||||
{
|
||||
ServerPlayerEntity player = playerFromName(en.getKey());
|
||||
ServerPlayer player = playerFromName(en.getKey());
|
||||
if (player != null)
|
||||
{
|
||||
String option = en.getValue();
|
||||
@@ -170,7 +169,7 @@ public class Logger
|
||||
{
|
||||
cannedMessages.put(option,messagePromise.get(option));
|
||||
}
|
||||
BaseText [] messages = cannedMessages.get(option);
|
||||
BaseComponent [] messages = cannedMessages.get(option);
|
||||
if (messages != null)
|
||||
sendPlayerMessage(player, messages);
|
||||
}
|
||||
@@ -179,12 +178,12 @@ public class Logger
|
||||
/**
|
||||
* guarantees that message is evaluated once, so independent from the player and chosen option
|
||||
*/
|
||||
public void log(Supplier<BaseText[]> messagePromise)
|
||||
public void log(Supplier<BaseComponent[]> messagePromise)
|
||||
{
|
||||
BaseText [] cannedMessages = null;
|
||||
BaseComponent [] cannedMessages = null;
|
||||
for (Map.Entry<String,String> en : subscribedOnlinePlayers.entrySet())
|
||||
{
|
||||
ServerPlayerEntity player = playerFromName(en.getKey());
|
||||
ServerPlayer player = playerFromName(en.getKey());
|
||||
if (player != null)
|
||||
{
|
||||
if (cannedMessages == null) cannedMessages = messagePromise.get();
|
||||
@@ -193,22 +192,22 @@ public class Logger
|
||||
}
|
||||
}
|
||||
|
||||
public void sendPlayerMessage(ServerPlayerEntity player, BaseText ... messages)
|
||||
public void sendPlayerMessage(ServerPlayer player, BaseComponent ... messages)
|
||||
{
|
||||
Arrays.stream(messages).forEach(message -> player.sendSystemMessage(message, Util.NIL_UUID));
|
||||
Arrays.stream(messages).forEach(message -> player.sendMessage(message, Util.NIL_UUID));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@code PlayerEntity} instance for a player given their UUID. Returns null if they are offline.
|
||||
*/
|
||||
protected ServerPlayerEntity playerFromName(String name)
|
||||
protected ServerPlayer playerFromName(String name)
|
||||
{
|
||||
return CarpetServer.minecraft_server.getPlayerManager().getPlayer(name);
|
||||
return CarpetServer.minecraft_server.getPlayerList().getPlayerByName(name);
|
||||
}
|
||||
|
||||
// ----- Event Handlers ----- //
|
||||
|
||||
public void onPlayerConnect(PlayerEntity player, boolean firstTime)
|
||||
public void onPlayerConnect(Player player, boolean firstTime)
|
||||
{
|
||||
// If the player was subscribed to the log and offline, move them to the set of online subscribers.
|
||||
String playerName = player.getName().getString();
|
||||
@@ -228,7 +227,7 @@ public class Logger
|
||||
LoggerRegistry.setAccess(this);
|
||||
}
|
||||
|
||||
public void onPlayerDisconnect(PlayerEntity player)
|
||||
public void onPlayerDisconnect(Player player)
|
||||
{
|
||||
// If the player was subscribed to the log, move them to the set of offline subscribers.
|
||||
String playerName = player.getName().getString();
|
||||
|
||||
@@ -2,15 +2,14 @@ package carpet.logging;
|
||||
|
||||
import carpet.CarpetServer;
|
||||
import carpet.CarpetSettings;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.DyeColor;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
|
||||
public class LoggerRegistry
|
||||
{
|
||||
@@ -152,7 +151,7 @@ public class LoggerRegistry
|
||||
loggerRegistry.clear();
|
||||
playerSubscriptions.clear();
|
||||
}
|
||||
public static void playerConnected(PlayerEntity player)
|
||||
public static void playerConnected(Player player)
|
||||
{
|
||||
boolean firstTime = false;
|
||||
if (!seenPlayers.contains(player.getName().getString()))
|
||||
@@ -167,7 +166,7 @@ public class LoggerRegistry
|
||||
}
|
||||
}
|
||||
|
||||
public static void playerDisconnected(PlayerEntity player)
|
||||
public static void playerDisconnected(Player player)
|
||||
{
|
||||
for(Logger log: loggerRegistry.values() )
|
||||
{
|
||||
|
||||
@@ -4,23 +4,22 @@ import carpet.logging.LoggerRegistry;
|
||||
import carpet.utils.Messenger;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.text.BaseText;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.explosion.Explosion;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.level.Explosion;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import static carpet.utils.Messenger.c;
|
||||
|
||||
public class ExplosionLogHelper
|
||||
{
|
||||
private final boolean createFire;
|
||||
private final Explosion.DestructionType blockDestructionType;
|
||||
public final Vec3d pos;
|
||||
private final Explosion.BlockInteraction blockDestructionType;
|
||||
public final Vec3 pos;
|
||||
public final Entity entity;
|
||||
private final float power;
|
||||
private boolean affectBlocks = false;
|
||||
@@ -30,10 +29,10 @@ public class ExplosionLogHelper
|
||||
private static int explosionCountInCurretGT = 0;
|
||||
private static boolean newTick;
|
||||
|
||||
public ExplosionLogHelper(Entity entity, double x, double y, double z, float power, boolean createFire, Explosion.DestructionType blockDestructionType) {
|
||||
public ExplosionLogHelper(Entity entity, double x, double y, double z, float power, boolean createFire, Explosion.BlockInteraction blockDestructionType) {
|
||||
this.entity = entity;
|
||||
this.power = power;
|
||||
this.pos = new Vec3d(x,y,z);
|
||||
this.pos = new Vec3(x,y,z);
|
||||
this.createFire = createFire;
|
||||
this.blockDestructionType = blockDestructionType;
|
||||
}
|
||||
@@ -53,7 +52,7 @@ public class ExplosionLogHelper
|
||||
}
|
||||
explosionCountInCurretGT++;
|
||||
LoggerRegistry.getLogger("explosions").log( (option) -> {
|
||||
List<BaseText> messages = new ArrayList<>();
|
||||
List<BaseComponent> messages = new ArrayList<>();
|
||||
if(newTick) messages.add(c("wb tick : ", "d " + gametime));
|
||||
if ("brief".equals(option))
|
||||
{
|
||||
@@ -79,27 +78,27 @@ public class ExplosionLogHelper
|
||||
messages.add(c((k.pos.equals(pos))?"r - TNT":"w - ",
|
||||
Messenger.dblt((k.pos.equals(pos))?"r":"y", k.pos.x, k.pos.y, k.pos.z), "w dV",
|
||||
Messenger.dblt("d", k.accel.x, k.accel.y, k.accel.z),
|
||||
"w "+Registry.ENTITY_TYPE.getId(k.type).getPath(), (v>1)?"l ("+v+")":""
|
||||
"w "+Registry.ENTITY_TYPE.getKey(k.type).getPath(), (v>1)?"l ("+v+")":""
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
return messages.toArray(new BaseText[0]);
|
||||
return messages.toArray(new BaseComponent[0]);
|
||||
});
|
||||
}
|
||||
|
||||
public void onEntityImpacted(Entity entity, Vec3d accel)
|
||||
public void onEntityImpacted(Entity entity, Vec3 accel)
|
||||
{
|
||||
EntityChangedStatusWithCount ent = new EntityChangedStatusWithCount(entity, accel);
|
||||
impactedEntities.put(ent, impactedEntities.getOrDefault(ent, 0)+1);
|
||||
}
|
||||
|
||||
|
||||
public static record EntityChangedStatusWithCount(Vec3d pos, EntityType type, Vec3d accel)
|
||||
public static record EntityChangedStatusWithCount(Vec3 pos, EntityType<?> type, Vec3 accel)
|
||||
{
|
||||
public EntityChangedStatusWithCount(Entity e, Vec3d accel)
|
||||
public EntityChangedStatusWithCount(Entity e, Vec3 accel)
|
||||
{
|
||||
this(e.getPos(), e.getType(), accel);
|
||||
this(e.position(), e.getType(), accel);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,18 +2,18 @@ package carpet.logging.logHelpers;
|
||||
|
||||
import carpet.helpers.ParticleDisplay;
|
||||
import carpet.logging.LoggerRegistry;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class PathfindingVisualizer
|
||||
{
|
||||
public static void slowPath(Entity entity, Vec3d target, float miliseconds, boolean successful)
|
||||
public static void slowPath(Entity entity, Vec3 target, float miliseconds, boolean successful)
|
||||
{
|
||||
if (!LoggerRegistry.__pathfinding) return;
|
||||
LoggerRegistry.getLogger("pathfinding").log( (option, player)->
|
||||
{
|
||||
if (!(player instanceof ServerPlayerEntity))
|
||||
if (!(player instanceof ServerPlayer))
|
||||
return null;
|
||||
int minDuration;
|
||||
try
|
||||
@@ -26,14 +26,14 @@ public class PathfindingVisualizer
|
||||
}
|
||||
if (miliseconds < minDuration)
|
||||
return null;
|
||||
if (player.squaredDistanceTo(entity) > 1000 && player.squaredDistanceTo(target) > 1000)
|
||||
if (player.distanceToSqr(entity) > 1000 && player.distanceToSqr(target) > 1000)
|
||||
return null;
|
||||
if (minDuration < 1)
|
||||
minDuration = 1;
|
||||
|
||||
String accent = successful ? "happy_villager" : "angry_villager";
|
||||
String color = (miliseconds/minDuration < 2)? "dust 1 1 0 1" : ((miliseconds/minDuration < 4)?"dust 1 0.5 0 1":"dust 1 0 0 1");
|
||||
ParticleDisplay.drawParticleLine((ServerPlayerEntity) player, entity.getPos(), target, color, accent, 5, 0.5);
|
||||
ParticleDisplay.drawParticleLine((ServerPlayer) player, entity.position(), target, color, accent, 5, 0.5);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package carpet.logging.logHelpers;
|
||||
|
||||
import carpet.logging.LoggerRegistry;
|
||||
import carpet.utils.Messenger;
|
||||
import net.minecraft.text.BaseText;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class TNTLogHelper
|
||||
{
|
||||
@@ -11,11 +11,11 @@ public class TNTLogHelper
|
||||
private double primedX, primedY, primedZ;
|
||||
private static long lastGametime = 0;
|
||||
private static int tntCount = 0;
|
||||
private Vec3d primedAngle;
|
||||
private Vec3 primedAngle;
|
||||
/**
|
||||
* Runs when the TNT is primed. Expects the position and motion angle of the TNT.
|
||||
*/
|
||||
public void onPrimed(double x, double y, double z, Vec3d motion)
|
||||
public void onPrimed(double x, double y, double z, Vec3 motion)
|
||||
{
|
||||
primedX = x;
|
||||
primedY = y;
|
||||
@@ -37,12 +37,12 @@ public class TNTLogHelper
|
||||
switch (option)
|
||||
{
|
||||
case "brief":
|
||||
return new BaseText[]{Messenger.c(
|
||||
return new BaseComponent[]{Messenger.c(
|
||||
"l P ",Messenger.dblt("l",primedX,primedY,primedZ),
|
||||
"w ",Messenger.dblt("l", primedAngle.x, primedAngle.y, primedAngle.z),
|
||||
"r E ",Messenger.dblt("r",x, y, z))};
|
||||
case "full":
|
||||
return new BaseText[]{Messenger.c(
|
||||
return new BaseComponent[]{Messenger.c(
|
||||
"r #" + tntCount,
|
||||
"m @" + gametime,
|
||||
"g : ",
|
||||
|
||||
@@ -3,11 +3,10 @@ package carpet.logging.logHelpers;
|
||||
import carpet.logging.Logger;
|
||||
import carpet.logging.LoggerRegistry;
|
||||
import carpet.utils.Messenger;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.text.BaseText;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraft.network.chat.BaseComponent;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
/**
|
||||
* A generic log helper for logging the trajectory of things like blocks and throwables.
|
||||
@@ -19,8 +18,8 @@ public class TrajectoryLogHelper
|
||||
private boolean doLog;
|
||||
private Logger logger;
|
||||
|
||||
private ArrayList<Vec3d> positions = new ArrayList<>();
|
||||
private ArrayList<Vec3d> motions = new ArrayList<>();
|
||||
private ArrayList<Vec3> positions = new ArrayList<>();
|
||||
private ArrayList<Vec3> motions = new ArrayList<>();
|
||||
|
||||
public TrajectoryLogHelper(String logName)
|
||||
{
|
||||
@@ -28,10 +27,10 @@ public class TrajectoryLogHelper
|
||||
this.doLog = this.logger.hasOnlineSubscribers();
|
||||
}
|
||||
|
||||
public void onTick(double x, double y, double z, Vec3d velocity)
|
||||
public void onTick(double x, double y, double z, Vec3 velocity)
|
||||
{
|
||||
if (!doLog) return;
|
||||
positions.add(new Vec3d(x, y, z));
|
||||
positions.add(new Vec3(x, y, z));
|
||||
motions.add(velocity);
|
||||
}
|
||||
|
||||
@@ -39,7 +38,7 @@ public class TrajectoryLogHelper
|
||||
{
|
||||
if (!doLog) return;
|
||||
logger.log( (option) -> {
|
||||
List<BaseText> comp = new ArrayList<>();
|
||||
List<BaseComponent> comp = new ArrayList<>();
|
||||
switch (option)
|
||||
{
|
||||
case "brief":
|
||||
@@ -48,8 +47,8 @@ public class TrajectoryLogHelper
|
||||
|
||||
for (int i = 0; i < positions.size(); i++)
|
||||
{
|
||||
Vec3d pos = positions.get(i);
|
||||
Vec3d mot = motions.get(i);
|
||||
Vec3 pos = positions.get(i);
|
||||
Vec3 mot = motions.get(i);
|
||||
line.add("w x");
|
||||
line.add(String.format("^w Tick: %d\nx: %f\ny: %f\nz: %f\n------------\nmx: %f\nmy: %f\nmz: %f",
|
||||
i, pos.x, pos.y, pos.z, mot.x, mot.y, mot.z));
|
||||
@@ -64,15 +63,15 @@ public class TrajectoryLogHelper
|
||||
comp.add(Messenger.c("w ---------"));
|
||||
for (int i = 0; i < positions.size(); i++)
|
||||
{
|
||||
Vec3d pos = positions.get(i);
|
||||
Vec3d mot = motions.get(i);
|
||||
Vec3 pos = positions.get(i);
|
||||
Vec3 mot = motions.get(i);
|
||||
comp.add(Messenger.c(
|
||||
String.format("w tick: %3d pos",i),Messenger.dblt("w",pos.x, pos.y, pos.z),
|
||||
"w mot",Messenger.dblt("w",mot.x, mot.y, mot.z)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
return comp.toArray(new BaseText[0]);
|
||||
return comp.toArray(new BaseComponent[0]);
|
||||
});
|
||||
doLog = false;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user