Comments (6)
If this is to have a creative world, and a survival world in the same server, wouldn't it make more sense to either remember the last used gametype per world, or going further and having the option to keep seperate userdata/inventory/falldamage/statistics per universe?
I've used multiverses gametype enforcing before and both allowing users to have an override permission allowing them to bring creative from creative to survival, or not having the override permission and suddenly dying as they teleport to their last known flying position in a survival world (due to being in creative in the survival world before going to the creative world) seem annoying.
from sponge.
We won't be keeping inventory/etc isolated per world. Remember we want to try and keep things mostly Vanilla gameplay.
With that said, having gamemode in the builder does complicate things. Namely cause it does break vanilla gameplay doesn't it.
@SpongePowered/developers thoughts?
from sponge.
If I understand correctly from reading the spongedocs, in sponge a world is a collection of dimensions, unlike Bukkit which relocated the dimensions into their own worlds?
So cross-dimension same world teleports is the "vanilla" behaviour and thus is why gamemode is preserved.
When is the players gamemode set in vanilla (without command intervention)? Is it a once off thing that gets remembered and maintained?
As far as I can see, the only difference a worlds gamemode makes, is what players who data is first generated gets assigned, changing the gamemode of the world (and not player) would just result in the player maintaining their original gamemode.
Also in singleplayer when a player changes worlds, it then loads the playerdata associated with that world. So bringing true multi-world support into servers means that inventories and everything would be separate by default? players teleport across dimensions, but join and leave worlds.
Don't make the same decisions that Bukkit did because it's what people are used to, just make it easy for people to restore that behaviour using the API.
from sponge.
In Sponge, each world has its own dimension and are treated as true worlds. The only reason why world and DIM1/-1 seem "linked" is cause of their portal targets.
As I mentioned above, we have to mostly keep vanilla functionality:
- We won't isolate inventory per world. Plugin can do this.
- Gamemode is tricky. In vanilla currently, you keep your gamemode.
So its probably better that we don't interfere here. If a plugin wants to isolate gamemode per world, we should let them do so.
from sponge.
Considering this is partially handled by data, during the event being thrown for someone transferring between worlds, this shouldn't be much of an issue from the implementation side.
That being said, I do believe it should be handled as vanilla deems fit, and plugins interacting with the player (setting game mode in the event) will take priority for obvious reasons.
from sponge.
Closing this as we follow what Vanilla does. Plugins can easily change the GameMode during events. I'll be removing it from the WorldBuilder.
from sponge.
Related Issues (20)
- Server Crash HOT 5
- Issue with world.Light and Schedule Task HOT 5
- Incorrect identification of the command executor on SpongeForge 1.19.4.
- Entities rendering incorrectly due to DataEntry value not updating
- Can't connect to the server HOT 1
- Can't import vanilla server to spongevanilla HOT 2
- Cannot cast to Sponge Biome
- The commands related to the scoreboard are broken!!! HOT 1
- Creating objective and setting display slot causes client error HOT 2
- ItemStackComparators.IGNORE_SIZE not working HOT 1
- SpongeForge server crashes with Aether mod installed HOT 1
- SpongeForge 1.16.5 Server Crash HOT 3
- Crash when saving game on 1.20.6 HOT 1
- ItemStack serialization/deserialization is broken HOT 1
- ClassCastException when querying inventory
- SpongeForge for Minecraft 1.20.1
- Plugin packs are incorrectly loaded
- can't enchant with SpongeVanilla 1.21 HOT 1
- ValueChangeEvent does not fire with CustomData
- ServerPlayer#setLocationAndRotation throws AbstractMethodError
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sponge.