mirror of https://github.com/webbukkit/dynmap.git
Support minecraft 1.19 (not tested)
This commit is contained in:
parent
6de4f2ff2f
commit
ccb18cd488
|
@ -96,7 +96,7 @@ public class DynmapPlugin {
|
|||
plugin = this;
|
||||
// Fabric events persist between server instances
|
||||
ServerLifecycleEvents.SERVER_STARTING.register(this::serverStart);
|
||||
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> registerCommands(dispatcher));
|
||||
CommandRegistrationCallback.EVENT.register((dispatcher,registryAccess, environment) -> registerCommands(dispatcher));
|
||||
CustomServerLifecycleEvents.SERVER_STARTED_PRE_WORLD_LOAD.register(this::serverStarted);
|
||||
ServerLifecycleEvents.SERVER_STOPPING.register(this::serverStop);
|
||||
}
|
||||
|
@ -267,8 +267,7 @@ public class DynmapPlugin {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: Consider whether cheats are enabled for integrated server
|
||||
return server.isSingleplayer() && player.equalsIgnoreCase(server.getSinglePlayerName());
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean hasPerm(PlayerEntity psender, String permission) {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package org.dynmap.fabric_1_19;
|
||||
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.text.LiteralTextContent;
|
||||
import net.minecraft.text.Text;
|
||||
import org.dynmap.common.DynmapCommandSender;
|
||||
|
||||
|
@ -25,7 +24,7 @@ public class FabricCommandSender implements DynmapCommandSender {
|
|||
@Override
|
||||
public void sendMessage(String msg) {
|
||||
if (sender != null) {
|
||||
Text ichatcomponent = new LiteralTextContent(msg);
|
||||
Text ichatcomponent = Text.of(msg);
|
||||
sender.sendFeedback(ichatcomponent, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ public class FabricMapChunkCache extends GenericMapChunkCache {
|
|||
ThreadedAnvilChunkStorage acl = cps.threadedAnvilChunkStorage;
|
||||
|
||||
ChunkPos coord = new ChunkPos(x, z);
|
||||
return acl.getNbt(coord);
|
||||
return acl.getNbt(coord).get().get();
|
||||
} catch (Exception exc) {
|
||||
Log.severe(String.format("Error reading chunk: %s,%d,%d", dw.getName(), x, z), exc);
|
||||
return null;
|
||||
|
|
|
@ -12,7 +12,6 @@ import net.minecraft.network.packet.s2c.play.TitleFadeS2CPacket;
|
|||
import net.minecraft.network.packet.s2c.play.TitleS2CPacket;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.LiteralTextContent;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
@ -188,8 +187,8 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer {
|
|||
|
||||
@Override
|
||||
public void sendMessage(String msg) {
|
||||
Text ichatcomponent = new LiteralTextContent(msg);
|
||||
player.sendSystemMessage(ichatcomponent, Util.NIL_UUID);
|
||||
Text ichatcomponent = Text.of(msg);
|
||||
player.sendMessage(ichatcomponent);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -239,12 +238,12 @@ public class FabricPlayer extends FabricCommandSender implements DynmapPlayer {
|
|||
TitleFadeS2CPacket times = new TitleFadeS2CPacket(fadeInTicks, stayTicks, fadeOutTicks);
|
||||
player.networkHandler.sendPacket(times);
|
||||
if (title != null) {
|
||||
TitleS2CPacket titlepkt = new TitleS2CPacket(new LiteralTextContent(title));
|
||||
TitleS2CPacket titlepkt = new TitleS2CPacket(Text.of(title));
|
||||
player.networkHandler.sendPacket(titlepkt);
|
||||
}
|
||||
|
||||
if (subtitle != null) {
|
||||
SubtitleS2CPacket subtitlepkt = new SubtitleS2CPacket(new LiteralTextContent(subtitle));
|
||||
SubtitleS2CPacket subtitlepkt = new SubtitleS2CPacket(Text.of(subtitle));
|
||||
player.networkHandler.sendPacket(subtitlepkt);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ import net.minecraft.server.BannedPlayerList;
|
|||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.PlayerManager;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.LiteralTextContent;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.UserCache;
|
||||
import net.minecraft.util.Util;
|
||||
|
@ -272,7 +271,7 @@ public class FabricServer extends DynmapServerInterface {
|
|||
case SIGN_CHANGE:
|
||||
BlockEvents.SIGN_CHANGE_EVENT.register((world, pos, lines, material, player) -> {
|
||||
plugin.core.processSignChange("fabric", FabricWorld.getWorldName(plugin, world),
|
||||
pos.getX(), pos.getY(), pos.getZ(), lines, player.getName().asString());
|
||||
pos.getX(), pos.getY(), pos.getZ(), lines, player.getName().getString());
|
||||
});
|
||||
break;
|
||||
|
||||
|
@ -292,8 +291,8 @@ public class FabricServer extends DynmapServerInterface {
|
|||
|
||||
@Override
|
||||
public void broadcastMessage(String msg) {
|
||||
Text component = new LiteralTextContent(msg);
|
||||
server.getPlayerManager().broadcast(component, MessageType.SYSTEM, Util.NIL_UUID);
|
||||
Text component = Text.of(msg);
|
||||
server.getPlayerManager().broadcast(component, MessageType.SYSTEM);
|
||||
Log.info(stripChatColor(msg));
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.minecraft.world.Heightmap;
|
|||
import net.minecraft.world.LightType;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.border.WorldBorder;
|
||||
import net.minecraft.client.render.LightmapTextureManager;
|
||||
import org.dynmap.DynmapChunk;
|
||||
import org.dynmap.DynmapLocation;
|
||||
import org.dynmap.DynmapWorld;
|
||||
|
@ -49,7 +50,7 @@ public class FabricWorld extends DynmapWorld {
|
|||
}
|
||||
|
||||
public void updateWorld(World w) {
|
||||
this.updateWorldHeights(w.getHeight(), w.getDimension().getMinimumY(), w.getSeaLevel());
|
||||
this.updateWorldHeights(w.getHeight(), w.getDimension().minY(), w.getSeaLevel());
|
||||
}
|
||||
|
||||
public FabricWorld(DynmapPlugin plugin, World w) {
|
||||
|
@ -58,12 +59,12 @@ public class FabricWorld extends DynmapWorld {
|
|||
w.getRegistryKey() == World.NETHER,
|
||||
w.getRegistryKey() == World.END,
|
||||
w.getRegistryKey().getValue().getPath(),
|
||||
w.getDimension().getMinimumY());
|
||||
w.getDimension().minY());
|
||||
setWorldLoaded(w);
|
||||
}
|
||||
|
||||
public FabricWorld(DynmapPlugin plugin, String name, int height, int sealevel, boolean nether, boolean the_end, String deftitle, int miny) {
|
||||
super(name, (height > maxWorldHeight) ? maxWorldHeight : height, sealevel, miny);
|
||||
super(name, Math.min(height, maxWorldHeight), sealevel, miny);
|
||||
this.plugin = plugin;
|
||||
world = null;
|
||||
setTitle(deftitle);
|
||||
|
@ -149,7 +150,7 @@ public class FabricWorld extends DynmapWorld {
|
|||
this.sealevel = w.getSeaLevel(); // Read actual current sealevel from world
|
||||
// Update lighting table
|
||||
for (int i = 0; i < 16; i++) {
|
||||
this.setBrightnessTableEntry(i, w.getDimension().getBrightness(i));
|
||||
this.setBrightnessTableEntry(i, LightmapTextureManager.getBrightness(w.getDimension(), i));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,12 @@ import net.minecraft.block.BlockState;
|
|||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.block.entity.SignBlockEntity;
|
||||
import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket;
|
||||
import net.minecraft.server.filter.TextStream;
|
||||
import net.minecraft.server.filter.FilteredMessage;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.text.LiteralTextContent;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -31,12 +32,12 @@ public abstract class ServerPlayNetworkHandlerMixin {
|
|||
method = "handleMessage",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
target = "Lnet/minecraft/server/PlayerManager;broadcast(Lnet/minecraft/text/Text;Ljava/util/function/Function;Lnet/minecraft/network/MessageType;Ljava/util/UUID;)V",
|
||||
target = "Lnet/minecraft/server/network/ServerPlayNetworkHandler;handleMessage(Lnet/minecraft/network/packet/c2s/play/ChatMessageC2SPacket;Lnet/minecraft/server/filter/FilteredMessage;)V",
|
||||
shift = At.Shift.BEFORE
|
||||
)
|
||||
)
|
||||
public void onGameMessage(TextStream.Message message, CallbackInfo info) {
|
||||
ServerChatEvents.EVENT.invoker().onChatMessage(player, message.getRaw());
|
||||
public void onGameMessage(ChatMessageC2SPacket packet, FilteredMessage<String> message, CallbackInfo info) {
|
||||
ServerChatEvents.EVENT.invoker().onChatMessage(player, message.raw());
|
||||
}
|
||||
|
||||
@Inject(
|
||||
|
@ -48,19 +49,19 @@ public abstract class ServerPlayNetworkHandlerMixin {
|
|||
),
|
||||
locals = LocalCapture.CAPTURE_FAILHARD
|
||||
)
|
||||
public void onSignUpdate(UpdateSignC2SPacket packet, List<TextStream.Message> signText, CallbackInfo info,
|
||||
public void onSignUpdate(UpdateSignC2SPacket packet, List<FilteredMessage<String>> signText, CallbackInfo info,
|
||||
ServerWorld serverWorld, BlockPos blockPos, BlockState blockState, BlockEntity blockEntity, SignBlockEntity signBlockEntity)
|
||||
{
|
||||
// Pull the raw text from the input.
|
||||
String[] rawTexts = new String[4];
|
||||
for (int i=0; i<signText.size(); i++)
|
||||
rawTexts[i] = signText.get(i).getRaw();
|
||||
rawTexts[i] = signText.get(i).raw();
|
||||
|
||||
// Fire the event.
|
||||
BlockEvents.SIGN_CHANGE_EVENT.invoker().onSignChange(serverWorld, blockPos, rawTexts, blockState.getMaterial(), player);
|
||||
|
||||
// Put the (possibly updated) texts in the sign. Ignore filtering (is this OK?).
|
||||
for (int i=0; i<signText.size(); i++)
|
||||
signBlockEntity.setTextOnRow(i, new LiteralTextContent(rawTexts[i]));
|
||||
signBlockEntity.setTextOnRow(i, Text.of(rawTexts[i]));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue