Skip to content

Minecraft server plugin for managing permissions with World ID. Requires SpigotMC (or a fork) and LuckPerms.

License

Notifications You must be signed in to change notification settings

worldcoin/world-id-minecraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft World ID Server Plugin

A plugin for the spigot Minecraft server that can be used to grant users permissions when they verify with World ID. Intended to be used with LuckPerms.

Configuration

The plugin can be configured by editing the config.yml file in the plugins/WorldId directory of your Minecraft server. The following settings are available:

  • server-uuid: ""
    • A UUID to represent your server. One will be automatically set if you don't provide one. Don't change this after it's been initially set unless you want to allow all users to verify again.
  • orb-group-name: "humans"
    • The name of the LuckPerms group that will be granted to users who verify with World ID Orb. The Orb credential provides a very high level of assurance that the user is a human with only one account.
  • device-group-name: ""
    • The name of the LuckPerms group that will be granted to users who verify with World ID Device. World ID Lite verifies that a user has a unique mobile device, providing medium-strength bot protection that is still easy to use.
  • web-url: "https://minecraft.worldcoin.org"
    • The URL to use for the web interface where users will verify with World ID. You shouldn't change this unless you're running the web interface locally for development purposes.

Either orb-group-name or device-group-name must be set. If only orb-group-name is set, only users who are Orb-verified will be added to that group. If only device-group-name is set, users with either the Device or Orb credential will be added to that group.

Dev Quickstart

This project uses Maven for building. To build the plugin run the following command in the root directory of the project:

mvn package

To test the plugin we need a Minecraft server! Run a SpigotMC server (or one of its derivatives) locally -- this exercise is left to the reader. We recommend PaperMC, and you can find installation instructions here. Ensure you also install LuckPerms, and create a group for verified users. By default, this group is called humans. You can change this setting in the World ID plugin's config.yml file.

Build the plugin and copy the resulting jar file to the plugins folder of your server. Restart the server.

In the log produced by the server on the command line watch out for the following lines indicating that the plugin was deployed properly:

[22:48:13 INFO]: [World ID] Enabling WorldId v0.0.1
[22:48:13 INFO]: [World ID] Initialized the config.
[22:48:13 INFO]: [World ID] Plugin configured.
[22:48:13 INFO]: [World ID] Added the 'verify' command.
[22:48:13 INFO]: [World ID] Listening for player joins.

We also need to run the Web UI locally. Follow the instructions in the README to get it running.

Once it's up and running, ensure you set the web-url in {MC_SERVER_DIR}/plugins/WorldId/config.yml to the URL of the web server, typically http://localhost:3000.

Start the Minecraft client on your computer and connect to the local Minecraft server by specifying localhost as Server Address.

Open the command line in Minecraft (by pressing t) try the new command and see what happens:

/verify

Once you're done fiddling with the code don't forget to run mvn package, copy the resulting jar file to the plugins folder of your server, and restart the server.

About

Minecraft server plugin for managing permissions with World ID. Requires SpigotMC (or a fork) and LuckPerms.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages