Hello,
I am in need of a custom Spigot plugin that enables users to have “per-player” worlds.
There are some options already out there, but none support 1.17, and this is urgent.
Here’s a run down of how the plugin should operate:
Upon running the command “/is get” if a player does not already have a world, a world is generated (async). Worlds should be a copy of a world file I already have— so every world will be identical. They should be named the trimmed version of the player’s UUID. If a player owns a world, or is a member, "/is get" should tell them they already have an island.
World owners can invite up to 10 players to their islands using “/is invite <player>” If the player doesn’t have a world, it will tell them “You need to create an island before being able to invite players.” If they do have an island, they can invite members who will get access to that world to build, break, etc. If the limit of 10 is reached: “You have reached the maximum number of co-op players.”
Users can join islands if they are invited using “/is join <player>“. If the user attempting to join already has an island, it will tell them “You already have an island. Delete your island before joining someone else.” Otherwise, the user will be added as a member.
Players can delete their worlds using “/is delete”. They will then have 15 seconds to type “/is delete confirm.” Only the world owner can delete the world. Any players in that world should be teleported to spawn (configurable world&x,y,z) and then the world should be unloaded and deleted off the server. If a user deletes their world, they can create a new one. Also, "/is delete <player>" should be runnable by players with "ppw.admin" to force-delete a player's island.
The command "/is home" should take the player to their last location in their world.
config.yml sample:
Some additional things the plugin would require:
Performance-optimized. I do not want all worlds loaded at the same time. Worlds should only be loaded if the world owner or member is online. The plugin should check if a world has had no members online for ten minutes and if so, it should unload the world. When a world member joins, the server should load the world (async).
If a player logs off in the world, and then rejoins, I'm not exactly sure how to handle that yet. The world would be unloaded, so where would they spawn? I would want them to spawn at their last location in their world, preferably, but not sure if that is possible.
There should be a config option to run commands when a user creates a world, for example:
(where %world% is the world-name).
Building, breaking, interacting, etc. should be disabled in a player's world unless obviously they are a member or own it.
PlaceholderAPI Support:
%ppw_hasworld% Returns "true" or "false" if the player owns or is a member of a world.
%ppw_members% Returns the number of team members (including owner) of a world.
If this is something you are confident you can do, contact me via Discord:
Landon#1718
Have a portfolio ready and a quote.
I am in need of a custom Spigot plugin that enables users to have “per-player” worlds.
There are some options already out there, but none support 1.17, and this is urgent.
Here’s a run down of how the plugin should operate:
Upon running the command “/is get” if a player does not already have a world, a world is generated (async). Worlds should be a copy of a world file I already have— so every world will be identical. They should be named the trimmed version of the player’s UUID. If a player owns a world, or is a member, "/is get" should tell them they already have an island.
World owners can invite up to 10 players to their islands using “/is invite <player>” If the player doesn’t have a world, it will tell them “You need to create an island before being able to invite players.” If they do have an island, they can invite members who will get access to that world to build, break, etc. If the limit of 10 is reached: “You have reached the maximum number of co-op players.”
Users can join islands if they are invited using “/is join <player>“. If the user attempting to join already has an island, it will tell them “You already have an island. Delete your island before joining someone else.” Otherwise, the user will be added as a member.
Players can delete their worlds using “/is delete”. They will then have 15 seconds to type “/is delete confirm.” Only the world owner can delete the world. Any players in that world should be teleported to spawn (configurable world&x,y,z) and then the world should be unloaded and deleted off the server. If a user deletes their world, they can create a new one. Also, "/is delete <player>" should be runnable by players with "ppw.admin" to force-delete a player's island.
The command "/is home" should take the player to their last location in their world.
config.yml sample:
Code:
worlds:
37e14826f9c14dbd82d43f27fec85875:
owner:
uuid: 37e14826-f9c1-4dbd-82d4-3f27fec85875
lastlocation:
x: -2917
y: 57
z: 3100
members:
0482e0a6-117e-41bd-8bb8-fbeadd65e91c:
lastlocation:
x: -2917
y: 57
z: 3100
40b4f355-4fc8-4ce8-ad70-1c77c741878b:
lastlocation:
x: -2917
y: 57
z: 3100
31db28c5-a340-44fe-a814-8ff9af88ed1b:
lastlocation:
x: -2917
y: 57
z: 3100
19f7c31e-b1d4-4032-a93d-18d3e47ae784:
lastlocation:
x: -2917
y: 57
z: 3100
Some additional things the plugin would require:
Performance-optimized. I do not want all worlds loaded at the same time. Worlds should only be loaded if the world owner or member is online. The plugin should check if a world has had no members online for ten minutes and if so, it should unload the world. When a world member joins, the server should load the world (async).
If a player logs off in the world, and then rejoins, I'm not exactly sure how to handle that yet. The world would be unloaded, so where would they spawn? I would want them to spawn at their last location in their world, preferably, but not sure if that is possible.
There should be a config option to run commands when a user creates a world, for example:
Code:
world_create_commands:
- tell %player% You created world named %world%
- wb set %world% 200
Building, breaking, interacting, etc. should be disabled in a player's world unless obviously they are a member or own it.
PlaceholderAPI Support:
%ppw_hasworld% Returns "true" or "false" if the player owns or is a member of a world.
%ppw_members% Returns the number of team members (including owner) of a world.
If this is something you are confident you can do, contact me via Discord:
Landon#1718
Have a portfolio ready and a quote.
- Type
- Requesting
Last edited:
