kyrptonaught / customportalapi Goto Github PK
View Code? Open in Web Editor NEWDeveloper Api for creating custom portals to any dimension
License: MIT License
Developer Api for creating custom portals to any dimension
License: MIT License
Hi,
I use the api in my Mining Dimensions mod. I have four dimensions that I add and it works just fine with three of them. But one dimension it does not return to the original portal, but creates a new portal about 50 blocks away. This happens in single player and on a dedicated server.
I compile my mod with: 0.0.1-beta37-1.17
Mining Dimensions latest sources: https://github.com/kwpugh/mining_Dimensions-1.17/tree/1.17.0/src/main
Any help you can provide would be greatly appreciated.
Regards
Kevin
hello
i try to make a datapack to go to a new dimension already created but the portal never ignte
thanks in advance
Edit: sorry it's work now i make a mistake the only thing is teleport back/forth from dimension on my server maybe this will be fixed when i got mining dimension updated to your latest version
Edit2 i thing i finally know why i teleport again and again it's due to creative mod that make you instant teleport when you pass a portal
thanks again and you may close this issue
It would be nice if we could have our own custom portal shapes, instead of being bricked to the default nether portal shape. It would be good to have an nbt file or your own function of placing it
If throw a dropped item, it will be duplicated into multiple items at the existing dimension and target dimension.
This happens when I put my mod in the server with the customportalapi as an include
.
https://paste.mod.gg/zojurijiza.sql
Any ideas on to what the problem should be?
To replicate: use a custom external mod that uses the customportalapi being ran on the server.
I'll get straight to the point - server crash because of NullPointerException
java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1297.method_36456(float)" because "entity" is null
at net.kyrptonaught.customportalapi.util.CustomTeleporter.TPToDim(CustomTeleporter.java:46)
at net.kyrptonaught.customportalapi.CustomPortalBlock.onEntityCollision(CustomPortalBlock.java:116)
at net.minecraft.block.AbstractBlock$AbstractBlockState.onEntityCollision(AbstractBlock:926)
at net.minecraft.entity.Entity.checkBlockCollision(Entity:1035)
at net.minecraft.entity.projectile.PersistentProjectileEntity.tick(PersistentProjectileEntity:280)
at mod.azure.doom.entity.projectiles.ChaingunBulletEntity.tick(ChaingunBulletEntity.java:126)
at net.minecraft.server.world.ServerWorld.tickEntity(ServerWorld:655)
[at ...]
I don't know if this was a problem with the portal generation making a mess or the projectile entering a portal weirdly but a crash is a crash that could be avoided - hopefully accounting for null parameters.
Modpack used: Another Quality Modpack 2 v2.7.0c
Mod used: Custom Portals by palyon_1 v2.1.0
Custom Portal API version 0.0.1-beta41-1.17
Full log and crash report (scroll down to the end for the latter): https://gist.github.com/ThatScar/10f77bcf5c299ec6acb698e08287b1c5
Full description of what happened: A player entered a custom portal to the nether. I don't know if the portal has been entered before by other players but I am fairly sure this act of entrance created a new portal on the nether side. The server immediately crashed when a player teleported using it. Upon reloading the server, it crashed again when the player connected. Later, a different player ThatScar (me) connected and there was no crash; portal was destroyed by hand and the issue stopped happening.
A screenshot of the portal in question: https://imgur.com/4soprGQ
Hope this helps somebody,
ThatScar
For example, in the aether mod, on beta28, /setblock ~ ~ ~ the_aether:blue_portal doesn't work how it should. Reviewing the code, it isn't an error with the aether.
When using setblock, CustomPortalBlock:getPortalBase() loops forever (Although this is fixed in #17.)
After this fix however, the portal will still not teleport you, and the swirl will be the wrong color.
This could be fixed by making getPortalBase() non-static, so that classes which extend CustomPortalBlock can override and return a custom value (For example, for the aether, Blocks.GLOWSTONE).
Alternatively, you could store the portal base / dimension in the class as a variable.
However both these ideas are somewhat flawed in their current state, and there is likely a better solution out there.
I'm running in a development environment on Minecraft 21w03a, using fabric_version 0.29.5+1.17, and loader_version 0.11.1.
Using a custom portal to travel between dimensions breaks the player's ability to interact with the world (breaking blocks, tilling grass, etc.). Breaking blocks does work but only if the player is in creative mode. This is also the case when using the portal to travel back to the overworld from the custom dimension.
This can be fixed by quitting and re-joining the game, but it is obviously not desirable to do this every time a custom portal is used.
No error or warn in logs that i could see https://mclo.gs/MSJAsuh
Self Explanatory
log: https://pastebin.com/UTs2uTwB
Seems as though a creeper chased a player into a portal and crashed the client when the creeper made contact with it.
using api: 0.0.1-beta46v2-1.18
API: beta 37
Minecraft: 1.17.1
Fabric: 0.36.1+1.17
My mod: https://github.com/kwpugh/mining_Dimensions-1.17
System log: https://gist.github.com/kwpugh/a2ab8238c286bb66eca772b9edf0f799
When entering one of my modded portals, while on a server, the player cycles back-and-forth between dimensions at least a dozen times and may stop either in the dest or the original dim, randomly. This seems to only happen on server, single player is fine.
Report: https://gist.github.com/kwpugh/c159b8d2e6a26bc6ff8e3eb54f307bae
Looks like something got renamed.
Playing on 0.0.1-beta25-1.16.
I used the lib to make a simple custom portal to my dimension, works fine most of the time but this time it teleported me and for some reason didn't set the player position correctly because I ended at same position from that dimension.
I was in -4000 something in my dimension, and same when I teleported back to overworld, which caused me to be stuck in rocks 4000 blocks away from base.
Now i'm almost sure this is the same unsolved bug I had ever since 1.15 even on forge. So hopefully you have better luck with fixing it.. The catch is it's random so I wasn't ever able to reproduce it.
There's a chance it might be some issue with my mod too, so you can close this if nobody else seems to have this issue after a while.
when travelling with nether portals, a transitional "loading terrain" screen is displayed, until the terrain has finished loading obviously. however when travelling with cpa portals, this screen is not displayed. in addition, the sound that is played once the terrain has finished loading in a nether portal plays before the terrain is loaded in cpa portals.
here are some a couple of videos demonstrating the missing loading screen problem i am having (ps: unfortunately i wasn't able to get any audio, so you'll just have to take my word for the early sound problem) (pps: sorry for the very shitty framerate quality): https://imgur.com/a/jRzZdJc
Know issue that Mixin compatibility needs to be Java 16 in 1.18-rc1+, for now at least.
Log: https://gist.github.com/kwpugh/4ad1c8e1bc684f257ca3455a0a8ab996
Caused by: java.lang.IllegalStateException: Fake bursts should never be saved at any time! Source pos class_2338{x=-2409, y=65, z=5154}, owner null
at vazkii.botania.common.entity.EntityManaBurst.writeCustomDataToNbt(EntityManaBurst.java:245) ~[Botania-1.18.2-434-FABRIC.jar:?]
at net.minecraft.entity.Entity.writeNbt(Entity:1657) ~[?:?]
at net.minecraft.entity.Entity.copyFrom(Entity:2482) ~[?:?]
at net.minecraft.entity.Entity.moveToWorld(Entity:2508) ~[?:?]
at net.kyrptonaught.customportalapi.util.CustomTeleporter.TPToDim(CustomTeleporter.java:42) ~[customportalapi-0.0.1-beta50-1.18.jar-3ad4d556-cde5-4bb0-bf37-698ea362c12a-nested.jar:?]
at net.kyrptonaught.customportalapi.CustomPortalBlock.onEntityCollision(CustomPortalBlock.java:108) ~[customportalapi-0.0.1-beta50-1.18.jar-3ad4d556-cde5-4bb0-bf37-698ea362c12a-nested.jar:?]
at net.minecraft.block.AbstractBlock$AbstractBlockState.onEntityCollision(AbstractBlock:927) ~[?:?]
at net.minecraft.entity.Entity.checkBlockCollision(Entity:1028) ~[?:?]
at net.minecraft.entity.projectile.thrown.ThrownEntity.tick(ThrownEntity:68) ~[?:?]
at vazkii.botania.common.entity.EntityManaBurst.tick(EntityManaBurst.java:165) ~[Botania-1.18.2-434-FABRIC.jar:?]
at vazkii.botania.common.entity.EntityManaBurst.getCollidedTile(EntityManaBurst.java:223) ~[Botania-1.18.2-434-FABRIC.jar:?]
at vazkii.botania.common.block.tile.mana.TileSpreader.checkForReceiver(TileSpreader.java:475) ~[Botania-1.18.2-434-FABRIC.jar:?]
at vazkii.botania.common.block.tile.mana.TileSpreader.commonTick(TileSpreader.java:190) ~[Botania-1.18.2-434-FABRIC.jar:?]
at net.minecraft.world.chunk.WorldChunk$DirectBlockEntityTickInvoker.tick(WorldChunk:659) ~[?:?]
at net.minecraft.world.chunk.WorldChunk$WrappedBlockEntityTickInvoker.tick(WorldChunk:713) ~[?:?]
at net.minecraft.world.World.tickBlockEntities(World:475) ~[?:?]
at net.minecraft.server.world.ServerWorld.tick(ServerWorld:368) ~[?:?]
at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer:907) ~[server-intermediary.jar:?]
... 5 more
Not sure which mod's fault this is.
Now I'm sure this is to do with my code but if I could get help as to why this isn't working I would be very grateful, thanks in advance.
public static void registerPortals() {
CustomPortalBuilder.beginPortal()
.frameBlock(Blocks.REINFORCED_DEEPSLATE)
.lightWithItem(Items.FLINT_AND_STEEL)
.destDimID(new Identifier("thefell", "my_dimension_id"))
.tintColor(100, 100, 200)
.registerPortal();
}
IP has injection to moveToWorld
and teleport
method to do the chunk tracking update, but custom portal api uses its own teleportation code so that it has an issue with IP (when coming back the chunks won't load). And IP's convert conventional portal functionality(https://qouteall.fun/immptl/wiki/Datapack-Based-Custom-Portal-Generation) is also not triggered. It's recommended to replace this vanilla copy code https://github.com/kyrptonaught/customportalapi/blob/main/src/main/java/net/kyrptonaught/customportalapi/util/CustomTeleporter.java#L58 with ServerPlayerEntity
's teleport
method. Doing this cleans up the code and makes it compatible with IP.
Support for Block Entities for Custom Portal Block to be able to use textures/shaders like End portal.
I have created a custom portal block inheriting from CustomPortalBlock. When placing it using the BlockItem of this block and then going through, I get an error. Also the chunk containing the portal behaves weird: it is not rendered / rendered as completely empty, F3 doesn't show any blocks, moving in creative is very jaggy while in survival you drown (because the chunk still contains blocks).
/setblock myCustomBlock
also causes this error. Removing the portal restores normal chunk behaviour.
[11:54:26] [Render thread/FATAL] (Minecraft) Error executing task on Client
java.lang.IllegalArgumentException: No value with id -1
at net.minecraft.util.collection.IndexedIterable.getOrThrow(IndexedIterable.java:27) ~[[email protected]:?]
at net.minecraft.world.chunk.ArrayPalette.readPacket(ArrayPalette.java:86) ~[[email protected]:?]
at net.minecraft.world.chunk.PalettedContainer.readPacket(PalettedContainer.java:196) ~[[email protected]:?]
at net.minecraft.world.chunk.ChunkSection.fromPacket(ChunkSection.java:145) ~[[email protected]:?]
at net.minecraft.world.chunk.WorldChunk.loadFromPacket(WorldChunk.java:400) ~[[email protected]:?]
at net.minecraft.client.world.ClientChunkManager.loadChunkFromPacket(ClientChunkManager.java:103) ~[[email protected]:?]
at net.minecraft.client.network.ClientPlayNetworkHandler.loadChunk(ClientPlayNetworkHandler.java:619) ~[[email protected]:?]
at net.minecraft.client.network.ClientPlayNetworkHandler.onChunkData(ClientPlayNetworkHandler.java:614) ~[[email protected]:?]
at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:49) ~[[email protected]:?]
at net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket.apply(ChunkDataS2CPacket.java:25) ~[[email protected]:?]
at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils.java:25) ~[[email protected]:?]
at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:146) [[email protected]:?]
at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:29) [[email protected]:?]
at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:122) [[email protected]:?]
at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:116) [[email protected]:?]
at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1024) [[email protected]:?]
at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:719) [[email protected]:?]
at net.minecraft.client.main.Main.main(Main.java:213) [[email protected]:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:608) [fabric-loader-0.12.12.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.12.12.jar:?]
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.12.12.jar:?]
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
I have also created Nether portal items. They work as intended.
Custom portals can't be lit via dispensers or other means, like the nether portal can.
CustomPortalBuilder
already has a .customPortalBlock()
function and I would like to have a .customPortalItem()
function added.
The function would take an ItemStack
and save it to a new attribute which then gets returned in CustomPortalBlock.getPickStack()
. The attribute has a default value of ItemStack.EMPTY
.
This would close #45.
If possible it'd be great to have support for server-side only portals (assuming it doesn't work already?), then we could have a good replacement for Multiverse-Portals on Fabric.
The download on the main page gives a 404 error.
There's also a 403 Forbidden! on https://dl.bintray.com/kyrptonaught/customportalapi/net/kyrptonaught/customportalapi/0.0.1-beta29-1.16/customportalapi-0.0.1-beta29-1.16.pom
This is probably an issue with Bintray, and if so will likely be a permanent issue with bintray.
It likely has something to do with this announcement regarding end of support for bintray on may 1st: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
When adding CustomPortalAPI to dependencies, it makes so
import net.fabricmc.fabric.api.structure.v1.FabricStructureBuilder;
import net.fabricmc.fabric.impl.structure.FabricStructureImpl;
import net.fabricmc.fabric.mixin.structure.StructuresConfigAccessor;
are inaccessible and project fails to compile.
minecraft_version=1.18.1
yarn_mappings=1.18.1+build.22
loader_version=0.14.8
fabric_version=0.46.6+1.18
id 'fabric-loom' version '0.12-SNAPSHOT'
customportalapi:0.0.1-beta52-1.18
This is the crash that I get when I try to add a new portal with the API.
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.block.Block.getStateManager()" because "block" is null
at net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper.register(PointOfInterestHelper.java:56)
at net.kyrptonaught.customportalapi.CustomPortalApiRegistry.addPortal(CustomPortalApiRegistry.java:30)
at net.kyrptonaught.customportalapi.CustomPortalApiRegistry.addPortal(CustomPortalApiRegistry.java:36)
at com.spxctreofficial.enhancedcraft.registry.portal.ECPortalRegistry.registerPortals(ECPortalRegistry.java:17)
at com.spxctreofficial.enhancedcraft.registry.ECRegistry.Registry(ECRegistry.java:436)
at com.spxctreofficial.enhancedcraft.EnhancedCraft.onInitialize(EnhancedCraft.java:17)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
... 12 more
I'm not sure what could be the issue, but this happens regardless of what I set as the frameBlock.
Whenever I teleport to any dimension using this API, it does not automatically create a portal in the dimension teleported to, regardless if it is a custom dimension, nether, or end. This happens in 21w16a and 21w14a. Not in 1.16.5, and I have not tested other 1.17 snapshots.
See the aether mod to reproduce.
Whenever I try use this in my mod, I get this error.
The supplied phased action failed with an exception.
A problem occurred configuring root project 'fabric-example-mod-1.19'.
Failed to setup Minecraft, org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':modImplementation'.
Could not resolve all dependencies for configuration ':modImplementation'.
Could not find net.kyrptonaught:customportalapi:V0.0.1-BETA52-1.19.
Searched in the following locations:
Im not sure what i have to do to make this work.
(If there also happens to be a way to have this work with MCreator's datapacks aswell, it would be a huge help.)
Just like the end portal.
I want the player to build the returning portal himself instead of generating one.
sodium-fabric-mc1.16.3-0.1.0 (2)
fabric-api-0.34.6+1.16
MiningDimensions_Fabric_1.16.5-1.0.4
My Mining Dim mod is using beta32 of the API, which I believe is the latest for 1.16.5.
Original issue: https://github.com/kwpugh/gobber_fabric/issues/16
It would be good for CustomPortalAPI to utilise ImmersivePortals's API to create an immersive portal, when a portal created with CustomPortalAPI it activated. The developer of ImmersivePortals has already said that they will not provide integration with CustomPortalAPI, so it will have to be done the other way round.
This causes The Aether to be incompatible with ImmersivePortals (devs-immortal/Paradise-Lost#46).
It could also be fixed by The Aether, but every mod would have to fix it.
I wanted to use your Portal API for a mod of mine, but unfortunately the API does not really match the type of portal I wanted to make. But then I wanted to ask you guys a question, since you've already tempered with dimension teleporting a lot and managed to make it work.
How does one sync client and server after teleportation?
When I teleport the player, weither it's using vanilla methods or yours, my destination world either doesn't load and I fall in the void, or parts of the previous world stay loaded (entities notably), or my player entity enters a loop of being re-created indefinitely while still partly in the previous world (which results in a soft-lock utlimately).
Because of that, I wanted to look at how this API does it to see, but I don't really know what part of it I should look at, so I thought asking directly would be better.
Hoping to see a response, and cheers for your great work!
Is there any way to listen to an event for when the portal is ignited? I'd like to do an event/spawn mobs ect. around the portal when ignited.
Hey, sorry I am new at making mods, when i tried to download your repository i got back an error.
i put this in my build.gradle
dependencies {
modImplementation "net.kyrptonaught:customportalapi:${project.loader_version}"
include "net.kyrptonaught:customportalapi:${project.loader_version}"
}
and i recieved this error
Could not GET 'https://dl.bintray.com/kyrptonaught/customportalapi/net/kyrptonaught/customportalapi/0.11.3/customportalapi-0.11.3.pom'. Received status code 403 from server: Forbidden
Disable Gradle 'offline mode' and sync project
please note, my gradle is not offline
even when i put in the latest version i get the same error.
please assist
Crash report: https://gist.github.com/kwpugh/b483deba282078c629674a4b57597689
Looks like Mojang changed a class name.
By moving portals around, you can duplicate the portal frame blocks which, if the block is valuable like the diamond block used in the example, this can be a game-breaking exploit. Not only that, but by breaking the portal on the other side and dying, either with keep inventory on or by going back with another set of blocks and picking up the dropped block items, you can also get an infinite amount of the portal frame blocks this way. Is it possible that a feature to somehow prevent this can be added to the builder as an option? I would suggest that the option, when enabled, keeps the frames on each side synchronized and when breaking a frame block, it breaks on the other side too. This functionality might be too complex for this API, but if something can be done to fix this I think it would help prevent balance issues when portal frames are made out of a valuable block.
Not sure if its been implemented properly yet for flat portals but when going into the portal for the first time it generates a weird portal on the other end and if you go through that portal the game crashes with this. (Using the most recent commit of both The Aether and CustomPortalAPI)
java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at net.kyrptonaught.customportalapi.portal.linking.PortalLinkingStorage.getDestination(PortalLinkingStorage.java:50)
at net.kyrptonaught.customportalapi.util.CustomTeleporter.customTPTarget(CustomTeleporter.java:56)
at net.kyrptonaught.customportalapi.util.CustomTeleporter.TPToDim(CustomTeleporter.java:39)
at net.kyrptonaught.customportalapi.CustomPortalBlock.onEntityCollision(CustomPortalBlock.java:108)
at net.minecraft.block.AbstractBlock$AbstractBlockState.onEntityCollision(AbstractBlock.java:926)
at net.minecraft.entity.Entity.checkBlockCollision(Entity.java:1035)
at net.minecraft.entity.Entity.tryCheckBlockCollision(Entity.java:739)
at net.minecraft.entity.Entity.move(Entity.java:712)
at net.minecraft.entity.LivingEntity.applyMovementInput(LivingEntity.java:2244)
at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2189)
at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1591)
at net.minecraft.entity.LivingEntity.tickMovement(LivingEntity.java:2640)
at net.minecraft.entity.player.PlayerEntity.tickMovement(PlayerEntity.java:559)
at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2346)
at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:274)
at net.minecraft.server.network.ServerPlayerEntity.playerTick(ServerPlayerEntity.java:466)
at net.minecraft.server.network.ServerPlayNetworkHandler.tick(ServerPlayNetworkHandler.java:212)
at net.minecraft.network.ClientConnection.tick(ClientConnection.java:238)
at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo.java:183)
at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:902)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:831)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:96)
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:697)
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270)
at java.base/java.lang.Thread.run(Thread.java:831)
Hi, I'm using CPA with a mod that i made. Everything is working nicely except that the portal is always black no matter which color i use.
I create the world and the portal on the server side.
Am i doing it wrong or is this a bug?
I see in the latest commit that flat portals are possible now but using this i cant seem to activate the portal with a 5x5 obsidian portal with a flint and steel.
CustomPortalBuilder.beginPortal() .frameBlock(Blocks.OBSIDIAN) .destDimID(new Identifier("the_nether")) .tintColor(131,66,184) .flatPortal() .registerPortal();
I would like a portal that has a color that changes over time. This is a very specific implementation, so I don't expect it to be supported within the API, but since there is no getter and setter for PortalLink.colorId, it makes it difficult to add this via mixins and I either have to add a mixin for every client-side location it is accessed, or a client-side mixin to CustomPortalApiRegistry.getPortalLinkFromBase to set the colorId, which is not ideal. Java code conventions expect getters and setters rather than public properties as well, so it makes sense to add this in general.
Using your API on Intellij for my mod, I constantly have to temperarily delete ModMenu from your API (It regens on startup tho) is there anyway to have your API not include ModMenu? And if its absolutely necessary can you either atleast update ModMenu to the latest version in your Build.Gradle OR just make ModMenu not compile in your API? Thanks! And keep up the great work.
Note: If I JUST use the modmenu version that is compiled in your mod, the game crashes because the creator of modmenu has a system in place to crash your game on startup if you use an old version of modmenu
Hello,
I am using this mod pack: https://www.curseforge.com/minecraft/modpacks/medieval-minecraft-fabric/files/3384600
Which uses this Aether mod: https://www.curseforge.com/minecraft/mc-mods/aether
Whenever someone creates a portal to the aether, they appear at my (original) portal, and obviously, when re-entering the portal to come back to the overworld, they return at my home and not theirs.
I can provide a video if needed.
Hi, on latest beta45v2, the portal is placed on the roof of my nether like dimension.
I define the dim this way like the vanilla Nether:
{
"logical_height": 128,
"infiniburn": "minecraft:infiniburn_nether",
"effects": "minecraft:the_nether",
"ambient_light": 0.1,
"respawn_anchor_works": true,
"has_raids": false,
"min_y": 0,
"height": 256,
"natural": false,
"coordinate_scale": 8.0,
"piglin_safe": true,
"bed_works": false,
"fixed_time": 18000,
"has_skylight": false,
"has_ceiling": true,
"ultrawarm": true
}
if you put two portals in the exact same cords except for the y the portal in the other dimension won't connect to the new one. it works like this in both dimensions
Output from IntelliJ
https://gist.github.com/kwpugh/d8dbcc67699fc51a8dbe2d2a1588e242
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.