diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..d84a51a
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,47 @@
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+ validate:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get -y install libxml2-utils
+
+ - name: Validate against XSD schema
+ run: |
+ echo "::group::XSD Schema Validation"
+
+ # Run validation and capture output
+ if xmllint --noout --schema Servers.xsd Servers.xml 2>&1 | tee validation_output.txt; then
+ # Check if there were any validation errors in the output
+ if grep -q "Schemas validity error\|fails to validate" validation_output.txt; then
+ echo "Validation errors found, creating annotations..."
+ # Parse xmllint output and create annotations
+ while IFS= read -r line; do
+ if [[ $line == *"Servers.xml:"* && $line == *"Schemas validity error"* ]]; then
+ # Extract line number and error message
+ if [[ $line =~ Servers\.xml:([0-9]+): ]]; then
+ line_num="${BASH_REMATCH[1]}"
+ error_msg=$(echo "$line" | sed 's/.*Schemas validity error : //')
+ echo "::error file=Servers.xml,line=${line_num}::${error_msg}"
+ fi
+ fi
+ done < validation_output.txt
+ echo "::error file=Servers.xml::XSD validation failed - see annotations above"
+ echo "::endgroup::"
+ exit 1
+ else
+ echo "XSD validation passed"
+ echo "::endgroup::"
+ fi
+ else
+ echo "::error file=Servers.xml::XML parsing failed"
+ echo "::endgroup::"
+ exit 1
+ fi
diff --git a/.github/workflows/xmllint.yml b/.github/workflows/xmllint.yml
deleted file mode 100644
index 361cf4e..0000000
--- a/.github/workflows/xmllint.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-name: xmllint
-
-on: [push, pull_request]
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Install xmllint
- run: sudo apt-get -y install libxml2-utils
- - name: Check that Servers.xml at least parses cleanly
- run: |
- xmllint Servers.xml
diff --git a/Servers.xml b/Servers.xml
index 48387e5..cd674cf 100644
--- a/Servers.xml
+++ b/Servers.xml
@@ -56,7 +56,7 @@
df.drunkenfell.com
9000
PvE
-
+ Stable
http://www.drunkenfell.com
https://discord.gg/e365fBcuaB
@@ -80,7 +80,7 @@
serafino.ddns.net
9060
PvE
-
+ Stable
https://discord.gg/GHKk4ck
@@ -92,7 +92,7 @@
serafino.ddns.net
9070
PvP
-
+ Stable
https://discord.gg/GHKk4ck
@@ -104,7 +104,7 @@
levistras.acportalstorm.com
9000
PvE
-
+ Stable
https://discord.gg/TtkcWbv
@@ -127,7 +127,7 @@
ACE
thistlecrown.ddns.net
9000
- PVE
+ PvE
Stable
https://discord.gg/uhZ3hn7
@@ -199,7 +199,7 @@
ACE
www.asheron4fun.com
9050
- PVE
+ PvE
Stable
https://web.asheron4fun.com/
https://discord.gg/afnQNXj
@@ -212,7 +212,7 @@
asheronscall.hopto.org
9000
PvE
-
+ Stable
https://discord.gg/VSFtYXN3v7
@@ -247,7 +247,7 @@
ACE
morgentau.online
9000
- PVE
+ PvE
Development
https://forum.morgentau.online/
https://discord.gg/gJCYTr5fPU
@@ -464,7 +464,7 @@
ebontide.zapto.org
9000
PvP
-
+ Stable
https://discord.gg/r4b9yeNY
diff --git a/Servers.xsd b/Servers.xsd
new file mode 100644
index 0000000..533edc8
--- /dev/null
+++ b/Servers.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+