diff --git a/.forgejo/actions/update_branch/action.yml b/.forgejo/actions/update_branch/action.yml deleted file mode 100644 index 4273335..0000000 --- a/.forgejo/actions/update_branch/action.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: 'Update_Geyser' -description: 'Updates Geyser for a specified branch' -inputs: - branch: # id of input - description: 'what branch to update' - required: true - default: 'main' - token: # id of input - description: 'Token needed to commit changes' - required: true -runs: - using: "composite" - permissions: - # Give the default GITHUB_TOKEN write permission to commit and push the - # added or changed files to the repository. - contents: write - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ inputs.branch }} - token: ${{ inputs.token }} - - run: nix run .#update_plugin -- update geyser - shell: bash - - uses: https://github.com/stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "Updated geyser for ${{ inputs.branch }}" - - run: git checkout main - shell: bash diff --git a/.forgejo/workflows/geyser.yml b/.forgejo/workflows/geyser.yml index 6decff4..ce6e66d 100644 --- a/.forgejo/workflows/geyser.yml +++ b/.forgejo/workflows/geyser.yml @@ -1,26 +1,10 @@ on: workflow_dispatch: - schedule: - cron: '0 0 * * *' -# using code from the nixos repo jobs: -# deploy_active: -# strategy: -# matrix: -# batch: [ active-core, active, active-ext ] -# runs-on: nix -# needs: [ deploy_dns ] -# steps: -# - uses: actions/checkout@v4 -# - run: colmena apply -v --on @${{ matrix.batch }} --show-trace -# shell: bash - update: -# strategy: -# matrix: -# branch: [ main, skynet, anime_manga ] runs-on: nix permissions: # Give the default GITHUB_TOKEN write permission to commit and push the @@ -31,18 +15,45 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: "main" - uses: ./.forgejo/actions/update_branch - with: - branch: "main" token: ${{ secrets.PIPELINE_TOKEN }} - - name: "skynet" - uses: ./.forgejo/actions/update_branch + - name: "Get LFS objects" + uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v3 with: - branch: "skynet" - token: ${{ secrets.PIPELINE_TOKEN }} - - name: "anime_manga" - uses: ./.forgejo/actions/update_branch - with: - branch: "anime_manga" - token: ${{ secrets.PIPELINE_TOKEN }} + repository: ${{ gitea.repository }} + ref_name: ${{ gitea.ref_name }} + - name: Get all LFS objects + run: | + # Pull in all objects for all branches + git lfs fetch --all + - name: setup git config + run: | + # setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default + git config user.name "Skynet" + git config user.email "<>" + - name: Update each branch + shell: bash + run: | + branches=() + eval "$(git for-each-ref --shell --format='branches+=(%(refname))' refs/remotes/origin/)" + for branch in "${branches[@]}"; do + # for debugging + echo "$branch" + if [ "$branch" == "refs/remotes/origin/HEAD" ]; then + continue + fi + + # need to convert "'refs/remotes/origin/main" to "main" + branch_local=$(echo "$branch" | awk -F'[\\\\/]' ' { print $4 }') + git switch $branch_local + git lfs pull + git status + nix run .#update_plugin -- update geyser + + ## these will only succeed if there are changes + git add --all || true + git commit -m "Updated geyser for $branch_local" || true + git push || true + done +# - uses: https://github.com/stefanzweifel/git-auto-commit-action@v5 +# with: +# commit_message: "Updated geyser for ${{ matrix.branch }}" \ No newline at end of file diff --git a/.packwizignore b/.packwizignore index 746c876..591a7a4 100644 --- a/.packwizignore +++ b/.packwizignore @@ -1,8 +1,13 @@ -# DOnt add teh IDE's +# No need to have anything outside teh packwiz files inside teh pack +/.forgejo /.idea +/docs +/nix + +.git* # dont add nix stuff flake.* -/nix +# Dont add documentation *.md diff --git a/docs/Admin_Ports.md b/docs/Admin_Ports.md new file mode 100644 index 0000000..2d00aaa --- /dev/null +++ b/docs/Admin_Ports.md @@ -0,0 +1,29 @@ +# Ports allocated + +## Minecraft +Ports are grouped together like so: +* 255XY - Java Port + * TCP +* 244XY - Voice Chat port + * UDP +* 233XY - Bedrock Port + * UDP + +| XY | Society | Bot | +|----|----------|-----| +| 18 | Computer | Y | +| 19 | Computer | Y | +| 20 | | | +| 21 | Games | | +| 22 | PhilDeb | | +| 23 | Anime | Y | +| 24 | | | +| 25 | | | + + +## Steam +This covers games like TF2 and CSGO. +Currently just for Compsoc + +* 27015 +* 27020 diff --git a/docs/Minecraft_Setup.md b/docs/Minecraft_Setup.md new file mode 100644 index 0000000..84e95bf --- /dev/null +++ b/docs/Minecraft_Setup.md @@ -0,0 +1,69 @@ +# Server Setup + +## Requirements + +### Ports +* 255XY - Java Port +* 244XY - Voice Chat port +* 233XY - Bedrock Port + +## Setup + +### Config +1. In [this repo][config_01] create a new branch for the club/soc who wants the server. +2. Push this branch to Forgejo. + +[config_01]: https://forgejo.skynet.ie/Skynet/minecraft_plugins_v2 + +### Server +1. In the admin panel create a new server. [link][setup_01] +2. ``Information`` + * ``Primary Allocation`` + * You will need to create allocations for both ports using the add allocation button + ![add_allocation.png][setup_02] + * Add allocations for all 3 ports ``255XY``/``244XY``/``233XY`` + * ``Owner`` + * If the Club/Soc already has an account then use that + * Else use the plus: + ![add_allocation.png][setup_02] + To create a new account for them. + * ``username`` - This should be the Club/Soc as lowercase. + Check with Admin if they already have a Skynet account, if they have then use that. + * ``email`` - use ``$username@skynet.ie`` or ``$username@ulwolves.ie`` + Do not use any other email. +3. ``Egg Configuration`` + * For the egg choose ``mcsleepingserverstarter-Packwiz-Purpur-Geyser-Floodgate``. + * For ``{{PACKWIZ_URL}}`` it is ``https://forgejo.skynet.ie/Skynet/minecraft_plugins_v2/raw/branch/$BRANCHNAME/pack.toml``. + * ``$BRANCHNAME`` is the name of the branch as done in [Config](#config). +4. Move onto ``Environment Configuration`` + * Memory give it about ``6144`` MB or so. + * Swap Memory give it about ``1024`` + * ``Feature Limits`` give one or two backups. + +[setup_01]: https://panel.games.skynet.ie/admin/servers/create +[setup_02]: media/add_allocation.png + +### Minecraft +Now in the panel ye need to modify some files. +If an option is not already in teh file then create it. + +1. ``server.properties`` + * ``enforce-secure-profile=false`` - This allows bedrock players to talk in text chat +2. ``sleepingSettings.yml`` + * See the [Github repo][minecraft_01] for full config details + * ``serverName`` - This is what gets shown on users server listings when teh server is sleeping. + ``GSoc, connect to wake up then reconnect in a min`` is what is on teh GSoc one, + * ``serverPort`` - Use the Java port ``255XY`` + * ``bedrockPort`` - Use the Bedrock port ``233XY`` +3. ``plugins/Geyser-Spigot/config.yml`` + * ``bedrock.port`` - Use the Bedrock port ``233XY`` +4. ``plugins/voicechat/voicechat-server.properties`` + * ``port`` - Use the Voice port ``244XY`` + +[minecraft_01]: https://github.com/vincss/mcsleepingserverstarter + +### DNS +An entry needs to be added to the [Forgejo DNS Config][dns_01] in the form of ``minecraft.$NAME``. +Where ``$NAME`` is the name of teh club/soc, lowercase. + +[dns_01]: https://forgejo.skynet.ie/Skynet/nixos/src/branch/main/applications/games/minecraft.nix#L27 \ No newline at end of file diff --git a/docs/Minecraft_Users.md b/docs/Minecraft_Users.md new file mode 100644 index 0000000..e5ace52 --- /dev/null +++ b/docs/Minecraft_Users.md @@ -0,0 +1,21 @@ +# Minecraft - Users + +## Discord Bot +If the Club/Soc uses the Skynet Discord bot then you will need to add your username to it. +Instructions can be found here: [link][users_04] + +## Java +* Connect via ``minecraft.$NAME.games.skynet.ie`` +* If you want to use voice chat install it locally + * [Modrinth][users_02] + * [Wiki][users_03] (Has more detailed install instructions) + +## Bedrock +* Connect via ``minecraft.$NAME.games.skynet.ie`` + * Port is ``233XY`` +* Bedrock users need to [link][users_01] their account to join the server + +[users_01]: https://link.geysermc.org/method/online +[users_02]: https://modrinth.com/plugin/simple-voice-chat +[users_03]: https://modrepo.de/minecraft/voicechat/wiki/installation +[users_04]: https://forgejo.skynet.ie/Skynet/discord-bot/src/branch/main/doc/User.md#minecraft \ No newline at end of file diff --git a/docs/media/add_allocation.png b/docs/media/add_allocation.png new file mode 100644 index 0000000..f96cf38 --- /dev/null +++ b/docs/media/add_allocation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65145e8d9089d551162ce918919a16c93c2c685aa13cf344e393ebc9b52cdda8 +size 505 diff --git a/flake.nix b/flake.nix index 03733d8..e7da961 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,6 @@ }; nixConfig = { - bash-prompt-suffix = "[Skynet Dev] "; extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo="; }; @@ -29,6 +28,7 @@ devShells.default = pkgs.mkShell { name = "Skynet Mod env"; packages = packages_local; + shellHook = "export PS1='[Skynet Dev] '"; }; packages = { diff --git a/index.toml b/index.toml index f55d256..6bb1d2b 100644 --- a/index.toml +++ b/index.toml @@ -1,13 +1,5 @@ hash-format = "sha256" -[[files]] -file = ".forgejo/actions/update_branch/action.yml" -hash = "d766aa4529c72ab0b451e518367bd8b58126697181670248397b13db6ab16cb2" - -[[files]] -file = ".forgejo/workflows/geyser.yml" -hash = "552840ea9426de23a692cd4f0dabef497acff0918d9fac9c074ad7a328cb2df5" - [[files]] file = "plugins/essentialsx-discord.pw.toml" hash = "3980e4f0ba4095425a76680031b9c469eda86845879160c34679d626b531c776" @@ -25,7 +17,7 @@ metafile = true [[files]] file = "plugins/geyser.pw.toml" -hash = "7dce743e21119b286b2014756451e7e860ef4a9d06d708eb449e835df5d54f2f" +hash = "cfcebc4e44d75a227f46216b100437fb3d1dc786b10c6e517790f6aca2cbcff3" metafile = true [[files]] diff --git a/nix/packwiz.nix b/nix/packwiz.nix index 93289fe..de16856 100644 --- a/nix/packwiz.nix +++ b/nix/packwiz.nix @@ -8,13 +8,13 @@ buildGoModule { pname = "packwiz"; - version = "0-unstable-2024-10-15"; + version = "0-unstable-2025-05-08"; src = fetchFromGitHub { owner = "Silver-Golden"; repo = "packwiz"; - rev = "453264019e54eae69f495078b0f3fa073f071e73"; - sha256 = "sha256-x6Z8MLaacZFlRYOVkTU+ffYtCJu4FAB3I2W/uQITwns="; + rev = "7ae91a58dbec3b76ce0aaaf15aeba3118021a34f"; + sha256 = "sha256-3zUkePmVJTpU9+mkLyeqlZ1KNVDXNsFvoh8ifwXya1M="; }; passthru.updateScript = unstableGitUpdater { }; diff --git a/pack.toml b/pack.toml index 6503036..9f8f38d 100644 --- a/pack.toml +++ b/pack.toml @@ -5,7 +5,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "93853b87fdbba621190f0cbacbcee0475f153c3d9eb744a8c2d0c2c4bfad4556" +hash = "8232fce7440db8e2f5f8be1a01d74cf04852e9f8a220f32803614b7a1cecc814" [versions] minecraft = "1.21.5" @@ -13,3 +13,4 @@ purpur = "2428" [options] acceptable-game-versions = ["1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4", "1.21.5"] +datapack-folder = "plugins" diff --git a/plugins/geyser.pw.toml b/plugins/geyser.pw.toml index ef58728..6824b5b 100644 --- a/plugins/geyser.pw.toml +++ b/plugins/geyser.pw.toml @@ -3,11 +3,11 @@ filename = "Geyser-Spigot.jar" side = "server" [download] -url = "https://cdn.modrinth.com/data/wKkoqHrH/versions/xIN8Ujrm/Geyser-Spigot.jar" +url = "https://cdn.modrinth.com/data/wKkoqHrH/versions/29cMfxqV/Geyser-Spigot.jar" hash-format = "sha512" -hash = "6ac40376aa5603e1a8de7c4fe39fe4925c76e26b1a66a1a9db43995542195d620c7adf1079ba75c7205d9f62ab16f3897fca3da0c7fa6ad18fab63a6ac2a6304" +hash = "e2b7d92bda3c4ef0f61027ed321816b9d8a88d4c60ab38279caa36c776f767588260fed4f3de183ec518a764695552e2cb7d6165c55f7c2c8a655f97a3109c4c" [update] [update.modrinth] mod-id = "wKkoqHrH" -version = "xIN8Ujrm" +version = "29cMfxqV"