Skip to content

Spigot plugin that exposes a REST APi for developers to consume

License

Notifications You must be signed in to change notification settings

Pequla/LittleWeb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LittleWeb

Spigot plugin that exposes a REST API for developers to consume

Requires plugin LittleLink

Configuration

api:
  port: 8888
  address: localhost
  • port where the HTTP Jetty Server will bind too, must be greater than 1024 since minecraft servers shouldn't be run as root
  • address where the HTTP Jetty Server will listen to. If you want to expose the api without a reverse proxy you can do so by setting it to 0.0.0.0

API Endpoints

Plugin provides currently only 2 endpoints

GET /api/status

Sample response:

{
  "players": {
    "max": 30,
    "online": 3,
    "list": [
      {
        "id": "12b7b9c9-7611-4679-bae8-94ed55a6b7a4",
        "name": "jb_himawari"
      },
      {
        "id": "eaf3de81-e7e9-4395-a0b1-456735b63aa7",
        "name": "Twan_MC"
      },
      {
        "id": "5be97b0c-657f-4fb9-baa8-b463b3040c28",
        "name": "Rekcah_"
      }
    ]
  },
  "world": {
    "seed": "-4255308501429674615",
    "time": 2832,
    "type": "minecraft:normal"
  },
  "plugins": [
    {
      "name": "CoreProtect",
      "version": "21.2",
      "authors": [
        "Intelli"
      ],
      "description": "Provides block protection for your server.\n",
      "website": "http://coreprotect.net"
    },
    {
      "name": "LuckPerms",
      "version": "5.4.26",
      "authors": [
        "Luck"
      ],
      "description": "A permissions plugin",
      "website": "https://luckperms.net"
    },
    {
      "name": "CustomBeaconRange",
      "version": "0.1",
      "authors": [
        "Soussou"
      ],
      "description": "A plugin to customize beacon effect range",
      "website": null
    },
    {
      "name": "LittleLink",
      "version": "1.7",
      "authors": [
        "Pequla"
      ],
      "description": "Allows for simple whitelisting on the minecraft server",
      "website": "https://pequla.com"
    },
    {
      "name": "LittleWeb",
      "version": "1.3",
      "authors": [
        "Pequla"
      ],
      "description": "Exposes a public REST API from data found in LittleLink",
      "website": "https://github.com/Pequla/LittleWeb"
    },
    {
      "name": "LittleHooks",
      "version": "1.2",
      "authors": [
        "Pequla"
      ],
      "description": "Discord webhook integration for your minecraft server",
      "website": "https://pequla.com"
    },
    {
      "name": "spark",
      "version": "1.9.9",
      "authors": [
        "Luck"
      ],
      "description": "spark is a performance profiling plugin/mod for Minecraft clients, servers and proxies.",
      "website": "https://spark.lucko.me/"
    },
    {
      "name": "Vault",
      "version": "1.7.3-b131",
      "authors": [
        "cereal",
        "Sleaker",
        "mung3r"
      ],
      "description": "Vault is a Permissions & Economy API to allow plugins to more easily hook into these systems without needing to hook each individual system themselves.",
      "website": "https://dev.bukkit.org/projects/vault"
    },
    {
      "name": "Essentials",
      "version": "2.19.5-dev+23-6816eb4",
      "authors": [
        "Zenexer",
        "ementalo",
        "Aelux",
        "Brettflan",
        "KimKandor",
        "snowleo",
        "ceulemans",
        "Xeology",
        "KHobbits",
        "md_5",
        "Iaccidentally",
        "drtshock",
        "vemacs",
        "SupaHam",
        "mdcfe",
        "JRoy",
        "pop4959"
      ],
      "description": "Provides an essential, core set of commands for Bukkit.",
      "website": "https://essentialsx.net/"
    },
    {
      "name": "EssentialsChat",
      "version": "2.19.5-dev+23-6816eb4",
      "authors": [
        "Zenexer",
        "ementalo",
        "Aelux",
        "Brettflan",
        "KimKandor",
        "snowleo",
        "ceulemans",
        "Xeology",
        "KHobbits",
        "md_5",
        "Okamosy",
        "Iaccidentally",
        "mdcfe",
        "JRoy",
        "triagonal"
      ],
      "description": "Provides chat control features for Essentials.  Requires Permissions.",
      "website": "https://essentialsx.net/"
    },
    {
      "name": "LWC",
      "version": "2.2.7-ad0f824",
      "authors": [
        "Hidendra",
        "pop4959",
        "Me_Goes_RAWR"
      ],
      "description": "Inventory protection & management utilizing SQLite or MySQL as its backend Other blocks can also be protected individually, if configured.\n",
      "website": "https://www.spigotmc.org/resources/lwc-extended.69551/"
    },
    {
      "name": "EssentialsSpawn",
      "version": "2.19.5-dev+23-6816eb4",
      "authors": [
        "Zenexer",
        "ementalo",
        "Aelux",
        "Brettflan",
        "KimKandor",
        "snowleo",
        "ceulemans",
        "Xeology",
        "KHobbits",
        "SupaHam",
        "mdcfe",
        "DoNotSpamPls",
        "JRoy"
      ],
      "description": "Provides spawn control commands, utilizing Essentials.",
      "website": "https://essentialsx.net/"
    },
    {
      "name": "Harbor",
      "version": "1.6.3",
      "authors": [
        "TechToolbox (@nkomarn)"
      ],
      "description": "Harbor redefines how sleep works in your server, making it easier for all the online players to get in bed quickly and skip through the night!",
      "website": "https://nkomarn.xyz"
    }
  ],
  "version": "git-Paper-41 (MC: 1.19)"
}

When there are no players online the list will be returned as an empty array

There are also additional endpoints for targeting specific fields:

  • GET /api/status/players (Returns only the players object)
  • GET /api/status/plugins (Returns only the plugins array)
  • GET /api/status/world (Returns only the world object)

GET /api/user

The uuid query parameter is mandatory. So the example url should be /api/user?uuid=69c154a4-0a6a-4578-b169-c4be379e1e8e

Sample response:

{
    "id": "407635624787443712",
    "name": "LYuae#5987",
    "nickname": "Yuae %",
    "avatar": "https://cdn.discordapp.com/avatars/407635624787443712/8d80be04a42c5622aa5ebe358c68ea67.png"
}

GET /api/players

Displays all players that have ever joined the server

Sample response:

[
  {
    "id": "12b7b9c9-7611-4679-bae8-94ed55a6b7a4",
    "name": "jb_himawari"
  },
  {
    "id": "eaf3de81-e7e9-4395-a0b1-456735b63aa7",
    "name": "Twan_MC"
  },
  {
    "id": "5be97b0c-657f-4fb9-baa8-b463b3040c28",
    "name": "Rekcah_"
  }
]

Exceptions and Status codes

If there is an error you can receive the following status codes:

  • 404 NOT FOUND - The required object was not found
  • 400 BAD REQUEST - There was an error processing your request's arguments
  • 500 SERVER ERROR - Something went wrong internally, you should probably restart the minecraft server

Sample response:

{
    "message": "User not found",
    "timestamp": 1655245110448
}

About

Spigot plugin that exposes a REST APi for developers to consume

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages