Skip to content

Commit bfeedbb

Browse files
Merge branch 'minekube:master' into master
2 parents e8c70f1 + 549c8e5 commit bfeedbb

59 files changed

Lines changed: 3094 additions & 300 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,18 @@ jobs:
7373
VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev-${REF}")
7474
IMAGE=${{ env.REGISTRY }}/${{ github.repository }}:${REF}
7575
IMAGE_LATEST=${{ env.REGISTRY }}/${{ github.repository }}:latest
76+
IMAGE_JRE=${{ env.REGISTRY }}/${{ github.repository }}/jre:${REF}
77+
IMAGE_JRE_LATEST=${{ env.REGISTRY }}/${{ github.repository }}/jre:latest
7678
7779
echo "image=${IMAGE}" >> $GITHUB_OUTPUT
7880
echo "image_latest=${IMAGE_LATEST}" >> $GITHUB_OUTPUT
81+
echo "image_jre=${IMAGE_JRE}" >> $GITHUB_OUTPUT
82+
echo "image_jre_latest=${IMAGE_JRE_LATEST}" >> $GITHUB_OUTPUT
7983
echo "version=${VERSION}" >> $GITHUB_OUTPUT
8084
81-
echo "Building image: ${IMAGE}" >> $GITHUB_STEP_SUMMARY
85+
echo "Building images:" >> $GITHUB_STEP_SUMMARY
86+
echo "- ${IMAGE}" >> $GITHUB_STEP_SUMMARY
87+
echo "- ${IMAGE_JRE}" >> $GITHUB_STEP_SUMMARY
8288
echo "Version: ${VERSION}" >> $GITHUB_STEP_SUMMARY
8389
8490
- name: Build and push docker image
@@ -92,9 +98,26 @@ jobs:
9298
cache-to: type=inline
9399
build-args: |
94100
VERSION=${{ steps.image-ref.outputs.version }}
101+
target: gate
95102
tags: |
96103
${{ steps.image-ref.outputs.image }}
97104
${{ steps.image-ref.outputs.image_latest }}
105+
106+
- name: Build and push docker image (jre variant)
107+
uses: docker/build-push-action@v6
108+
with:
109+
context: .
110+
file: ./Dockerfile
111+
push: true
112+
platforms: linux/amd64,linux/arm64,windows/amd64,windows/arm64,darwin/amd64,darwin/arm64,linux/arm/v7,linux/arm/v8,linux/s390x
113+
cache-from: type=registry,ref=${{ steps.image-ref.outputs.image_jre_latest }}
114+
cache-to: type=inline
115+
build-args: |
116+
VERSION=${{ steps.image-ref.outputs.version }}
117+
target: jre
118+
tags: |
119+
${{ steps.image-ref.outputs.image_jre }}
120+
${{ steps.image-ref.outputs.image_jre_latest }}
98121
releaser:
99122
if: startsWith(github.ref, 'refs/tags/')
100123
needs:

.web/docs/.vitepress/config.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ export default defineConfig({
3838
['meta', { property: 'og:image', content: ogImage }],
3939
['meta', { property: 'og:url', content: ogUrl }],
4040
['meta', { name: 'theme-color', content: '#646cff' }],
41+
[
42+
'script',
43+
{ src: 'https://cdn.jsdelivr.net/npm/@widgetbot/html-embed', defer: '' },
44+
],
4145
// [
4246
// 'script',
4347
// {
@@ -57,6 +61,11 @@ export default defineConfig({
5761

5862
vue: {
5963
// reactivityTransform: true, // This option is deprecated
64+
template: {
65+
compilerOptions: {
66+
isCustomElement: (tag) => tag === 'widgetbot',
67+
},
68+
},
6069
},
6170

6271
ignoreDeadLinks: 'localhostLinks',
@@ -95,7 +104,6 @@ export default defineConfig({
95104
{ text: 'Bedrock', link: '/guide/bedrock' },
96105
{ text: 'Lite Mode', link: '/guide/lite' },
97106
{ text: 'API & SDKs', link: '/developers/api/' },
98-
{ text: 'Developers', link: '/developers/' },
99107
{ text: 'Config', link: '/guide/config/' },
100108
{ text: 'Downloads', link: '/guide/install/' },
101109
{ text: 'Extensions', link: '/extensions' },
@@ -210,10 +218,6 @@ export default defineConfig({
210218
text: '🌐 Enabling Connect',
211219
link: '/guide/connect',
212220
},
213-
{
214-
text: '🔧 Modded Servers Config',
215-
link: '/guide/config/modded-servers',
216-
},
217221
{
218222
text: '🌐 ForcedHosts Routing',
219223
link: '/guide/forced-hosts',
@@ -288,6 +292,10 @@ export default defineConfig({
288292
text: 'Commands',
289293
link: '/developers/commands',
290294
},
295+
{
296+
text: 'Sounds',
297+
link: '/developers/sound',
298+
},
291299
],
292300
},
293301
{
@@ -340,6 +348,10 @@ export default defineConfig({
340348
text: 'Definition',
341349
link: '/developers/api/definition',
342350
},
351+
{
352+
text: 'OpenAPI',
353+
link: '/developers/api/openapi',
354+
},
343355
{
344356
text: 'Glossary',
345357
link: '/developers/api/glossary',

.web/docs/.vitepress/theme/components/LandingAfter.vue

Lines changed: 81 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@ try:
974974
<div
975975
class="text-2xl sm:text-3xl font-semibold text-[--vp-c-brand-1]"
976976
>
977-
800+
977+
{{ communityStats.discordMembers }}+
978978
</div>
979979
<div class="text-xs sm:text-sm text-[--vp-c-text-2]">
980980
Discord Members
@@ -985,7 +985,7 @@ try:
985985
<div
986986
class="text-2xl sm:text-3xl font-semibold text-[--vp-c-brand-1]"
987987
>
988-
750+
988+
{{ communityStats.githubStars }}+
989989
</div>
990990
<div class="text-xs sm:text-sm text-[--vp-c-text-2]">
991991
GitHub Stars
@@ -1062,6 +1062,78 @@ try:
10621062
</div>
10631063
</div>
10641064

1065+
<!-- Discord Community Section -->
1066+
<div class="py-24 sm:py-32 bg-[--vp-c-bg-soft]">
1067+
<div class="mx-auto max-w-7xl px-6 lg:px-8">
1068+
<div class="mx-auto max-w-2xl lg:text-center mb-12">
1069+
<h2 class="text-base font-semibold leading-7 text-[--vp-c-brand-2]">
1070+
Join Our Community
1071+
</h2>
1072+
<p
1073+
class="mt-2 text-3xl font-bold tracking-tight text-[--vp-c-text-1] sm:text-4xl"
1074+
>
1075+
Connect with the Gate Community
1076+
</p>
1077+
<p class="mt-6 text-lg leading-8 text-[--vp-c-text-2]">
1078+
Get help, share your projects, and chat with other server owners and
1079+
developers. Our Discord community is active 24/7 with over
1080+
{{ communityStats.discordMembers }} members ready to help.
1081+
</p>
1082+
</div>
1083+
1084+
<!-- Discord Widget Embed -->
1085+
<div class="mx-auto max-w-5xl">
1086+
<div class="relative group">
1087+
<div
1088+
class="absolute -inset-1 bg-gradient-to-r from-[--vp-c-brand-2] to-[--vp-c-brand-1] rounded-2xl blur opacity-30 group-hover:opacity-50 transition duration-1000"
1089+
></div>
1090+
<div
1091+
class="relative bg-[--vp-c-bg-alt] rounded-2xl overflow-hidden border border-[--vp-c-divider]"
1092+
>
1093+
<widgetbot
1094+
server="633708750032863232"
1095+
channel="1053865247846453308"
1096+
width="100%"
1097+
height="600"
1098+
class="discord-embed"
1099+
></widgetbot>
1100+
</div>
1101+
</div>
1102+
1103+
<!-- Community Stats & CTA -->
1104+
<div
1105+
class="mt-8 flex flex-col sm:flex-row items-center justify-center gap-6"
1106+
>
1107+
<div class="flex items-center gap-8">
1108+
<div class="text-center">
1109+
<div class="text-3xl font-bold text-[--vp-c-brand-1]">
1110+
{{ communityStats.discordMembers }}+
1111+
</div>
1112+
<div class="text-sm text-[--vp-c-text-2]">Members</div>
1113+
</div>
1114+
<div class="text-center">
1115+
<div class="text-3xl font-bold text-[--vp-c-brand-1]">24/7</div>
1116+
<div class="text-sm text-[--vp-c-text-2]">Active Support</div>
1117+
</div>
1118+
</div>
1119+
<a
1120+
href="https://minekube.com/discord"
1121+
target="_blank"
1122+
rel="noopener"
1123+
class="flex items-center gap-2 rounded-full px-6 py-3 text-sm font-semibold text-white bg-[#5865F2] hover:bg-[#4752C4] transition-colors"
1124+
>
1125+
<svg class="h-5 w-5" viewBox="0 0 24 24" fill="currentColor">
1126+
<path
1127+
d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"
1128+
/>
1129+
</svg>
1130+
Open in Discord
1131+
</a>
1132+
</div>
1133+
</div>
1134+
</div>
1135+
</div>
1136+
10651137
<!-- Survey Section -->
10661138
<div class="py-24 sm:py-32">
10671139
<div class="mx-auto max-w-7xl px-6 lg:px-8">
@@ -1073,6 +1145,7 @@ try:
10731145
<script setup>
10741146
import { ref } from 'vue';
10751147
import Survey from './Survey.vue';
1148+
import { communityStats } from '../../../shared/';
10761149
10771150
const isWindows =
10781151
typeof navigator !== 'undefined' && /Win/.test(navigator.platform);
@@ -1316,12 +1389,11 @@ img.object-contain:hover {
13161389
text-overflow: ellipsis;
13171390
}
13181391
1319-
/* Hide scrollbar but keep functionality */
1320-
.scrollbar-hide {
1321-
-ms-overflow-style: none;
1322-
scrollbar-width: none;
1323-
}
1324-
.scrollbar-hide::-webkit-scrollbar {
1325-
display: none;
1392+
/* Discord embed styling */
1393+
.discord-embed {
1394+
display: block;
1395+
border: none;
1396+
border-radius: 12px;
1397+
min-height: 600px;
13261398
}
13271399
</style>

.web/docs/.vitepress/theme/components/Layout.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useRouter } from 'vitepress';
44
import { watch } from 'vue';
55
import HomeHeroImage from './HomeHeroImage.vue';
66
import LandingAfter from './LandingAfter.vue';
7-
import MyGlobalButton from './DiscordButton.vue';
7+
import DiscordButton from './DiscordButton.vue';
88
99
const { Layout } = DefaultTheme;
1010
@@ -34,7 +34,7 @@ if (typeof window !== 'undefined' && window.posthog) {
3434
<slot />
3535
</template>
3636
<template #layout-bottom>
37-
<MyGlobalButton />
37+
<DiscordButton />
3838
</template>
3939
</Layout>
4040
</template>
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import './tailwind.postcss'
2-
import DefaultTheme from 'vitepress/theme'
3-
import VPButton from 'vitepress/dist/client/theme-default/components/VPButton.vue'
4-
import VPBadge from 'vitepress/dist/client/theme-default/components/VPBadge.vue'
5-
import './styles/vars.css'
6-
import type {Theme} from 'vitepress'
7-
import Layout from "./components/Layout.vue";
8-
import Extensions from "./components/Extensions.vue"
1+
import './tailwind.postcss';
2+
import DefaultTheme from 'vitepress/theme';
3+
import VPButton from 'vitepress/dist/client/theme-default/components/VPButton.vue';
4+
import VPBadge from 'vitepress/dist/client/theme-default/components/VPBadge.vue';
5+
import './styles/vars.css';
6+
import type { Theme } from 'vitepress';
7+
import Layout from './components/Layout.vue';
8+
import Extensions from './components/Extensions.vue';
99

1010
export default {
11-
extends: DefaultTheme,
12-
Layout: Layout,
13-
enhanceApp({app}) {
14-
app.component('VPButton', VPButton)
15-
app.component('VPBadge', VPBadge)
16-
app.component('Extensions', Extensions)
17-
}
18-
} satisfies Theme
11+
extends: DefaultTheme,
12+
Layout: Layout,
13+
enhanceApp({ app }) {
14+
app.component('VPButton', VPButton);
15+
app.component('VPBadge', VPBadge);
16+
app.component('Extensions', Extensions);
17+
},
18+
} satisfies Theme;

.web/docs/developers/api/java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<dependency>
4545
<groupId>io.grpc</groupId>
4646
<artifactId>grpc-netty-shaded</artifactId>
47-
<version>1.72.0</version>
47+
<version>1.75.0</version>
4848
</dependency>
4949
<dependency>
5050
<groupId>io.grpc</groupId>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.gradle
2+
build
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: 'OpenAPI Reference'
3+
description: 'Complete OpenAPI 3.1.0 specification for the Gate API with interactive documentation and examples.'
4+
---
5+
6+
# OpenAPI Reference
7+
8+
The Gate API is fully documented using OpenAPI 3.1.0 specification. This provides a machine-readable description of the API that can be used to generate client libraries, interactive documentation, and testing tools.
9+
10+
::: warning Type-Safe Client Libraries
11+
12+
**We provide official, type-safe client libraries** for multiple programming languages. These are the recommended way to interact with the Gate API as they provide compile-time type safety, better error handling, and are automatically kept in sync with API changes.
13+
14+
:::
15+
16+
<!--@include: ./sdks.md-->
17+
18+
19+
## OpenAPI Specification
20+
21+
If you still want to use the OpenAPI specification, you can find it below or in the GitHub repository here [gate_service.openapi.yaml](https://github.com/minekube/gate/blob/master/.web/docs/developers/api/gen/openapi/minekube/gate/v1/gate_service.openapi.yaml) or as a raw text link [gate_service.openapi.yaml](https://raw.githubusercontent.com/minekube/gate/master/.web/docs/developers/api/gen/openapi/minekube/gate/v1/gate_service.openapi.yaml).
22+
23+
::: code-group
24+
25+
```yaml [gate_service.openapi.yaml]
26+
<!--@include: ./gen/openapi/minekube/gate/v1/gate_service.openapi.yaml -->
27+
```
28+
29+
:::

0 commit comments

Comments
 (0)