Compare commits

..

No commits in common. "main" and "main" have entirely different histories.
main ... main

142 changed files with 21 additions and 3852 deletions

4
.gitignore vendored
View File

@ -1,5 +1 @@
/data
/squaremap/data
/squaremap/web
/squaremap/locale
.DS_Store

View File

@ -1,72 +1,4 @@
# NEW MC Server - Powered by Garde Studios
## Development
Testing WebHook
### (Prerequisite) Install Docker
Go to the Website [docker.com](https://www.docker.com/) and download the Docker Desktop Version for you're Operating System.
In case you're using Linux find a guide on the internet. For RHEL/Fedora/CentOS/Rocky Linux the setup process is as follows:
```bash
sudo dnf check-update # Update System
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # Add the docker repo to dnf
sudo dnf install docker-ce docker-ce-cli containerd.io -y # Install docker engine
sudo systemctl start docker # start docker deamon
sudo systemctl enable docker # enable docker deamon on startup
sudo usermod -aG docker $(whoami) # elevate user to use docker cmd
```
### Starting the Server
> [!WARNING]
> Make sure you first configure the `docker-compose.yml` under the `environment` section to use the appropiate ammount of RAM youre system can provide.
> 16GB isn't sensible in most development/testing environments
Start a Terminal or use Docker Desktop
> [!NOTE]
> The first Startup creates the whole infrastructure behind the project and can take up some time.
> Make sure you grab some 0xCOFFE :)
#### Using Docker CLI
cd into the repo.
Start the Server:
```bash
docker compose up
```
To close it just use `ctrl+c`.
Deamon Mode:
```bash
docker compose up -d
```
To hook into the servers logs use:
```bash
docker logs <container-name>
```
Killing the server is done in two ways.
Either by killing it directly:
```bash
docker kill <container-name>
```
Or by hooking against the compose file:
```bash
docker compose down
```
## Architecture
![](assets/Architecture-Overview.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@ -1,162 +0,0 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0" version="24.7.12">
<diagram name="Page-1" id="ngFJ-PK3nhXtL8uodcvB">
<mxGraphModel dx="1394" dy="739" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="rkxtWGMJMKr7dUVkmx0B-43" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="30" y="150" width="660" height="225" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-8" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-43" vertex="1" connectable="0">
<mxGeometry x="490" y="20" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-4" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" parent="rkxtWGMJMKr7dUVkmx0B-8" vertex="1">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-7" value="cloud.cyperpunk.de" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-8" vertex="1">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-10" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-43" vertex="1" connectable="0">
<mxGeometry x="230" y="145" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-6" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" parent="rkxtWGMJMKr7dUVkmx0B-10" vertex="1">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-9" value="garde-studios.de" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-10" vertex="1">
<mxGeometry x="-20" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;shape=link;" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-4" target="rkxtWGMJMKr7dUVkmx0B-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-21" value="Main Connection" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="rkxtWGMJMKr7dUVkmx0B-13" vertex="1" connectable="0">
<mxGeometry x="0.0358" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-30" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.57;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-6" target="rkxtWGMJMKr7dUVkmx0B-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-18" value="Authenticates User" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="rkxtWGMJMKr7dUVkmx0B-14" vertex="1" connectable="0">
<mxGeometry x="-0.155" relative="1" as="geometry">
<mxPoint x="17" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-16" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-43" vertex="1" connectable="0">
<mxGeometry x="400" y="140" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-2" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.gateway" parent="rkxtWGMJMKr7dUVkmx0B-16" vertex="1">
<mxGeometry x="5" y="35" width="50" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-15" value="Proxy" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-16" vertex="1">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-22" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-43" vertex="1" connectable="0">
<mxGeometry x="230" y="20" width="100" height="80" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-23" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application_server2" parent="rkxtWGMJMKr7dUVkmx0B-22" vertex="1">
<mxGeometry x="8.5" y="30" width="43" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-24" value="garde-studios&lt;span style=&quot;background-color: initial;&quot;&gt;.de&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-22" vertex="1">
<mxGeometry x="-20" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.57;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;shape=link;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-23" target="rkxtWGMJMKr7dUVkmx0B-2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="430" y="120" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="75" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-26" value="Fallback to Limbo Server" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="rkxtWGMJMKr7dUVkmx0B-25" vertex="1" connectable="0">
<mxGeometry x="-0.1838" y="-1" relative="1" as="geometry">
<mxPoint x="-22" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-41" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-43" vertex="1" connectable="0">
<mxGeometry width="180" height="175" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-29" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-41" vertex="1" connectable="0">
<mxGeometry width="60" height="64" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-27" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application" parent="rkxtWGMJMKr7dUVkmx0B-29" vertex="1">
<mxGeometry x="5" y="30" width="50" height="34" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-28" value="Grafana" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-29" vertex="1">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-33" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-41" vertex="1" connectable="0">
<mxGeometry x="120" width="60" height="64" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-34" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.application" parent="rkxtWGMJMKr7dUVkmx0B-33" vertex="1">
<mxGeometry x="5" y="30" width="50" height="34" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-35" value="Squaremap" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-33" vertex="1">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-36" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-41" vertex="1" connectable="0">
<mxGeometry x="60" y="90" width="60" height="85" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-37" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.gateway" parent="rkxtWGMJMKr7dUVkmx0B-36" vertex="1">
<mxGeometry x="5" y="35" width="50" height="50" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-38" value="NGINX" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-36" vertex="1">
<mxGeometry width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-41" source="rkxtWGMJMKr7dUVkmx0B-37" target="rkxtWGMJMKr7dUVkmx0B-34" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-41" source="rkxtWGMJMKr7dUVkmx0B-37" target="rkxtWGMJMKr7dUVkmx0B-27" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-43" source="rkxtWGMJMKr7dUVkmx0B-6" target="rkxtWGMJMKr7dUVkmx0B-37" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-59" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="180" y="448" width="220" height="204" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-48" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-59" vertex="1" connectable="0">
<mxGeometry y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-44" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" parent="rkxtWGMJMKr7dUVkmx0B-48" vertex="1">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-47" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-48" vertex="1">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-49" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-59" vertex="1" connectable="0">
<mxGeometry x="80" y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-50" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" parent="rkxtWGMJMKr7dUVkmx0B-49" vertex="1">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-51" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-49" vertex="1">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-52" value="" style="group" parent="rkxtWGMJMKr7dUVkmx0B-59" vertex="1" connectable="0">
<mxGeometry x="160" y="130" width="60" height="74" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-53" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.direct_access_feature" parent="rkxtWGMJMKr7dUVkmx0B-52" vertex="1">
<mxGeometry x="5" width="50" height="44" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-54" value="MC Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="rkxtWGMJMKr7dUVkmx0B-52" vertex="1">
<mxGeometry y="44" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-55" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.mscae.enterprise.internet" parent="rkxtWGMJMKr7dUVkmx0B-59" vertex="1">
<mxGeometry x="52.74000000000001" width="114.52" height="71" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-50" target="rkxtWGMJMKr7dUVkmx0B-55" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.14;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-44" target="rkxtWGMJMKr7dUVkmx0B-55" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.61;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.87;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="rkxtWGMJMKr7dUVkmx0B-59" source="rkxtWGMJMKr7dUVkmx0B-53" target="rkxtWGMJMKr7dUVkmx0B-55" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="rkxtWGMJMKr7dUVkmx0B-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0.03;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;shape=link;" parent="1" source="rkxtWGMJMKr7dUVkmx0B-55" target="rkxtWGMJMKr7dUVkmx0B-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,4 +1,4 @@
hackOnlineMode = true
hackEarlySend = false
hackMessageChain = true
secret = "bGAJSlLeA4Wf"
secret = "CMhgx3vF17Nu"

View File

@ -0,0 +1,3 @@
server-port: 25585
update-interval: 1000
use-spark: true

View File

@ -1,2 +0,0 @@
include:
- ../main/compose.yml

View File

@ -1,4 +0,0 @@
include:
- ../proxy/velocity/compose.yml
- ../fallback/compose.yml
- ../monitoring/compose.yml

View File

@ -1 +0,0 @@
/dev-proxy/proxy-data

View File

@ -1,39 +0,0 @@
# Development Build
> [!NOTE]
> This setup is only for testing purposes.
> It is unsafe to use as a production build.
## Prerequisits
1. Check if `docker` & `docker compose` are installed correctly
2. Open 3 Terminal Windows (Or 2 depends on)
3. Change the ip in `velocity.toml` (Line 75 & 76) to your local ip (This gets reworked in the Future)
## To Do
- [ ] Build system for the whole dev stack
- [ ] Networking between Containers
## Handling the stack
1. Start Dev Proxy
```bash
docker compose -f dev-proxy/proxy-compose.yml up
```
2. Start Dev Fallback
```bash
docker compose -f fallback-compose.yml up
```
3. Start Dev Main
```bash
docker compose -f main-compose.yml up
```
4. Start Minecraft with Version 1.21.1 (Fabric highly preferred)
5. Add Server -> Server Address -> `localhost`
6. Connect

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -1,16 +0,0 @@
services:
proxy:
container_name: dev_proxy
image: itzg/mc-proxy
environment:
TYPE: VELOCITY
DEBUG: true
VELOCITY_VERSION: latest
VELOCITY_BUILD_ID: 450
volumes:
- ./dev-server.png:/server/server-icon.png
- ./velocity.toml:/config/velocity.toml
- ../../proxy/velocity/forwarding.secret:/config/forwarding.secret:ro
- ./proxy-data:/server
ports:
- 25565:25565

View File

@ -1,159 +0,0 @@
# Config version. Do not change this
config-version = "2.7"
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25565.
bind = "0.0.0.0:25565"
# What should be the MOTD? This gets displayed when the player adds your server to
# their server list. Only MiniMessage format is accepted.
motd = "<dark_purple>Garde Studios</dark_purple> <red>DEVELOPMENT BUILD</red>"
# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 5
# Should we authenticate players with Mojang? By default, this is on.
online-mode = true
# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = true
# If client's ISP/AS sent from this proxy is different from the one from Mojang's
# authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection.
prevent-client-proxy-connections = false
# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none": No forwarding will be done. All players will appear to be connecting
# from the proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
# if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
# plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
# unable to implement network level firewalling (on a shared host).
# - "modern": Forward player IPs and UUIDs as part of the login process using
# Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "modern"
# If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"
# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
#
# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
# instead for a nicer display in the server list.
announce-forge = false
# If enabled (default is false) and the proxy is in online mode, Velocity will kick
# any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false
# Should Velocity pass server list ping requests to a backend server?
# Available options:
# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
# will determine the initial server list ping response.
# - "mods": Passes only the mod list from your backend server into the response.
# The first server in your try list (or forced host) with a mod list will be
# used. If no backend servers can be contacted, Velocity won't display any
# mod information.
# - "description": Uses the description and mod list from the backend server. The first
# server in the try (or forced host) list that responds is used for the
# description and mod list.
# - "all": Uses the backend server's response as the proxy response. The Velocity
# configuration is used if no servers could be contacted.
ping-passthrough = "DISABLED"
# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true
[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
main = "192.168.2.40:30000"
fallback = "192.168.2.40:30001"
# In what order we should try servers when a player logs in or is kicked from a server.
try = [
"main",
"fallback"
]
[forced-hosts]
# Configure your forced hosts here.
"cloud.cyperpunk.de" = [
"main"
]
"garde-studios.de" = [
"fallback"
]
[advanced]
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256
# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1
# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000
# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000
# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000
# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
# don't enable it.
haproxy-protocol = false
# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
tcp-fast-open = false
# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true
# Shows ping requests to the proxy from clients.
show-ping-requests = false
# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
# loses connection to the server without an explicit disconnect message by attempting to fall the
# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
# can disable this setting to use the BungeeCord behavior.
failover-on-unexpected-server-disconnect = true
# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true
# Enables the logging of commands
log-command-executions = true
# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true
# Allows players transferred from other hosts via the
# Transfer packet (Minecraft 1.20.5) to be received.
accepts-transfers = false
[query]
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = true
# If query is enabled, on what port should the query protocol listen on?
port = 25565
# This is the map name that is reported to the query services.
map = "Mappie"
# Whether plugins should be shown in query response by default or not
show-plugins = false

View File

@ -1,54 +0,0 @@
services:
fallback:
image: itzg/minecraft-server
container_name: dev_fallback
restart: always
environment:
# What Server
EULA: "true"
TYPE: FABRIC
VERSION: 1.21.1
SERVER_NAME: uno
ONLINE_MODE: false
TZ: Europe/Berlin
# Server Properties
OVERRIDE_SERVER_PROPERTIES: true
ENABLE_COMMAND_BLOCK: true
GAMEMODE: creative
FORCE_GAMEMODE: false
# RCON Setup
RCON_PASSWORD: garde-studios
BROADCAST_CONSOLE_TO_OPS: true
BROADCAST_RCON_TO_OPS: true
# Setup
FORCE_REDOWNLOAD: true
#MEMORY: 2G
INIT_MEMORY: 500M
MAX_MEMORY: 1G
USE_AIKAR_FLAGS: true
# World & Mod Data
WORLD: https://file.cyperpunk.de/filebrowser/api/public/dl/4FDwjgd8/lobby.zip
#SEED: 795488740
MODS_FILE: /extras/mods.txt
# Whitelisting Players
WHITELIST_FILE: /extras/whitelist.json
OVERRIDE_WHITELIST: true
ENFORCE_WHITELIST: false
# Operator Setup
OPS_FILE: /extras/ops.json
SYNC_SKIP_NEWER_IN_DESTINATION: false
ports:
- 30001:25565 # Connection Port
- 9101:9100 # unified Exporter
volumes:
- ../fallback/data:/data
- ../fallback/mods.txt:/extras/mods.txt:ro
- ../fallback/ops.json:/extras/ops.json:ro
- ../fallback/whitelist.json:/extras/whitelist.json:ro
- ../fallback/config:/config

View File

@ -1,54 +0,0 @@
services:
dev_server:
image: itzg/minecraft-server
container_name: dev_server
restart: always
environment:
# What Server
EULA: "true"
TYPE: FABRIC
VERSION: 1.21.1
SERVER_NAME: dev
ONLINE_MODE: false
TZ: Europe/Berlin
# Server Properties
OVERRIDE_SERVER_PROPERTIES: true
ENABLE_COMMAND_BLOCK: true
GAMEMODE: creative
FORCE_GAMEMODE: false
LEVEL_TYPE: minecraft:large_biomes
# RCON Setup
RCON_PASSWORD: garde-studios
BROADCAST_CONSOLE_TO_OPS: true
BROADCAST_RCON_TO_OPS: true
# Setup
FORCE_REDOWNLOAD: true
INIT_MEMORY: 500M
MAX_MEMORY: 1G
USE_AIKAR_FLAGS: true
# World & Mod Data
#WORLD:
SEED: -2202949464251781243
MODS_FILE: /extras/mods.txt
# Whitelisting Players
WHITELIST_FILE: https://git.cyperpunk.de/Garde-Studios/Uno-MC/raw/branch/main/whitelist.json
OVERRIDE_WHITELIST: true
ENFORCE_WHITELIST: false
# Operator Setup
OPS_FILE: https://git.cyperpunk.de/Garde-Studios/Uno-MC/raw/branch/main/ops.json
SYNC_SKIP_NEWER_IN_DESTINATION: false
ports:
- 30000:25565 # Connection Port
- 31066:25575 # Rcon
- 8090:8080 # Squaremap
- 9100:9100 # unified Exporter
volumes:
- ../main/data:/data
- ../main/squaremap:/data/squaremap
- ../main/mods.txt:/extras/mods.txt:ro
- ../main/config:/config

View File

@ -1,14 +1,14 @@
services:
server:
image: itzg/minecraft-server
container_name: mc-server
container_name: new
restart: always
environment:
# What Server
EULA: "true"
TYPE: FABRIC
VERSION: 1.21.1
SERVER_NAME: utopia
SERVER_NAME: uno
ONLINE_MODE: false
TZ: Europe/Berlin
@ -32,8 +32,7 @@ services:
USE_AIKAR_FLAGS: true
# World & Mod Data
#WORLD:
SEED: -2202949464251781243
#WORLD: https://file.cyperpunk.de/filebrowser/api/public/dl/4FDwjgd8
MODS_FILE: /extras/mods.txt
# Whitelisting Players
WHITELIST_FILE: https://git.cyperpunk.de/Garde-Studios/Uno-MC/raw/branch/main/whitelist.json
@ -44,13 +43,12 @@ services:
OPS_FILE: https://git.cyperpunk.de/Garde-Studios/Uno-MC/raw/branch/main/ops.json
SYNC_SKIP_NEWER_IN_DESTINATION: false
ports:
- 30000:25565 # Connection Port
- 30066:25565 # Connection Port
- 31066:25575 # Rcon
- 8090:8080 # Squaremap
- 9100:9100 # unified Exporter
- 8080:8080 # Squaremap
- 9001:25585 # Fabric Exporter
volumes:
- ./data:/data
- ./squaremap:/data/squaremap
- ./mods.txt:/extras/mods.txt:ro
- ./config:/config

1
fallback/.gitignore vendored
View File

@ -1 +0,0 @@
/data

View File

@ -1,55 +0,0 @@
services:
server:
image: itzg/minecraft-server
container_name: fallback
restart: always
environment:
# What Server
EULA: "true"
TYPE: FABRIC
VERSION: 1.21.1
SERVER_NAME: uno
ONLINE_MODE: false
TZ: Europe/Berlin
# Server Properties
OVERRIDE_SERVER_PROPERTIES: true
ENABLE_COMMAND_BLOCK: true
GAMEMODE: adventure
FORCE_GAMEMODE: true
# RCON Setup
RCON_PASSWORD: garde-studios
BROADCAST_CONSOLE_TO_OPS: false
BROADCAST_RCON_TO_OPS: true
# Setup
FORCE_REDOWNLOAD: true
#MEMORY: 2G
INIT_MEMORY: 2G
MAX_MEMORY: 4G
USE_AIKAR_FLAGS: true
# World & Mod Data
WORLD: https://file.cyperpunk.de/filebrowser/api/public/dl/4FDwjgd8/lobby.zip
#SEED: 795488740
MODS_FILE: /extras/mods.txt
# Whitelisting Players
WHITELIST_FILE: /extras/whitelist.json
OVERRIDE_WHITELIST: true
ENFORCE_WHITELIST: false
# Operator Setup
OPS_FILE: /extras/ops.json
SYNC_SKIP_NEWER_IN_DESTINATION: false
ports:
- 30000:25565 # Connection Port
- 9100:9100 # unified Exporter
volumes:
- ./data:/data
- ./mods.txt:/extras/mods.txt:ro
- ./ops.json:/extras/ops.json:ro
- ./whitelist.json:/extras/whitelist.json:ro
- ./config:/config
networks: {}

View File

@ -1,14 +0,0 @@
server:
name: "global"
metrics:
enabled: true
driver: "prometheus"
collectors:
systemGc: true
systemMemory: true
systemProcess: true
systemThread: true
server: true
world: true
tick: true
events: true

View File

@ -1,16 +0,0 @@
mode: "HTTP"
http:
host: "0.0.0.0"
port: 9100
authentication:
scheme: "NONE"
username: "username"
password: "password"
pushGateway:
job: "unifiedmetrics"
url: "http://pushgateway:9091"
authentication:
scheme: "NONE"
username: "username"
password: "password"
interval: 10

View File

@ -1,18 +0,0 @@
# Fabric API
https://cdn.modrinth.com/data/P7dR8mSH/versions/thGkUOxt/fabric-api-0.107.0%2B1.21.1.jar
# Performance
https://cdn.modrinth.com/data/gvQqBUqZ/versions/5szYtenV/lithium-fabric-mc1.21.1-0.13.0.jar
https://cdn.modrinth.com/data/fALzjamp/versions/dPliWter/Chunky-1.4.16.jar
https://cdn.modrinth.com/data/s86X568j/versions/uT1cdd3k/ChunkyBorder-1.2.18.jar
https://cdn.modrinth.com/data/LFJf0Klb/versions/7e8Rxgsk/ce-2.1.1.jar
# Proxy
https://cdn.modrinth.com/data/8dI2tmqs/versions/AQhF7kvw/FabricProxy-Lite-2.9.0.jar
# Monitoring
https://cdn.modrinth.com/data/p1ewR5kV/versions/xwRVtqbA/unifiedmetrics-platform-fabric-0.3.8.jar
https://cdn.modrinth.com/data/Ha28R6CL/versions/B0fZidZi/fabric-language-kotlin-1.12.3%2Bkotlin.2.0.21.jar
# World Edit
https://cdn.modrinth.com/data/1u6JkXh5/versions/vBzkrSYP/worldedit-mod-7.3.6.jar

5
main/.gitignore vendored
View File

@ -1,5 +0,0 @@
/data
/squaremap/data/
/squaremap/locale/
/squaremap/web/tiles/
/squaremap/web/images/

View File

@ -1,4 +0,0 @@
hackOnlineMode = true
hackEarlySend = false
hackMessageChain = true
secret = "bGAJSlLeA4Wf"

View File

@ -1,71 +0,0 @@
{
"aspen_glade_enabled": true,
"auroral_garden_enabled": true,
"bayou_enabled": true,
"bog_enabled": true,
"cold_desert_enabled": true,
"coniferous_forest_enabled": true,
"crag_enabled": true,
"crystalline_chasm_enabled": true,
"dead_forest_enabled": true,
"dryland_enabled": true,
"dune_beach_enabled": true,
"end_corruption_enabled": true,
"end_reef_enabled": true,
"end_wilds_enabled": true,
"erupting_inferno_enabled": true,
"field_enabled": true,
"fir_clearing_enabled": true,
"floodplain_enabled": true,
"forested_field_enabled": true,
"fungal_jungle_enabled": true,
"glowing_grotto_enabled": true,
"grassland_enabled": true,
"gravel_beach_enabled": true,
"highland_enabled": true,
"hot_springs_enabled": true,
"jacaranda_glade_enabled": true,
"jade_cliffs_enabled": true,
"lavender_field_enabled": true,
"lush_desert_enabled": true,
"lush_savanna_enabled": true,
"maple_woods_enabled": true,
"marsh_enabled": true,
"mediterranean_forest_enabled": true,
"moor_enabled": true,
"muskeg_enabled": true,
"mystic_grove_enabled": true,
"old_growth_dead_forest_enabled": true,
"old_growth_woodland_enabled": true,
"ominous_woods_enabled": true,
"orchard_enabled": true,
"origin_valley_enabled": true,
"overgrown_greens_enabled": true,
"pasture_enabled": true,
"prairie_enabled": true,
"pumpkin_patch_enabled": true,
"rainforest_enabled": true,
"redwood_forest_enabled": true,
"rocky_rainforest_enabled": true,
"rocky_shrubland_enabled": true,
"scrubland_enabled": true,
"seasonal_forest_enabled": true,
"shrubland_enabled": true,
"snowblossom_grove_enabled": true,
"snowy_coniferous_forest_enabled": true,
"snowy_fir_clearing_enabled": true,
"snowy_maple_woods_enabled": true,
"spider_nest_enabled": true,
"tropics_enabled": true,
"tundra_enabled": true,
"undergrowth_enabled": true,
"visceral_heap_enabled": true,
"volcanic_plains_enabled": true,
"volcano_enabled": true,
"wasteland_enabled": true,
"wasteland_steppe_enabled": true,
"wetland_enabled": true,
"wintry_origin_valley_enabled": true,
"withered_abyss_enabled": true,
"woodland_enabled": true
}

View File

@ -1,3 +0,0 @@
[general]
#Add various BOP resources to the Wandering Trader trade pool.
wandering_trader_trades = true

View File

@ -1,13 +0,0 @@
[nether]
#The weighting of bop biome regions in the nether.
bop_nether_region_weight = 13
#The weighting of rare bop biome regions in the nether.
bop_nether_rare_region_weight = 2
[overworld]
#The weighting of primary bop biome regions in the overworld.
bop_primary_overworld_region_weight = 10
#The weighting of rare bop biome regions in the overworld.
bop_overworld_rare_region_weight = 2
#The weighting of secondary bop biome regions in the overworld.
bop_secondary_overworld_region_weight = 8

View File

@ -1,48 +0,0 @@
{
"trees": {
"allowedLogs": [],
"deniedLogs": [],
"allowedLeaves": [],
"allowedNonDecayLeaves": [],
"deniedLeaves": [],
"breakMode": "FALL_ITEM",
"detectionMode": "ABOVE_CUT",
"maxScanSize": 300,
"maxSize": 100,
"maxLeafDistanceFromLog": 12,
"maxSizeAction": "ABORT",
"breakOrder": "LOWEST_FIRST",
"minimumLeavesAroundRequired": 2,
"includePersistentLeavesInRequiredCount": false,
"treeBreaking": true,
"leavesBreaking": true,
"leavesBreakingForceRadius": 0,
"allowMixedLogs": false,
"breakNetherTreeWarts": true,
"breakMangroveRoots": false,
"searchAreaRadius": -1,
"allowedAdjacentBlocks": [],
"adjacentStopMode": "STOP_ALL",
"spawnItemsAtBreakPoint": true
},
"tools": {
"allowed": [],
"denied": [],
"durabilityMode": "NORMAL",
"ignoreTools": false,
"damageMultiplicand": 1.0,
"damageRounding": "ROUND_DOWN",
"speedMultiplicand": 0.5,
"forceToolUsage": false
},
"player": {
"allowedTags": []
},
"enchantment": {
"requireEnchantment": false
},
"sneakMode": "SNEAK_DISABLE",
"breakInCreative": false,
"lootInCreative": false,
"notificationMode": "ACTION_BAR"
}

View File

@ -1,55 +0,0 @@
{
"checkForNewUpdates": false,
"enableCopperGolem": true,
"generateCopperGolemAreaStructure": true,
"copperGolemAreaStructureWeight": 1,
"generateCopperGolemInAncientCity": true,
"copperGolemAncientCityCenterWeight": 10,
"enableCrab": true,
"enableCrabSpawn": true,
"crabSpawnWeight": 14,
"crabSpawnMinGroupSize": 2,
"crabSpawnMaxGroupSize": 4,
"reachingStatusEffectModifier": 1,
"enableGlare": true,
"enableGlareSpawn": true,
"enableGlareGriefing": true,
"glareSpawnWeight": 4,
"glareSpawnMinGroupSize": 1,
"glareSpawnMaxGroupSize": 1,
"enableMauler": true,
"enableMaulerSpawn": true,
"maulerDesertSpawnWeight": 8,
"maulerDesertSpawnMinGroupSize": 1,
"maulerDesertSpawnMaxGroupSize": 1,
"maulerBadlandsSpawnWeight": 16,
"maulerBadlandsSpawnMinGroupSize": 1,
"maulerBadlandsSpawnMaxGroupSize": 1,
"maulerSavannaSpawnWeight": 32,
"maulerSavannaSpawnMinGroupSize": 1,
"maulerSavannaSpawnMaxGroupSize": 1,
"enableMoobloom": true,
"enableMoobloomSpawn": true,
"moobloomSpawnWeight": 4,
"moobloomSpawnMinGroupSize": 2,
"moobloomSpawnMaxGroupSize": 4,
"enableIceologer": true,
"enableIceologerSpawn": true,
"enableIceologerInRaids": true,
"generateIceologerCabinStructure": true,
"enableIllusioner": true,
"enableIllusionerSpawn": true,
"enableIllusionerInRaids": true,
"generateIllusionerShackStructure": true,
"generateIllusionerTrainingGroundsStructure": true,
"enableZombieHorseTrap": true,
"enableRascal": true,
"enableRascalSpawn": true,
"enableTuffGolem": true,
"generateTuffGolemInStronghold": true,
"enableWildfire": true,
"generateCitadelStructure": true,
"enableBeekeeperVillagerProfession": true,
"generateBeekeeperAreaStructure": true,
"beekeeperAreaStructureWeight": 2
}

View File

@ -1,91 +0,0 @@
{
"clientConfig": {
"frostOverlayStart": 0.5,
"doColdHeartOverlay": true,
"renderDripParticles": true,
"disableFrostOverlayWhenWearingFrostologyCloak": true,
"shakeHandWhenShivering": true,
"handShakeIntensity": 1.0
},
"updateConfig": {
"currentConfigVersion": 2,
"enableConfigUpdates": true
},
"environmentConfig": {
"doDryBiomeNightFreezing": true,
"nightTemperatureShift": -1,
"coldBiomeTemperatureChange": -1,
"freezingBiomeTemperatureChange": -3,
"rainWetnessIncrease": 1,
"touchingWaterWetnessIncrease": 5,
"dryRate": 1,
"onFireDryDate": 50,
"onFireWarmRate": 50,
"powderSnowFreezeRate": 30,
"warmthPerLightLevel": 2,
"minLightForWarmth": 5,
"ultrawarmWarmRate": 15,
"enableSeasonsIntegration": true
},
"combatConfig": {
"doChillagerPatrols": true,
"straysCarryFrostArrows": true,
"maxFrostSpellDistance": 25.0,
"frostWandCooldown": 120,
"frostWandRootTime": 100,
"frostologerHeatDrainPerTick": 30,
"packedSnowballFreezeAmount": 500,
"packedSnowballDamage": 2.0,
"packedSnowballVulnerableTypesDamage": 5.0,
"frostologerPassiveFreezingPerTick": 2,
"frostologerMaxPassiveFreezing": 0.5,
"biterFrostBiteMaxAmplifier": 2,
"chillagerFireDamageMultiplier": 1.5,
"frostologerIntolerableHeat": 9,
"furUpgradeTemplateGenerateChance": 0.5,
"skateUpgradeTemplateGenerateChance": 0.33,
"veryProtectiveFrostResistanceMultiplier": 1.0,
"protectiveFrostResistanceMultiplier": 0.5
},
"freezingConfig": {
"doPassiveFreezing": true,
"doWindSpawning": true,
"windSpawnStrategy": "POINT",
"spawnWindInAir": true,
"windDestroysTorches": true,
"doSnowPacking": true,
"passiveFreezingTickInterval": 1,
"windSpawnCapPerSecond": 15,
"windSpawnRarity": 750,
"windSpawnRarityThunder": 500,
"maxPassiveFreezingPercent": 1.0,
"passiveFreezingWetnessScaleMultiplier": 2.1,
"soakPercentFromWaterPotion": 0.5,
"sunLichenHeatPerLevel": 500,
"sunLichenBurnTime": 60,
"campfireWarmthSearchRadius": 10.0,
"campfireWarmthTime": 1200,
"freezingWindFrost": 160,
"conduitPowerWarmthPerTick": 12,
"heatFromHotFloor": 12,
"shiverBelow": -0.51,
"shiverWarmth": 1,
"stopShiverWarmingBelowFoodLevel": 10,
"warmFoodWarmthTime": 1200
},
"icicleConfig": {
"iciclesFormInWeather": true,
"becomeUnstableChance": 0.05,
"growChance": 0.02,
"growChanceDuringRain": 0.09,
"growChanceDuringThunder": 0.15,
"frostArrowFreezeAmount": 1000,
"thrownIcicleFreezeAmount": 1500,
"icicleCollisionFreezeAmount": 3000,
"maxLightLevelToForm": 8,
"minSkylightLevelToForm": 11,
"thrownIcicleDamage": 1.0,
"thrownIcicleExtraDamage": 3.0,
"thrownIcicleCooldown": 10
}
}

View File

@ -1,14 +0,0 @@
server:
name: "global"
metrics:
enabled: true
driver: "prometheus"
collectors:
systemGc: true
systemMemory: true
systemProcess: true
systemThread: true
server: true
world: true
tick: true
events: true

View File

@ -1,16 +0,0 @@
mode: "HTTP"
http:
host: "0.0.0.0"
port: 9100
authentication:
scheme: "NONE"
username: "username"
password: "password"
pushGateway:
job: "unifiedmetrics"
url: "http://pushgateway:9091"
authentication:
scheme: "NONE"
username: "username"
password: "password"
interval: 10

View File

@ -1,20 +0,0 @@
{
// Use the custom name list, editable in ./mods/villagernames/customnames.txt, seperated by a comma. If custom names are found, the default name list is ignored.
"useCustomNames": true,
// Use the list of pre-defined female names when naming villagers.
"useDefaultFemaleNames": true,
// Use the list of pre-defined male names when naming villagers.
"useDefaultMaleNames": true,
// Disabled by default. Whether both custom and default names should be used to name villagers. Custom names will probably not be chosen often due to the amount of default names.
"useBothCustomAndDefaultNames": true,
// If enabled, also gives modded villagers a name. If you've found a 'villager'-entity that isn't named let me know by opening an issue so I can add it in.
"nameModdedVillagers": true,
// Whether the profession should be added to the villager's trade screen next to their name.
"showProfessionOnTradeScreen": true,
// If enabled, switches the name and profession on the villager trading screen. Result: <profession> - <name>.
"switchNameAndProfessionTradeScreen": true,
// Whether the merchant level (novice, apprentice etc.) should be hidden on the trade screen.
"hideMerchantLevelTradeScreen": false,
// If enabled, the mod capitalizes each word in the custom name list.
"shouldCapitalizeNames": true
}

View File

@ -1,32 +0,0 @@
[
{
"uuid": "61ec0d1b-0dc2-45bd-930e-ab45bcaa4386",
"name": "Athro_Hiro",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "d3dd297f-0c08-45a0-8260-f1ac46af490a",
"name": "Der_Grumpf",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "2f1de2e1-9fe8-457c-9a99-26c611fc6b64",
"name": "mlgChaostom44",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "f42bbaa6-b2e7-4573-8092-13fbddf2544d",
"name": "Deltayquaza",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "c76e4802-7f01-47cb-bc1b-16cadd736078",
"name": "Weizenkumpel",
"level": 4,
"bypassesPlayerLimit": false
}
]

View File

@ -1,59 +0,0 @@
config-version: 3
world-settings:
default:
invisible-blocks:
- minecraft:tall_grass
- minecraft:fern
- minecraft:short_grass
- minecraft:large_fern
iterate-up-base-blocks:
- minecraft:netherrack
- minecraft:glowstone
- minecraft:soul_sand
- minecraft:soul_soil
- minecraft:gravel
- minecraft:warped_nylium
- minecraft:crimson_nylium
- minecraft:nether_gold_ore
- minecraft:ancient_debris
- minecraft:nether_quartz_ore
- minecraft:magma_block
- minecraft:basalt
color-overrides:
biomes:
foliage:
minecraft:jungle: '#1f8907'
minecraft:mangrove_swamp: '#6f9623'
minecraft:sparse_jungle: '#1f8907'
minecraft:bamboo_jungle: '#1f8907'
minecraft:dark_forest: '#1c7b07'
grass: {}
water: {}
blocks:
minecraft:azure_bluet: '#F7F7F7'
minecraft:oxeye_daisy: '#D6E8E8'
minecraft:glass: '#FFFFFF'
minecraft:white_tulip: '#D6E8E8'
minecraft:mycelium: '#6F6265'
minecraft:spruce_leaves: '#619961'
minecraft:pink_tulip: '#EBC5FD'
minecraft:rose_bush: '#9B221A'
minecraft:blue_orchid: '#2ABFFD'
minecraft:orange_tulip: '#BD6A22'
minecraft:peony: '#EBC5FD'
minecraft:sunflower: '#FFEC4F'
minecraft:allium: '#B878ED'
minecraft:wither_rose: '#211A16'
minecraft:birch_leaves: '#80A755'
minecraft:lava: '#EA5C0F'
minecraft:lily_of_the_valley: '#FFFFFF'
minecraft:poppy: '#ED302C'
minecraft:attached_melon_stem: '#E0C71C'
minecraft:red_tulip: '#9B221A'
minecraft:dandelion: '#FFEC4F'
minecraft:pink_petals: '#FFB4DB'
minecraft:attached_pumpkin_stem: '#E0C71C'
minecraft:lilac: '#B66BB2'
minecraft:cornflower: '#466AEB'
minecraft:terracotta: '#9E6246'
minecraft:lily_pad: '#208030'

View File

@ -1,95 +0,0 @@
config-version: 2
settings:
commands:
main-command-label: squaremap
main-command-aliases:
- map
render-progress-logging:
enabled: true
interval-seconds: 1
language-file: lang-en.yml
debug-mode: false
update-checker: false
web-address: http://localhost:8080
web-directory:
path: web
auto-update: false
image-quality:
compress-images:
enabled: true
value: 0.5
internal-webserver:
enabled: true
bind: 0.0.0.0
port: 8080
flush-json-immediately: false
ui:
coordinates:
enabled: true
link:
enabled: true
sidebar:
pinned: pinned
world-settings:
default:
map:
enabled: true
display-name: '{world} @ Garde Studios'
order: 0
icon: ''
max-render-threads: -1
iterate-up: false
max-height: -1
biomes:
enabled: true
blend-biomes: 3
glass:
clear: true
lava:
checkerboard: true
water:
clear-depth: true
checkerboard: false
zoom:
maximum: 3
default: 3
extra: 2
background-render:
enabled: true
max-chunks-per-interval: 1024
interval-seconds: 15
max-render-threads: -1
markers:
update-interval-seconds: 5
spawn-icon:
enabled: true
show-controls: true
default-hidden: false
layer-priority: 0
z-index: 0
world-border:
enabled: true
show-controls: true
default-hidden: false
layer-priority: 1
z-index: 1
visibility-limits:
- type: world-border
enabled: 'false'
player-tracker:
enabled: true
update-interval-seconds: 1
show-controls: true
default-hidden: false
layer-priority: 2
z-index: 2
nameplate:
enabled: true
show-head: true
heads-url: https://mc-heads.net/avatar/{uuid}/16
show-armor: true
show-health: true
hide:
invisible: true
spectators: true
use-display-names: false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

View File

@ -1,172 +0,0 @@
body {
margin: 0;
padding: 0;
background: #000000;
overflow: hidden;
}
ul, li {
list-style-type: none;
display: inline-block;
margin: 0;
padding: 0;
vertical-align: middle;
}
#map {
width: 100%;
height: 100vh;
background: black;
}
img.leaflet-tile {
image-rendering: pixelated;
image-rendering: -moz-crisp-edges
}
div.leaflet-nameplate-pane div {
background: rgba(0, 0, 0, 0.5);
color: #ffffff;
font-weight: 700;
padding: 2px 5px 1px;
margin: 0;
border-color: rgba(0, 0, 0, 0.75);
}
div.leaflet-nameplate-pane div:before {
border-color: transparent;
}
div.leaflet-nameplate-pane div img.head {
vertical-align: middle;
margin-right: 6px;
}
div.leaflet-nameplate-pane div img.armor,
div.leaflet-nameplate-pane div img.health {
display: block;
}
div.leaflet-nameplate-pane div,
div.leaflet-marker-pane img {
transition: all 0.25s;
}
.leaflet-bottom.leaflet-left .link,
.leaflet-bottom.leaflet-left .coordinates {
display: inline-block;
float: none;
}
div.leaflet-control-layers.link img {
width: 34px;
height: 34px;
vertical-align: bottom;
bottom: 0;
background-image: url("../images/link.png");
background-size: 20px 20px;
background-repeat: no-repeat;
background-position: 50% 50%;
}
div.leaflet-control-layers.coordinates {
vertical-align: bottom;
padding: 2px 5px;
line-height: 14px;
height: 30px;
}
#sidebar {
display: flex;
flex-flow: column;
position: absolute;
top: 0;
right: 0;
width: 0;
height: 100vh;
padding-left: 10px;
z-index: 10000;
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
border-left: 1px solid #000000;
background-color: rgba(0, 0, 0, 0.6);
color: #ffffff;
text-align: right;
transition: all 0.25s;
}
#sidebar.show {
width: 200px;
padding-left: 0;
}
#sidebar fieldset {
clear: right;
margin: 30px 0;
border: none;
border-top: 1px solid rgba(196, 196, 196, 0.4);
text-align: left;
transition: all 0.25s;
white-space: nowrap;
}
#sidebar fieldset#worlds {
margin: -15px 0 0;
}
#sidebar fieldset#players {
margin: 10px 0 0;
overflow-y: auto;
}
#sidebar fieldset#players::-webkit-scrollbar {
width: 6px;
}
#sidebar fieldset#players::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 0;
}
#sidebar fieldset#players::-webkit-scrollbar-thumb {
background-color: rgba(0, 0, 0, 0);
border-right: 2px solid rgba(112, 128, 144, 0.75);
border-radius: 1px;
}
#sidebar fieldset#players::-webkit-scrollbar-thumb:hover {
border-radius: 3px;
border: 0;
background-color: rgba(112, 128, 144, 0.75);
}
#sidebar legend {
display: block;
margin: 10px 5px;
}
#sidebar fieldset a,
#sidebar fieldset a:visited {
display: block;
color: #ffffff;
text-decoration: none;
padding: 5px 10px;
transition: all 0.25s;
}
#sidebar fieldset a.following {
background-color: rgba(128, 128, 255, 0.25);
}
#sidebar fieldset a:hover,
#sidebar fieldset a.following:hover {
background-color: rgba(255, 255, 255, 0.15);
cursor: pointer;
}
#sidebar fieldset a .other-world {
filter: brightness(50%) !important;
font-style: italic;
}
#sidebar fieldset a img {
vertical-align: middle;
padding-right: 10px;
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
-webkit-filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
}
#sidebar fieldset#players a {
padding: 10px;
}
#sidebar #pin {
position: relative;
right: -160px;
width: 23px;
height: 23px;
margin: 5px 5px 10px;
padding: 2px;
border: 1px solid rgba(255, 255, 255, 0);
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
-webkit-filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
cursor: pointer;
}
#sidebar #pin.pinned:hover {
background: rgba(0, 128, 0, 0.5);
border: 1px solid rgba(0, 128, 0, 0.75);
}
#sidebar #pin.unpinned:hover {
background: rgba(128, 0, 0, 0.5);
border: 1px solid rgba(128, 0, 0, 0.75);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,404 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2" as="font" crossorigin="anonymous">
<link rel="preload" href="https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVsEpbCIPrE.woff2" as="font" crossorigin="anonymous">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="theme-color" content="#222222">
<link rel="manifest" href="./live-atlas/favicons/site.webmanifest">
<link rel="icon" href="./live-atlas/favicons/favicon.svg">
<link rel=”mask-icon” href="./live-atlas/favicons/mask.svg" color="#cccccc">
<link rel="apple-touch-icon" sizes="180x180" href="./live-atlas/favicons/apple-touch-icon.png">
<meta name="keywords" content="minecraft, map, dynamic, liveatlas" />
<meta name="description" content="Minecraft Dynamic Map" />
<title>LiveAtlas</title>
<script>
window.liveAtlasConfig = {
// By default LiveAtlas looks for a dynmap standalone/config.js file
// This configuration can be used instead to support Pl3xmap and Squaremap installations as well as multiple servers (external webserver required)
// To configure multiple servers, see https://github.com/JLyne/LiveAtlas/wiki/Configuring-Multiple-Servers.
// Example Squaremap internal webserver configuration
servers: {
squaremap: {
squaremap: window.location.pathname
},
},
// Example Pl3xmap internal webserver configuration
// servers: {
// pl3xmap: {
// pl3xmap: window.location.pathname
// },
// },
// Example Overviewer configuration
// servers: {
// overviewer: {
// overviewer: window.location.pathname
// },
// },
// Example Dynmap internal webserver configuration without using standalone/config.js
// servers: {
// dynmap: {
// dynmap: {
// configuration: 'standalone/dynmap_config.json?_={timestamp}',
// update: 'standalone/dynmap_{world}.json?_={timestamp}',
// sendmessage: 'standalone/sendmessage.php',
// login: 'standalone/login.php',
// register: 'standalone/register.php',
// tiles: 'tiles/',
// markers: 'tiles/'
// }
// },
// },
// Example multiple Dynmap servers on external webserver configuration
// servers: {
// creative: {
// label: 'Creative',
// dynmap: {
// configuration: 'http://dynmap.local/standalone/creative/MySQL_configuration.php',
// update: 'http://dynmap.local/standalone/creative/MySQL_update.php?world={world}&ts={timestamp}',
// sendmessage: 'http://dynmap.local/standalone/creative/MySQL_sendmessage.php',
// login: 'http://dynmap.local/standalone/creative/MySQL_login.php',
// register: 'http://dynmap.local/standalone/creative/MySQL_register.php',
// tiles: 'http://dynmap.local/standalone/creative/MySQL_tiles.php?tile=',
// markers: 'http://dynmap.local/standalone/creative/MySQL_markers.php?marker='
// }
// },
// survival: {
// label: 'Survival',
// dynmap: {
// configuration: 'http://dynmap.local/standalone/survival/MySQL_configuration.php',
// update: 'http://dynmap.local/standalone/survival/MySQL_update.php?world={world}&ts={timestamp}',
// sendmessage: 'http://dynmap.local/standalone/survival/MySQL_sendmessage.php',
// login: 'http://dynmap.local/standalone/survival/MySQL_login.php',
// register: 'http://dynmap.local/standalone/survival/MySQL_register.php',
// tiles: 'http://dynmap.local/standalone/survival/MySQL_tiles.php?tile=',
// markers: 'http://dynmap.local/standalone/survival/MySQL_markers.php?marker='
// }
// },
// },
// These messages are used throughout LiveAtlas and can be translated here
// If a message you want to translate isn't here, it is likely controlled by dynmap itself
// see https://github.com/webbukkit/dynmap/wiki/Configuration.txt
messages: {
chatNoMessages: 'No chat messages yet...',
chatTitle: 'Chat',
chatLogin: 'Please login to send chat messages',
chatSend: 'Send',
chatPlaceholder: 'Type your chat message here...',
chatErrorUnknown: 'Unexpected error while sending chat message',
chatErrorDisabled: 'Chat is not enabled',
serversHeading: 'Servers',
markersHeading: 'Markers',
markersSearchPlaceholder: 'Search markers...',
markersSkeleton: 'No markers exist for the current world',
markersSetSkeleton: 'This marker set is empty',
markersSearchSkeleton: 'No matching markers found',
markersUnnamed: '(Unnamed marker)',
worldsSkeleton: 'No maps have been configured',
playersSkeleton: 'No players are currently online',
playersTitle: 'Click to center on player\nDouble-click to follow player',
playersTitleHidden: 'This player is currently hidden from the map\nDouble-click to follow player when they become visible',
playersTitleOtherWorld: 'This player is in another world.\nClick to center on player\nDouble-click to follow player',
playersSearchPlaceholder: 'Search players...',
playersSearchSkeleton: 'No matching players found',
followingHeading: 'Following',
followingUnfollow: 'Unfollow',
followingTitleUnfollow: 'Stop following this player',
followingHidden: 'Currently hidden',
linkTitle: 'Copy link to current location',
loadingTitle: 'Loading...',
locationRegion: 'Region',
locationChunk: 'Chunk',
contextMenuCopyLink: 'Copy link to here',
contextMenuCenterHere: 'Center here',
toggleTitle: 'Click to toggle this section',
mapTitle: 'Map - Use the arrow keys to pan the map',
layersTitle: 'Layers',
copyToClipboardSuccess: 'Copied to clipboard',
copyToClipboardError: 'Unable to copy to clipboard',
loginTitle: 'Login/Register',
loginHeading: 'Existing User',
loginUsernameLabel: 'Username',
loginPasswordLabel: 'Password',
loginSubmit: 'Login',
loginErrorUnknown: 'Unexpected error while logging in',
loginErrorDisabled: 'Logging in is disabled on this server',
loginErrorIncorrect: 'Incorrect username or password',
loginSuccess: 'Logged in successfully',
registerHeading: 'New User',
registerDescription: `Enter your username and password, along with your registration code.
You can get a registration code by running /dynmap webregister in-game.`,
registerConfirmPasswordLabel: 'Confirm Password',
registerCodeLabel: 'Registration Code',
registerSubmit: 'Register',
registerErrorUnknown: 'Unexpected error during registration',
registerErrorDisabled: 'Registration is disabled on this server',
registerErrorVerifyFailed: 'The entered passwords do not match',
registerErrorIncorrect: 'Registration failed, please check the entered details are correct',
logoutTitle: 'Logout',
logoutErrorUnknown: 'Unexpected error while logging out',
logoutSuccess: 'Logged out successfully',
closeTitle: 'Close',
showMore: 'Show more'
},
ui: {
// If true, player markers will always be displayed in front of other marker types
playersAboveMarkers: true,
// Whether to enable the player list search box
playersSearch: true,
// Use more compact pre-2.0 player marker style
compactPlayerMarkers: false,
// Disable the map right click menu
disableContextMenu: false,
// Disable the markers button and list
disableMarkerUI: false,
// Custom URL to redirect to when logging in is required
// This URL will need to handle the login process and redirect users back to LiveAtlas
customLoginUrl: null
},
// Config version. Do not modify.
version: 1
};
</script>
<style>
/* Theme colours */
:root {
--background-base: #222222; /* Foreground UI elements */
--background-dark: #121212; /* Body/Splash screen/Shadows */
--background-light: #363636; /* Scrollbars/inputs */
--background-error: #771616; /* Errors */
--background-marker: var(--background-dark); /* Map markers */
--background-disabled: #555555; /* Disabled controls */
--background-hover: #363636; /* :hovered buttons/menu items */
--background-active: #6d6d6d; /* Button :active */
--background-selected: #BDBDBD; /* Selected buttons/menu items */
--outline-focus: #eeeeee; /* :focus outline */
--border-radius: 0.5rem;
--border-color: #333333; /* Control borders */
--border-error: #cc0e0e;
--box-shadow: 2px 2px 0px #111111;
--text-base: rgba(255, 255, 255, 0.7); /* Normal text */
--text-emphasis: rgba(255, 255, 255, 0.87); /* Chat messages/:focus inputs */
--text-subtle: rgba(255, 255, 255, 0.5); /* Skeletons/secondary text */
--text-disabled: var(--text-subtle); /* Disabled controls */
--text-marker: var(--text-base); /* Map markers */
--text-hover: var(--text-base); /* Text in :hover buttons */
--text-active: var(--text-base); /* Text in :active buttons */
--text-selected: var(--background-base); /* Text in selected buttons */
--text-shadow: 0.1rem 0.1rem #000000; /* Text in selected buttons */
--text-night: #ddffff; /* Clock time at night */
--text-day: #ffdd33; /* Clock time in day */
}
@keyframes fade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
* {
scrollbar-width: thin;
scrollbar-color: var(--background-light) transparent;
}
*:hover, *:focus-within {
scrollbar-color: var(--background-hover) transparent;
}
*::-webkit-scrollbar {
width: 0.7rem;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: var(--background-light);
border: 2px solid #000000;
border-radius: 2rem;
transition: background 1s ease-in;
padding-right: 0.2rem;
}
*:hover::-webkit-scrollbar-thumb, *:focus-within::-webkit-scrollbar-thumb {
background-color: var(--background-hover);
}
*::-webkit-scrollbar-button {
display: none;
}
html, body {
background-color: var(--background-dark);
height: 100%;
width: 100%;
margin: 0;
padding: 0;
overscroll-behavior: none;
}
html {
font-size: 62.5%;
}
body {
font-family: Raleway,
system-ui,
-apple-system,
'Segoe UI',
Roboto,
Helvetica,
Arial,
sans-serif,
'Apple Color Emoji',
'Segoe UI Emoji';
color: var(--text-base);
text-shadow: var(--text-shadow);
letter-spacing: 0.02rem;
}
noscript {
color: var(--text-base);
font-size: 1rem;
font-family: sans-serif;
text-align: center;
line-height: 1.25;
}
#splash, noscript {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
transition: 0.3s opacity linear;
z-index: 100;
background-color: var(--background-dark);
cursor: wait;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 1.6rem;
padding: 4rem;
}
#splash[hidden] {
display: none;
}
#splash__spinner {
margin-top: 4rem;
animation: fade 0.5s linear 1s;
animation-fill-mode: both;
}
#splash__error {
margin-top: 2rem;
transition: opacity 0.5s ease-in;
display: flex;
flex-direction: column;
text-align: center;
max-width: 60rem;
}
#splash__error-message {
font-family: monospace;
background-color: var(--background-error);
padding: 1rem 1.5rem;
border-radius: var(--border-radius);
margin-bottom: 1rem;
}
#splash__error[aria-hidden=true] {
opacity: 0;
}
#app {
font-size: 1.6rem;
height: 100%;
}
</style>
<script type="module" crossorigin src="./live-atlas/assets/index.a82d2095.js"></script>
<link rel="modulepreload" href="./live-atlas/assets/vendor.d0ab50b1.js">
<link rel="stylesheet" href="./live-atlas/assets/index.1de34b3a.css">
</head>
<body>
<div id="splash">
<svg id="splash__logo" width="200" height="200" viewBox="0 0 268.83 266.53" aria-hidden="true" fill="rgba(255, 255, 255, 0.7)">
<path d="M5.235.662C2.153.606 0 2.945 0 6.912v216.577c0 5.288 3.828 11.41 8.582 13.725l57.835 28.165c4.755 2.316 8.582-.078 8.582-5.367V43.434c0-5.288-3.827-11.41-8.582-13.727L8.582 1.544C7.394.965 6.262.681 5.235.662zm32.283 135.96c14.394 0 26.062 11.669 26.062 26.063 0 14.394-24.167 59.55-26.062 57.654-1.854 1.854-26.063-43.26-26.063-57.654 0-14.394 11.669-26.063 26.063-26.063zM202.388 1.013l57.833 28.165c4.755 2.315 8.583 8.437 8.583 13.726v216.58c0 5.29-3.828 7.683-8.583 5.367l-57.833-28.164c-4.755-2.316-8.583-8.438-8.583-13.727V6.38c0-5.289 3.828-7.682 8.583-5.367zM172.012.39c-1.051-.035-2.209.191-3.426.709l-68.342 29.053c-4.867 2.07-8.786 7.993-8.786 13.282V260.01c0 5.29 3.919 7.88 8.786 5.811l68.342-29.053c4.867-2.07 8.786-7.991 8.786-13.28V6.91c0-3.967-2.204-6.417-5.36-6.521zm-36.949 41.216c14.394 0 26.063 11.668 26.063 26.062 0 14.394-24.168 59.55-26.063 57.655C133.209 127.177 109 82.063 109 67.668c0-14.394 11.669-26.062 26.063-26.062z"/>
<path d="M48.573 162.689a11.056 11.056 0 0 1-11.056 11.056 11.056 11.056 0 0 1-11.056-11.056 11.056 11.056 0 0 1 11.056-11.056 11.056 11.056 0 0 1 11.056 11.056zM146.12 67.669a11.056 11.056 0 0 1-11.057 11.056 11.056 11.056 0 0 1-11.056-11.056 11.056 11.056 0 0 1 11.056-11.056 11.056 11.056 0 0 1 11.056 11.056z"/>
</svg>
<svg id="splash__spinner" width="38" height="38" viewBox="0 0 38 38" stroke="#fff" aria-label="LiveAtlas is loading">
<g transform="translate(1 1)" stroke-width="2" fill="none">
<circle stroke-opacity=".5" cx="18" cy="18" r="18"/>
<path d="M36 18c0-9.94-8.06-18-18-18">
<animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indefinite"/>
</path>
</g>
</svg>
<div id="splash__error" aria-hidden="true">
<span id="splash__error-message" role="alert"></span>
<span id="splash__error-retry" aria-live="polite"></span>
</div>
</div>
<noscript>
<strong>LiveAtlas requires JavaScript to work.<br />Please enable it to continue.</strong>
</noscript>
<main id="app" aria-hidden="true"></main>
<script>
window.addEventListener('load', () => {
if(!window.liveAtlasLoaded) {
document.getElementById('splash__error').setAttribute('aria-hidden', 'false');
document.getElementById('splash__error-message').innerText = 'Required LiveAtlas files are missing or failed to load.\nPlease reinstall LiveAtlas.';
document.getElementById('splash__spinner').style.visibility = 'hidden';
}
});
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More