use of net.modificationstation.stationapi.api.registry.DimensionRegistry in project StationAPI by ModificationStation.
the class DimensionListener method registerDimensions.
@EventListener
private static void registerDimensions(DimensionRegistryEvent event) {
DimensionRegistry r = event.registry;
r.register(of(MODID, "test_dimension"), new DimensionContainer<>(TestDimension::new));
}
use of net.modificationstation.stationapi.api.registry.DimensionRegistry in project StationAPI by ModificationStation.
the class DimensionAPI method registerDimensions.
@EventListener(priority = ListenerPriority.HIGH)
private static void registerDimensions(DimensionRegistryEvent event) {
DimensionRegistry r = event.registry;
r.register(THE_NETHER, -1, new DimensionContainer<>(Nether::new));
r.register(OVERWORLD, 0, new DimensionContainer<>(Overworld::new));
r.register(SKYLANDS, 1, new DimensionContainer<>(Skylands::new));
}
use of net.modificationstation.stationapi.api.registry.DimensionRegistry in project StationAPI by ModificationStation.
the class DimensionHelperServerImpl method switchDimension.
@Override
public void switchDimension(PlayerBase player, Identifier destination, double scale, class_467 travelAgent) {
// noinspection deprecation
MinecraftServer server = (MinecraftServer) FabricLoader.getInstance().getGameInstance();
ServerPlayer serverPlayer = (ServerPlayer) player;
ServerLevel var2 = server.getLevel(serverPlayer.dimensionId);
DimensionRegistry dimensions = DimensionRegistry.INSTANCE;
int overworldSerial = dimensions.getSerialID(OVERWORLD).orElseThrow(() -> new IllegalStateException("Overworld not found!"));
int destinationSerial = dimensions.getSerialID(destination).orElseThrow(() -> new IllegalArgumentException("Unknown dimension: " + destination + "!"));
player.dimensionId = player.dimensionId == destinationSerial ? overworldSerial : destinationSerial;
ServerLevel var4 = server.getLevel(serverPlayer.dimensionId);
serverPlayer.packetHandler.send(new Respawn0x9C2SPacket((byte) serverPlayer.dimensionId));
var2.removeEntityServer(serverPlayer);
serverPlayer.removed = false;
double var5 = serverPlayer.x;
double var7 = serverPlayer.z;
if (serverPlayer.dimensionId == destinationSerial) {
var5 *= scale;
var7 *= scale;
} else {
var5 /= scale;
var7 /= scale;
}
serverPlayer.setPositionAndAngles(var5, serverPlayer.y, var7, serverPlayer.yaw, serverPlayer.pitch);
if (serverPlayer.isAlive())
var2.method_193(serverPlayer, false);
if (serverPlayer.isAlive()) {
var4.spawnEntity(serverPlayer);
serverPlayer.setPositionAndAngles(var5, serverPlayer.y, var7, serverPlayer.yaw, serverPlayer.pitch);
var4.method_193(serverPlayer, false);
var4.serverLevelSource.field_933 = true;
travelAgent.method_1530(var4, serverPlayer);
var4.serverLevelSource.field_933 = false;
}
server.serverPlayerConnectionManager.method_554(serverPlayer);
serverPlayer.packetHandler.method_832(serverPlayer.x, serverPlayer.y, serverPlayer.z, serverPlayer.yaw, serverPlayer.pitch);
serverPlayer.setLevel(var4);
server.serverPlayerConnectionManager.sendPlayerTime(serverPlayer, var4);
server.serverPlayerConnectionManager.method_581(serverPlayer);
}
Aggregations