From 8c21f69210d8f4da129984da983d3936d50fa7a0 Mon Sep 17 00:00:00 2001 From: GamingOP69 Date: Wed, 19 Aug 2026 23:06:02 +0545 Subject: [PATCH 1/3] chore: modernize GitHub Actions workflows, add .gitattributes, and update README patch list --- .gitattributes | 31 +++++++++++++++++ .github/workflows/pull-request-build.yml | 17 +++++++--- .../workflows/windspigot-build-and-upload.yml | 34 +++++++++++-------- README.md | 24 ++++++++++++- 4 files changed, 85 insertions(+), 21 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..6b8570b21 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,31 @@ +# Auto detect text files and perform LF normalization +* text=auto eol=lf + +# Source Code +*.java text diff=java eol=lf +*.xml text eol=lf +*.yml text eol=lf +*.yaml text eol=lf +*.json text eol=lf +*.md text eol=lf +*.txt text eol=lf +*.properties text eol=lf +*.sh text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf + +# Git files +.gitignore text eol=lf +.gitattributes text eol=lf + +# Binary files +*.jar binary +*.class binary +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.ico binary +*.zip binary +*.tar.gz binary +*.exe binary diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index fa6280eb8..641690efb 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -2,20 +2,27 @@ name: WindSpigot PR Build on: pull_request: + paths-ignore: + - '**.md' + - '.gitattributes' + - '.gitignore' + workflow_dispatch: jobs: cleanup-and-build: + name: Verify PR Build & Tests runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[skip]')" steps: - - uses: actions/checkout@v3 + - name: Checkout Repository + uses: actions/checkout@v5 + - name: Set up JDK 18.0.1 - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 18.0.1 - server-id: github + java-version: '18.0.1' cache: 'maven' - name: Build with Maven - run: mvn clean package --file pom.xml + run: mvn clean package --batch-mode --file pom.xml diff --git a/.github/workflows/windspigot-build-and-upload.yml b/.github/workflows/windspigot-build-and-upload.yml index 450fbbce2..d2d6c1f24 100644 --- a/.github/workflows/windspigot-build-and-upload.yml +++ b/.github/workflows/windspigot-build-and-upload.yml @@ -2,41 +2,45 @@ name: WindSpigot Build and Upload on: push: + branches: + - master + paths-ignore: + - '**.md' + - '.gitattributes' + - '.gitignore' + workflow_dispatch: jobs: build-and-upload: + name: Build & Publish Artifacts runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[skip]')" steps: - - uses: actions/checkout@v4 + - name: Checkout Repository + uses: actions/checkout@v5 - name: Set up JDK 18.0.1 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 18.0.1 - server-id: github + java-version: '18.0.1' cache: 'maven' - - - name: Cache local Maven repository - uses: actions/cache@v4 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - + - name: Build with Maven - run: mvn package --file pom.xml - + run: mvn clean package --batch-mode --file pom.xml + - name: Upload Server Artifact uses: actions/upload-artifact@v4 with: name: WindSpigot-server path: WindSpigot-Server/target/WindSpigot.jar + if-no-files-found: error + retention-days: 30 - name: Upload API Artifact uses: actions/upload-artifact@v4 with: name: WindSpigot-API path: WindSpigot-API/target/WindSpigot-API.jar + if-no-files-found: error + retention-days: 30 diff --git a/README.md b/README.md index 503be7a5a..5dc0a52a3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# WindSpigot [![GitHub Workflow Status](https://github.com/Wind-Development/WindSpigot/actions/workflows/windspigot-build-and-upload.yml/badge.svg)](https://nightly.link/Wind-Development/WindSpigot/workflows/windspigot-build-and-upload/master/WindSpigot-server.zip) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/3c5ee8d2ef324d23ab085d89139ea0e7)](https://www.codacy.com/gh/Wind-Development/WindSpigot/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Wind-Development/WindSpigot&utm_campaign=Badge_Grade) [![Discord](https://img.shields.io/discord/1318787858768597042?label=discord)](https://discord.gg/hqbJvQZpV2) +# WindSpigot [![GitHub Workflow Status](https://github.com/Wind-Development/WindSpigot/actions/workflows/windspigot-build-and-upload.yml/badge.svg)](https://nightly.link/Wind-Development/WindSpigot/workflows/windspigot-build-and-upload/master/WindSpigot-server.zip) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/3c5ee8d2ef324d23ab085d89139ea0e7)](https://www.codacy.com/gh/Wind-Development/WindSpigot/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Wind-Development/WindSpigot&utm_campaign=Badge_Grade) [![Discord](https://img.shields.io/discord/1318787858768597042?label=discord)](https://discord.gg/hqbJvQZpV2) ##### WindSpigot is a 1.8.8 Minecraft server software focused on improving overall server performance and pvp mechanics based on a **[fork of NachoSpigot](https://github.com/Argarian-Network/NachoSpigot/tree/async-entity-tracker)**. @@ -41,6 +41,28 @@ See the patches list below. [WindSpigot-0016] Configurable weather changes [WindSpigot-0017] Configurable fishing rod speed multiplier +<--> by GamingOP69 +[WindSpigot-0018] Fix fireball and explosion knockback vector direction calculation (dynamic radius scaling) +[WindSpigot-0019] Fix NetworkManager flush cross-thread event loop submission and compression lookup +[WindSpigot-0020] Fix WorldTickManager lifecycle and dynamic world unload memory leaks +[WindSpigot-0021] Fix AsyncEntityTracker exception safety and deadlock prevention (try-finally latch countdown) +[WindSpigot-0022] Fix EntityTrackerEntry visibility rates (remove 5s tracking lag) +[WindSpigot-0023] Fix SpawnerCreature mob cap calculation and spectator check +[WindSpigot-0024] Fix TCPShield and PlayerHandshakeEvent null safety +[WindSpigot-0025] Validate block placement coordinates and direction in PlayerConnection +[WindSpigot-0026] Fix MinecraftServer process queue polling race and exception safety +[WindSpigot-0027] Optimize PlayerMap spatial lookups with Long2ObjectOpenHashMap and fix move() NPE +[WindSpigot-0028] Eliminate lambda allocations in ConcurrentIntHashMap +[WindSpigot-0029] Fix async pathfinding isSearching reset in SearchHandler (recovery on rejected tasks) +[WindSpigot-0030] Fix Java 9-25 version parsing in CustomTimingsHandler +[WindSpigot-0031] Fix CombatThread NPE race and Spigot404Write per-instance packet queues +[WindSpigot-0032] Fix LagCompensator multi-threaded data race between Netty IO and main thread +[WindSpigot-0033] Thread-safe double-checked locking for LazyInitVar and safe ServerConnection shutdown +[WindSpigot-0034] Thread-safe synchronized explosion density cache for async TNT calculations +[WindSpigot-0035] Exception-safe queued packet flushing in PlayerConnection +[WindSpigot-0036] AntiCrash custom payload serializer null safety +[WindSpigot-0037] Auto-patch legacy Citizens EmptyChannel for Netty 4.1 compatibility + [PandaSpigot-0115] Break up and make tab spam limits configurable [PandaSpigot-0072] Fix Bugs with Spigot Mob Spawn Logic [PandaSpigot-0105] Fix SPIGOT-2622: Only one player receiving the server shutdown message From 69c4f4e4f1dc69ab21efffe20c0c1e7e90aa4bf8 Mon Sep 17 00:00:00 2001 From: GamingOP69 Date: Sat, 22 Aug 2026 15:40:00 +0545 Subject: [PATCH 2/3] ci: set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 to resolve actions/upload-artifact deprecation warning --- .github/workflows/pull-request-build.yml | 3 +++ .github/workflows/windspigot-build-and-upload.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index 641690efb..0d12127cd 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -8,6 +8,9 @@ on: - '.gitignore' workflow_dispatch: +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: cleanup-and-build: name: Verify PR Build & Tests diff --git a/.github/workflows/windspigot-build-and-upload.yml b/.github/workflows/windspigot-build-and-upload.yml index d2d6c1f24..9af4c53fc 100644 --- a/.github/workflows/windspigot-build-and-upload.yml +++ b/.github/workflows/windspigot-build-and-upload.yml @@ -10,6 +10,9 @@ on: - '.gitignore' workflow_dispatch: +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: build-and-upload: name: Build & Publish Artifacts From ae5d6672fd7fe28fb669aa1584ca62c0b02635e1 Mon Sep 17 00:00:00 2001 From: GamingOP69 Date: Sat, 22 Aug 2026 15:44:43 +0545 Subject: [PATCH 3/3] ci: upgrade actions/upload-artifact to @v6 for native Node.js 24 runtime --- .github/workflows/pull-request-build.yml | 3 --- .github/workflows/windspigot-build-and-upload.yml | 7 ++----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index 0d12127cd..641690efb 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -8,9 +8,6 @@ on: - '.gitignore' workflow_dispatch: -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: cleanup-and-build: name: Verify PR Build & Tests diff --git a/.github/workflows/windspigot-build-and-upload.yml b/.github/workflows/windspigot-build-and-upload.yml index 9af4c53fc..24440f576 100644 --- a/.github/workflows/windspigot-build-and-upload.yml +++ b/.github/workflows/windspigot-build-and-upload.yml @@ -10,9 +10,6 @@ on: - '.gitignore' workflow_dispatch: -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: build-and-upload: name: Build & Publish Artifacts @@ -33,7 +30,7 @@ jobs: run: mvn clean package --batch-mode --file pom.xml - name: Upload Server Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: WindSpigot-server path: WindSpigot-Server/target/WindSpigot.jar @@ -41,7 +38,7 @@ jobs: retention-days: 30 - name: Upload API Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: WindSpigot-API path: WindSpigot-API/target/WindSpigot-API.jar