Uniporter 1.3.2

Add a http server on port 25565!

  1. lj2000lj
    Native Minecraft Version:
    1.17
    Tested Minecraft Versions:
    • 1.12
    • 1.17
    Source Code:
    https://github.com/Apisium/Uniporter/
    Contributors:
    Baleine_2000
    Uniporter
    icon.png

    A netty wrapper for Minecraft, which allows running multiple protocols in same port.

    Currently, works for HTTP/1.1 standards and regular SSL, more protocols will be added later on.

    No direct NMS codes are used, and tested on Spigot 1.17 and 1.12.2.

    Quick Start
    1. Put the jar into /plugin.
    2. Start or reload the server.
    3. Modify /plugin/Uniporter/route.yml.
    4. Put some html in /plugin/Uniporter/static/ or other paths in the route.yml.
    5. Restart or reload the server.
    6. You are all good. By default http://serverip:25565 (assuming your minecraft runs on 25565) will show you something :)
    Developer Hints
    Okay, if you want to do something fancy with your programming ability, sadly I haven't finished the dev doc, but the javadoc is already done.

    Where? Inside the source code :(

    Have a look into cn.apisium.uniporter.Uniporter and cn.apisium.uniporter.example, you'll get the idea!

    FAQ
    Q: Does it support version x.xx.x?
    Well, since the plugin contains regular Netty codes, and a non-hardcoded reflection helper, I would argue that it most likely works on all modern minecraft bukkit/spigot/paper server.

    However, it is not guarantee to be worked on any forge or fabric hybrid servers, since I'm not entirely sure about how they handled the Netty channel instance. This will be resolved in near future.

    Q: Does it breaks vanilla mechanics?
    For gameplay aspect, no. The code is supposed to be harmless to vanilla gameplay.

    For network aspect, well, sort of, but it won't break anything, here is the technical explanation:

    Since the plugin need to read the very first byte of handshake packets (like legacy server ping handler does), so if you have a handshake packet start with byte:

    • 22 (the SSL handshake byte) or
    • any of character 'G', 'H', 'P', 'D', 'C', 'O', 'T' (the start of a Http request byte for HTTP/1.1)
    from vanilla, it broke. Fortunately, as for as I know, there is no such packet exist at least for versions below 1.17.x inclusive.

    Q: Will it be compatible to plugin xxx?
    Most likely yes, unless they change the default Netty behavior of the server (which should be vary vary vary rare).

    Okay, above are questions I made up, if you have anything wanted to add to the list, feel free to submit an issue.

    By the way, officially supported issue languages are:

    • English (but you might already notice that it is not my native language) and
    • Chinese (both simplified or traditional are fine, but I will reply you issue in simplified)
    • Marsnese, I mean, Chinese styled Mars language, aka 火星文 :)
    Oh, here should be one more Q:

    Q: Why don't you create a Chinese version Readme?
    Because I don't want to rewrite the whole thing twice, or maybe you can do the translation :)

    PR welcome!

    Yeah, I know this doc has insufficient information, I will do some more work later on, for now, if you have any enquire, please submit an issue.
    MyTol likes this.

Recent Updates

  1. Lots of new features
  2. 1.2.6 - Dev Api Update
  3. 1.2.5 - Dev Api Updates

Recent Reviews

  1. SnowCutieOwO
    SnowCutieOwO
    5/5,
    Version: 1.1
    牛逼啊这个人,他有操作的啊
    ===================================
    ===================================
    1. lj2000lj