A Minecraft server-side mod that adds various teleportation related commands
1# Teleport Commands <img alt="Teleport Commands Logo" src="https://raw.githubusercontent.com/MrSn0wy/TeleportCommands/main/common/src/main/resources/teleport_commands.png" width="30"/>
2
3A Minecraft server-side mod that adds various teleportation related commands, like /home /tpa and /back
4
5Here is the [Changelog](https://github.com/MrSn0wy/TeleportCommands/blob/main/CHANGELOG.md)
6
7> [!NOTE]
8> There is a Mirror of this repo on [Tangled](https://tangled.org)! A federated GitHub alternative based on [ATproto](https://en.wikipedia.org/wiki/AT_Protocol).
9>
10> You can visit it **[here](https://tangled.org/did:plc:5fbqdlfpahlht7gu4c6zrdpj/TeleportCommands)**. Stars, issues and pull requests are very welcome there!
11
12### Currently available commands:
13
14- `/worldspawn [<Disable Safety>]` - Teleports you to the world spawn (in the overworld), if given true it will not do safety checks
15- `/back [<Disable Safety>]` - Teleports you to the location where you last died, if given true it will not do safety checks
16<br><br>
17 **Homes are player specific locations that only that player can teleport to**
18- `/sethome <name>` - Creates a new home
19- `/home [<name>]` - Teleports you to the home, if no name is giving it will go to the default home
20- `/delhome <name>` - Deletes a home
21- `/renamehome <name> <newName>` - Renames a home
22- `/homes` - Shows a list of your homes
23- `/defaulthome <name>` - Sets the default home
24<br><br>
25 **Warps are op managed locations that all players can teleport to**
26- `/warp <name>` - Teleports you to the warp
27- `/warps` - Shows a list of the available warp
28- `/setwarp <name>` - Sets a warp. Permission level of 4 required (op)
29- `/delwarp <name>` - Deletes a warp. Permission level of 4 required (op)
30- `/renamewarp <name> <newName>` - Renames a warp. Permission level of 4 required (op)
31<br><br>
32 **With tpa you can teleport to other players or make them teleport to you**
33- `/tpa <player>` - Sends a tpa request to another player
34- `/tpahere <player>` - Sends a tpaHere request to another player
35- `/tpaaccept <player>` - Accepts the tpa/tpahere request of that player
36- `/tpadeny <player>` - Denies the tpa/tpaHere request of that player
37
38<br>
39
40### TODO:
41#### Planned commands:
42- [ ] `/wild` - Teleports you to a random location in the Overworld
43- [x] `/worldspawn` - Teleports you to the worldspawn
44- [ ] `/spawn <dimension>` - Teleports you to your spawnpoint in a dimension, defaults to your current dimension
45- [ ] `/previous` - Go to the last teleported location
46
47#### Improvements:
48- [ ] Look into changing the mod into the more safe and sane kotlin (I love java)
49- [ ] Add game tests
50- [ ] Find the easiest way to backport the mod to older version (help)
51- [ ] Create a config to add any delays and disable commands, with commands for operators in game
52- [ ] Add a perm system
53- [ ] Optimize the translation strings (They are getting out of hand)
54- [ ] Potentially setup a better translation system (Maybe I will self-host texterify)
55- [x] Find a way to combine the mod loader specific jars into one
56- [x] Json Storage automatic updater & cleaner
57- [x] Modify /back to check if the location is safe and automatically choose a nearby location that is safe
58- [x] Limit tpa requests for a player
59- [x] Add translation system
60- [x] Improve responses for commands
61- [x] Add Quilt support and NeoForge
62
63
64### Want to help?
651. You can create a translation file so other people can use the mod in their native language: [translations.md](./common/src/main/resources/assets/teleport_commands/lang/translations.md)
66
67
68### How to build
69#### Getting the correct environment
70If you are on nixos you can simply go into the folder of where you cloned the repo, and run `nix develop .`. This will give you the environment I use (apart from the IDE) :3.
71
72On any other linux distro try openjdk25.
73
74On windows probably go to the openjdk website and install the 25 version? idk goodluck.
75
76#### Building
77Then on linux just do `./gradlew build` and to make it in a single mod jar `./gradlew mergeJars`.
78
79Or on windows, just do `.\gradlew.bat build` and `.\gradlew.bat mergeJars`.
80Note that this isn't tested for windows, but I think that is how it works.
81
82#### Getting the jars
83Then you can find your jars in `fabric/build/libs/` (for fabric), `neoforge/build/libs/` (for neoforge) or `merged/build/libs/` (if you made the merged jar file).
84
85If you have any issues just make an issue or contact me on Discord `@mrsnowy_`
86
87### Notes
88Colors:
89- Green = When something succeeds and an action will happen
90- Aqua = When something needs attention
91- White = When something is done
92- Red = When something fails