diff --git a/.forgejo/actions/update_branch/action.yml b/.forgejo/actions/update_branch/action.yml new file mode 100644 index 0000000..4273335 --- /dev/null +++ b/.forgejo/actions/update_branch/action.yml @@ -0,0 +1,28 @@ +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 ce6e66d..6decff4 100644 --- a/.forgejo/workflows/geyser.yml +++ b/.forgejo/workflows/geyser.yml @@ -1,10 +1,26 @@ 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 @@ -15,45 +31,18 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - token: ${{ secrets.PIPELINE_TOKEN }} - - name: "Get LFS objects" - uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v3 + - name: "main" + uses: ./.forgejo/actions/update_branch with: - 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 + branch: "main" + token: ${{ secrets.PIPELINE_TOKEN }} + - name: "skynet" + uses: ./.forgejo/actions/update_branch + with: + branch: "skynet" + token: ${{ secrets.PIPELINE_TOKEN }} + - name: "anime_manga" + uses: ./.forgejo/actions/update_branch + with: + branch: "anime_manga" + token: ${{ secrets.PIPELINE_TOKEN }} diff --git a/.packwizignore b/.packwizignore index 591a7a4..746c876 100644 --- a/.packwizignore +++ b/.packwizignore @@ -1,13 +1,8 @@ -# No need to have anything outside teh packwiz files inside teh pack -/.forgejo +# DOnt add teh IDE's /.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 deleted file mode 100644 index 2d00aaa..0000000 --- a/docs/Admin_Ports.md +++ /dev/null @@ -1,29 +0,0 @@ -# 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 deleted file mode 100644 index 84e95bf..0000000 --- a/docs/Minecraft_Setup.md +++ /dev/null @@ -1,69 +0,0 @@ -# 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 deleted file mode 100644 index e5ace52..0000000 --- a/docs/Minecraft_Users.md +++ /dev/null @@ -1,21 +0,0 @@ -# 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 deleted file mode 100644 index f96cf38..0000000 --- a/docs/media/add_allocation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65145e8d9089d551162ce918919a16c93c2c685aa13cf344e393ebc9b52cdda8 -size 505 diff --git a/flake.nix b/flake.nix index e7da961..03733d8 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,7 @@ }; nixConfig = { + bash-prompt-suffix = "[Skynet Dev] "; extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo="; }; @@ -28,7 +29,6 @@ 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 6bb1d2b..1642e4b 100644 --- a/index.toml +++ b/index.toml @@ -1,5 +1,13 @@ 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" diff --git a/nix/packwiz.nix b/nix/packwiz.nix index de16856..93289fe 100644 --- a/nix/packwiz.nix +++ b/nix/packwiz.nix @@ -8,13 +8,13 @@ buildGoModule { pname = "packwiz"; - version = "0-unstable-2025-05-08"; + version = "0-unstable-2024-10-15"; src = fetchFromGitHub { owner = "Silver-Golden"; repo = "packwiz"; - rev = "7ae91a58dbec3b76ce0aaaf15aeba3118021a34f"; - sha256 = "sha256-3zUkePmVJTpU9+mkLyeqlZ1KNVDXNsFvoh8ifwXya1M="; + rev = "453264019e54eae69f495078b0f3fa073f071e73"; + sha256 = "sha256-x6Z8MLaacZFlRYOVkTU+ffYtCJu4FAB3I2W/uQITwns="; }; passthru.updateScript = unstableGitUpdater { }; diff --git a/pack.toml b/pack.toml index 9f8f38d..47d21df 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 = "8232fce7440db8e2f5f8be1a01d74cf04852e9f8a220f32803614b7a1cecc814" +hash = "47d471771ebad7b66101d002b55eeeab3d1ad8f863de649af12863e66cd8be92" [versions] minecraft = "1.21.5" @@ -13,4 +13,3 @@ 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"