diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte
index 8a6522b..f231e6f 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/__layout.svelte
@@ -1,8 +1,16 @@
-
+
+
\ No newline at end of file
+ :global(body) {
+ font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue,
+ helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
+ }
+ footer {
+ position: absolute;
+ bottom: 0;
+ }
+
diff --git a/src/routes/datacollection.svelte b/src/routes/datacollection.svelte
new file mode 100644
index 0000000..4290559
--- /dev/null
+++ b/src/routes/datacollection.svelte
@@ -0,0 +1,22 @@
+
Data Collection
+
+
+ In order to operate, this service collects a small amount of user data. Should you want to
+ exercise your
+ right to be forgotten or any other inquiries,
+ please reach out to me at mc-invites@gmem.ca.
+
+
+ User data collected includes your Minecraft username at time of signup, your unique Minecraft
+ UUID, and Microsoft OAuth tokens required to speak to Mojang's API. IP addresses or other
+ personally identifiable data that may be sent is not permenantly logged. Other data includes the
+ server-related configuration when adding a new server to create invites, which includes the
+ address of the server, the address of the RCON server, and the RCON password, in addition to a
+ custom server name.
+
+
+
diff --git a/src/routes/index.svelte b/src/routes/index.svelte
index b0e3fb2..7fe82fe 100644
--- a/src/routes/index.svelte
+++ b/src/routes/index.svelte
@@ -1,31 +1,32 @@
{#if !loggedIn}
-Login
+ Login
{:else}
-Manage Servers
+ Manage Servers
{/if}
-
+
\ No newline at end of file
+ :global(body) {
+ font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue,
+ helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
+ }
+
diff --git a/src/routes/invite/[code].svelte b/src/routes/invite/[code].svelte
index c00b814..cba9fb9 100644
--- a/src/routes/invite/[code].svelte
+++ b/src/routes/invite/[code].svelte
@@ -1,118 +1,117 @@
- {#if invite}
- Accept Invite to {invite.server.name}
- {:else}
- Accept Invite
- {/if}
+ {#if invite}
+ Accept Invite to {invite.server.name}
+ {:else}
+ Accept Invite
+ {/if}
-{#if invite}
-{#if success == ""}
-
Invite {code} from {invite.creator.display_name}
-
Join {invite.server.name}?
- {#if login }
-
- {:else}
-
Yes!
- {/if}
-{:else}
-
You have been whitelisted! Connect at: {invite.server.address}
-{/if}
-{:else}
-
Loading...
-{/if}
+ {#if invite}
+ {#if success == ''}
+
Invite {code} from {invite.creator.display_name}
+
Join {invite.server.name}?
+ {#if login}
+
+ {:else}
+
Yes!
+ {/if}
+ {:else}
+
You have been whitelisted! Connect at: {invite.server.address}
+ {/if}
+ {:else}
+
Loading...
+ {/if}
\ No newline at end of file
+ @import 'https://fontlibrary.org/face/minecraftia';
+ div {
+ background-color: #444a52f6;
+ color: white;
+ margin: 0 auto;
+ width: 25vw;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ padding: 10px;
+ border-radius: 5px;
+ border: 1px solid white;
+ position: absolute;
+ top: 30%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ @media (max-width: 700px) {
+ div {
+ width: 90vw;
+ }
+ }
+ button {
+ color: white;
+ width: 50%;
+ margin: 0 auto;
+ height: 6vh;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMQAAAAPCAAAAACe4j/AAAAEuElEQVRIx1WWS5Ibuw5EtddrdRRJJE4iSKrb4c2/AUuy30iK+jEBHCTwAICMCgAKiGhKVQUwKzJHQo4mQGBy7AIvk1E2AQKhFt6bUGD1gILy0DkD4dmzACkGyzCScgFgQmLZr4LpQpC56QB2wgSYE8i1fd6xd1yPHIAKwAs14Undx2LIHK0X6vdFbzTa6CNBLQE8Y5rapn7oAl3KSDKC6cLfL6sLnIVG7ffnyUgvQ6rwLjUZdIVqWz0iEXXCZ+TJsV8feUdoPHDk+a/IeAbq0ldLT59jtHweHwmKS6gFSUYCqKcVsPami1pEnqolkCMBiAS87FXTICp03geYUr8TV8un3KuyC0BfTUzihOCdwjUya1bkT9VWe+AaFOoJzHdtERXRe/eulyEDhC6pjYwr+JQuIDU9/0wQBnJEAkd+9i6IRTJrV7YWnGfwLA6ESphkBoCu88M0YH1CTTOiRUpDdwpGkkP5yL9phhwn+QVxDarAXq513y9bLKgxBGR/CjDyMl4ECd6lO82CaMLbEHGHp1R8ePDERj392ssaCOigNjJ+dXXl6OLUFfVx6dA1BFJLlHpkUHPam095C3QJLIjn6OLIOB3xe0JS85Zd+govg1/z/UhtG3RdVW98yxNp5I0Vtf/U+6y/dJ/yHtSK4q7G9ARscC3/Df/kXTwiT3d6ovjEISLJIVEvBwWeCXlALZTbpy85xqWuf3sNiBBUmYjI+BqN6aNQqDWpipSYf3W1nOV/WALoykjIiCPreSn97UigsjZdPA5s3AmCDIxaVO0Fa1fV/qkaiijPPz/bEeRyLSBDI8K8j37TO8aH7vmOqUUQ1DboYhvqd+FlFGEo+2T75MbLGnjvPeu7Pl521Ap14dcR3h7p75qv4xieqnNDoyCPLt/yKkf5gOUXl+6S3d9Syq/982fz+fhpsm28C5EhJcxsWWQke6KoPMA7tqm7kKcrn6FLhWcoqCNCxDPyQ8wEKR73nIlEX8GpARSJX7/rzeNtWPD/Dl2IwtOYMwV7osGsHYJanzeU7KqIZVCTcrT0IEbyD4d1e1dkBtW2qLhLXK7a1ogDqsjI1DR4PY7nHEqfF9tn8HUJL+eQ/lGOXdwI1++57CqgmDaReM9CZYLAk4D4ymqti4KZI9Htz9OnrcuOhCQEqJfXaxHPAFG/l/ee1GFJPXmPryYUiUGPutnRGXkagmnjHk5RNpm7xxiclm6CjJEQ4+MD4xPmuT9Ef4b3YT3B51a7d4Np76PF0cavuC+SoaH6PlilipEakoJBJETWT3k7Hf+1REPj2fIx95t5ct6u9S5v3KM2fv2Ve29ax9yC98zT2IZot61MHyYtdPF92nguZ29xfcVxSu9Nj5Gl8G3wcVoW8n1Q/f6BHFEAyy5R2aRIdYH8XfV4453vHKcnqarXPD6mdrD0rlVV5xBPF2xuJM5Oo0SdaaqGMjJva7ii6bYv74IzPMo5pGebpu72ghypwTR+WWDuhQOkFijGyAzF3GXh11lEH0hkPINZivpTqLEtVm2j1hVcn/S0//q0es5dbyxOErxKivQ+bHotvzcT3/XztPf20XqG6fJZMePT2X6ts+nlm9LoSYHMiHuJjGXniB7v2fo/5qT4nuxYg6AAAAAASUVORK5CYII=);
+ font-family: 'MinecraftiaRegular';
+ border-color: #aaa #565656 #565656 #aaa;
+ text-shadow: 3px 3px #4c4c4c;
+ outline: 2px solid #000;
+ }
+
+ button:hover {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMQAAAAPCAMAAACMV5AuAAAAVFBMVEVtd7ZteLZverdwerdwe7hxfLhyfbl0frl1f7p2gLt4grx6hLx7hb18hr5+iL+AisCBi8GCjMGEjsKGkMOHkcSIksSKk8WLlMWLlcaMlcaNlsePmMdwBHmVAAAEjElEQVRIx1WW27YbKw5F3Ul2GYTWFAJX+pyd///PfgDsTg0/mSqQ1k08AEAeDkAA7kXyDAeyu2QCWREgCGSvAAbIE/D9U2m8Ji4Drw0CEhP7EMiqBFxmDMBEkHvd5AziDsjoCKQXddUl1nuZgMZrf0PMdj1kgNY+Ay+CJPg8kj1rR3X/GS9kxaoJVFaB6QkxIX5TBX65mpAZGQH3HaoCFMj6/GxuYgDyTsyup1hfxwxVN+F08ANGANyf8jqAPaBpranJvhxV+VV08JGPVScmcL8W4EIuAFWFHMZrUkUfNC3WtIsEaFogMWJRl839MES61w1cjMUsI1fb7GKaoENMOdFNykzXPz2mlwekkXjV4ioO9b15rZWZd4AaCL9cxdSutl8buIOUkd8JTgAy01IKoFoFPhAZr65SbDHgxFIGKi5IpLaKdlafAHxaVWDt2SSZ24LQhEx6aLGyj7RtELDLiA7EiD72ehBiQJo5oPq1nOQMYGAIYoY2AwIrImaA+25P8vZRa0KgqrjnQIaACiom/1G9Sla3GUHVLl/mMl/mxeUPGT0T5seAeeAQtF9WV2F7cX4niJ4DYmBd12oh7jymyRkBuq6M81mQuExHVv313beo9VH3ojfM2zZ8AkTG8X7EeDs6OZw+mrY7E5l/gqQJmZx+YySQAi1/dqQZy0as4FL1d7nrcfd1kjWTX1ZIYESTUCnuPZE7+anrqcxlz3diUX2HowHCf15S3AvxrnhRxeMwtQACGYGKZ7wGjNl7vH73MHdP8s/vSXM0FiRqMnPowfbjRsfe6n7nZ/FGIyfgF6+A/t1XTrcWB3Q42AxkMOfMfuJotRPgqGqFMfB8KO6eN+BEpO8F2eLZ18YO0GUdmEDcXMcNey+XuOfvP5P35guSVxAzWRYUpIoSuZiJrJ/p4zPouw0pwX+6XwpIcyNWEcJ/uf5Svuyx+ncTfhmotEhIBPe/8f961F/jI5aQfSs3WFOwChnZZxPk+HQjZu/WBuDFVwobZnoLISBOdkmNLFPE9iadiImsgTcdTDKA8dj1qBT518Xcg6+6L0Yl/nqCLeH+b46InkCSETTBzEQBRoPEwS9lKVUkpEx426M3oIMHYQLhK/B6jHvgXw6if4+YM4mlJdWDpLw4MhHgjwBZgIt+ZJdAVENOEkiv6mY4yy5nFPjnQmGfGVy0IqP+cmbsWF7Se/rT+5ZBzHPdKfajHW2ouWldPJaoTDJ3GUYTNMV/IyaiPYqQuX0VPXK+ra3Mc8c5Wlkp4D/e5S5htjXU3HnPPJsBXraRM/rSpOMX99zMoVradRl9AMxJdVPIYgf8Rhu0DvLM739A5rmjJ51QcW9SFXjcvR85oYOhSKTsd65pqdKWIV59ZO/7kKTDJLbvYw9XVRIyTXKJdfm4rOjE18yT8IHM/euZa0Z0fLvBSIh7h925QLoXR80WNfnqOHHP7Qk5aj+dTLX4E3hhIkafoGd15/IDT/lPTVSVr233dy6OkJtiLm0yBu+byeE2Yc59pVrDdKyPjxgD4h6r6vcFwpYNHMxVBaE2ApmfyTTjf5jQnWRymG7iAAAAAElFTkSuQmCC);
+ border-color: #bdc6ff #59639a #59639a #bdc6ff;
+ }
+ code {
+ font-family: 'MinecraftiaRegular';
+ color: white;
+ padding: 20px 5px;
+ margin: 20px 0;
+ display: block;
+ text-align: center;
+ font-size: larger;
+ background-color: black;
+ border: 3px inset grey;
+ }
+ :global(body) {
+ font-family: 'MinecraftiaRegular';
+ background-color: #202225;
+ background-image: url('/dirt.jpg');
+ }
+
diff --git a/src/routes/servers/[id].svelte b/src/routes/servers/[id].svelte
deleted file mode 100644
index 037898a..0000000
--- a/src/routes/servers/[id].svelte
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-{#if inviteCode }
- {$page.url.hostname}/invite/{inviteCode}
-{:else}
-Create Invite
-
-{/if}
-
-
\ No newline at end of file
diff --git a/src/routes/servers/[id]/index.svelte b/src/routes/servers/[id]/index.svelte
new file mode 100644
index 0000000..81c87ec
--- /dev/null
+++ b/src/routes/servers/[id]/index.svelte
@@ -0,0 +1,92 @@
+
+
+{#if loaded}
+ {server.name}
+
+
Server Address: {server.address}
+
Server RCON Address: {server.rcon.address}
+
+
+ {#if invites.length > 0}
+ {#each invites as invite}
+
+ {invite.token} | Uses: {!invite.unlimited ? invite.uses : "unlimited"} delete
+ {#if invite.log}
+ {#each invite.log as log}
+ {log.user.display_name} ({log.user.id})
+ {/each}
+ {/if}
+
+ {/each}
+ {:else}
+
No invites
+ {/if}
+
+
delete
+
+{:else}
+ Loading
+{/if}
+
+
diff --git a/src/routes/servers/[id]/new.svelte b/src/routes/servers/[id]/new.svelte
new file mode 100644
index 0000000..8326688
--- /dev/null
+++ b/src/routes/servers/[id]/new.svelte
@@ -0,0 +1,59 @@
+
+
+Create Invite
+
+
+
diff --git a/src/routes/servers/__layout.svelte b/src/routes/servers/__layout.svelte
index ebd79aa..6f5bc80 100644
--- a/src/routes/servers/__layout.svelte
+++ b/src/routes/servers/__layout.svelte
@@ -1,22 +1,22 @@
{#if !loggedIn}
-Login
+ Login
{/if}
-
+
diff --git a/src/routes/servers/index.svelte b/src/routes/servers/index.svelte
index 6440a55..7e31c8e 100644
--- a/src/routes/servers/index.svelte
+++ b/src/routes/servers/index.svelte
@@ -1,39 +1,52 @@
{#if loaded}
-Your servers new
-{#if servers.length > 0}
-{#each servers as server}
-
-
{server.name}
-
Server Address: {server.address}
-
Server RCON Address: {server.rcon.address}
-
new invite delete
-
-{/each}
-{/if}
+ Your servers new
+ {#if servers.length > 0}
+ {#each servers as server}
+
+
{server.name}
+
Server Address: {server.address}
+
Server RCON Address: {server.rcon.address}
+
view
+
delete
+
+ {/each}
+ {/if}
{:else}
-Loading
+ Loading
{/if}
\ No newline at end of file
+ div {
+ margin: 0 auto;
+ }
+
diff --git a/src/routes/servers/new.svelte b/src/routes/servers/new.svelte
index 023bdef..17db3ab 100644
--- a/src/routes/servers/new.svelte
+++ b/src/routes/servers/new.svelte
@@ -1,57 +1,64 @@
Add Server
-
\ No newline at end of file
+ label {
+ display: block;
+ margin: 10px 0;
+ }
+ input {
+ border: 1px solid black;
+ padding: 5px;
+ border-radius: 5px;
+ font-size: large;
+ }
+