Skip to content

Commit

Permalink
handle username and XUID for ALLOW_LIST_USERS
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisw-dev committed Nov 2, 2023
1 parent 4631a42 commit 3515f76
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,12 @@ There are two ways to handle a whitelist:

The first is to set the `ALLOW_LIST` environment variable to true and map in an [allowlist.json](https://minecraft.wiki/w/Whitelist.json) file (previously known as "whitelist.json") that is custom-crafted to the container.

The other is to set the `ALLOW_LIST_USERS` environment variable to a comma-separated list of gamer tag usernames that should be allowed. The server will look up the names and add in the XUID to match the player.
The other is to set the `ALLOW_LIST_USERS` environment variable to a comma-separated list of gamer tag usernames and their corresponding XUIDs. Each username should be followed by its XUID, separated by a colon. The server will use these details to match the player.

There are various tools to look XUIDs up online and they are also printed to the log when a player joins the server.

```shell
-e ALLOW_LIST_USERS="player1,player2,player3"
-e ALLOW_LIST_USERS="player1:1234567890,player2:0987654321"
```

## Mods Addons
Expand Down
8 changes: 6 additions & 2 deletions bedrock-entry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,15 @@ if [[ -n "$OPS" || -n "$MEMBERS" || -n "$VISITORS" ]]; then
fi

if [[ -n "$ALLOW_LIST_USERS" || -n "$WHITE_LIST_USERS" ]]; then
allowListUsers=${ALLOW_LIST_USERS:-$WHITE_LIST_USERS}
allowListUsers=$(echo "${ALLOW_LIST_USERS:-$WHITE_LIST_USERS}" | tr -d '\n' | tr -d '\r')

if [[ "$allowListUsers" ]]; then
echo "Setting allow list"
jq -c -n --arg users "$allowListUsers" '$users | split(",") | map({"ignoresPlayerLimit":false,"name": .})' > "allowlist.json"
if [[ "$allowListUsers" != *":"* ]]; then
jq -c -n --arg users "$allowListUsers" '$users | split(",") | map({"ignoresPlayerLimit":false,"name": .})' > "allowlist.json"
else
jq -c -n --arg users "$allowListUsers" '$users | split(",") | map(split(":") | {"ignoresPlayerLimit":false,"name": .[0], "xuid": .[1]})' > "allowlist.json"
fi
# activate server property to enable list usage
ALLOW_LIST=true
else
Expand Down

0 comments on commit 3515f76

Please sign in to comment.