diff --git a/docs/widgets.md b/docs/widgets.md index ac03ad5461..b3c7fed318 100644 --- a/docs/widgets.md +++ b/docs/widgets.md @@ -40,6 +40,7 @@ Dashy has support for displaying dynamic content in the form of widgets. There a - [Mvg Connection](#mvg-connection) - [Custom search](#custom-search) - [Rescuetime overview](#rescuetime-overview) + - [Minecraft Server](#minecraft-server) - **[Self-Hosted Services Widgets](#self-hosted-services-widgets)** - [System Info](#system-info) - [Cron Monitoring](#cron-monitoring-health-checks) @@ -1378,6 +1379,45 @@ Show an overview of how you have spent your time for the current day. --- +### Minecraft Server + +Show minecraft server status + +

+ +#### Options + +**Field** | **Type** | **Required** | **Description** +--- | --- | --- | --- +**`title`** | `string` | _Optional_ | Display title for server uses server address if not set. +**`server`** | `string` | Required | Server hostname or ip(:port) will use srv records. +**`bedrock`** | `boolean` | _Optional_ | If server is a bedrock edition server. (default false) +**`showMods`** | `boolean` | _Optional_ | Display mod list if available +**`showPlayers`** | `boolean` | _Optional_ | Display player list if available +**`showPlugins`** | `boolean` | _Optional_ | Display plugin list if available + +#### Example + +```yaml + - type: minecraft-status + options: + title: Venity Network + server: play.venitymc.com + bedrock: true + showMods: true + showPlayers: true + showPlugins: true +``` +#### Info + +- **CORS**: 🟢 Enabled +- **Auth**: 🟢 Not Required +- **Price**: 🟢 Free +- **Host**: [Minecraft Server Status](https://mcsrvstat.us/) +- **Privacy**: _See [Minecraft Server Status FAQ](https://mcsrvstat.us/faq)_ + +--- + ## Self-Hosted Services Widgets diff --git a/src/components/Widgets/MinecraftStatus.vue b/src/components/Widgets/MinecraftStatus.vue new file mode 100644 index 0000000000..fc20f96d2a --- /dev/null +++ b/src/components/Widgets/MinecraftStatus.vue @@ -0,0 +1,258 @@ + + + + + + diff --git a/src/components/Widgets/WidgetBase.vue b/src/components/Widgets/WidgetBase.vue index c4d4220f51..b2e57caae5 100644 --- a/src/components/Widgets/WidgetBase.vue +++ b/src/components/Widgets/WidgetBase.vue @@ -86,6 +86,7 @@ const COMPAT = { iframe: 'IframeWidget', image: 'ImageWidget', joke: 'Jokes', + 'minecraft-status': 'MinecraftStatus', 'mullvad-status': 'MullvadStatus', mvg: 'Mvg', linkding: 'Linkding', diff --git a/src/utils/defaults.js b/src/utils/defaults.js index 88b5757dd6..787c440b37 100644 --- a/src/utils/defaults.js +++ b/src/utils/defaults.js @@ -240,6 +240,10 @@ module.exports = { holidays: 'https://kayaposoft.com/enrico/json/v2.0/?action=getHolidaysForDateRange', jokes: 'https://v2.jokeapi.dev/joke/', news: 'https://api.currentsapi.services/v1/latest-news', + minecraftPlayerIcon: 'https://mc-heads.net/avatar/', + minecraftPlayerLink: 'https://minecraftuuid.com/?search=', + minecraftServerLink: 'https://mcsrvstat.us/server/', + minecraftStatus: 'https://api.mcsrvstat.us/', mullvad: 'https://am.i.mullvad.net/json', mvg: 'https://www.mvg.de/api/fib/v2/', publicIp: 'https://ipapi.co/json',