Giter Club home page Giter Club logo

minimotd's Introduction

MiniMOTD logo

build latest release

MiniMOTD is a basic server list MOTD plugin/mod for Minecraft servers and proxies

  • MiniMOTD supports RGB colors and gradients through MiniMessage, which is also where MiniMOTD gets it's name.
  • For more detailed info on formatting text, refer to the MiniMessage docs.
  • RGB colors are automatically downsampled for outdated clients.
  • RGB colors are only able to be sent by proxies and 1.16+ servers, and can only be seen by 1.16+ clients.

Server Platforms

Proxy Platforms

Downloads

Downloads can be obtained from GitHub releases. There is a separate jar for each platform, as well as a universal jar for all platforms. Paper and Spigot share the same jar, as do Waterfall and Bungeecord.

Configuration

See the wiki for configuration details

Screenshots

demo motd image

minimotd's People

Contributors

dependabot[bot] avatar jpenilla avatar pandather avatar renovate-bot avatar renovate[bot] avatar xmikooo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

minimotd's Issues

[Bug Report] SLF4J lib in fabric 1.17

Describe the bug
The latest version of MiniMOTD published contains the libs slf4j-api and log4j-slf4j-impl, causing conflicts.
In the code of this repository they have already been removed, publishing a new build would solve it.

To Reproduce
Not applicable

Expected behavior
Not applicable

Screenshots
image

Server Software and Version:

  • Vendor: Fabric
  • Minecraft Version: 1.17
  • Output of /version command: Not applicable

Additional context
BRForgers/DisFabric#30

[Bug Report] Couldn't pass ProxyPingEvent to minimotd-velocity

[12:12:11 ERROR]: Couldn't pass ProxyPingEvent to minimotd-velocity
java.lang.NoClassDefFoundError: net/kyori/adventure/text/minimessage/MiniMessage
at xyz.jpenilla.minimotd.lib.platform_velocity.xyz.jpenilla.minimotd.common.MiniMOTD.parse(MiniMOTD.java:113) ~[?:?]
at xyz.jpenilla.minimotd.lib.platform_velocity.xyz.jpenilla.minimotd.common.MiniMOTD.createMOTD(MiniMOTD.java:95) ~[?:?]
at xyz.jpenilla.minimotd.velocity.PingListener.handle(PingListener.java:56) ~[?:?]
at xyz.jpenilla.minimotd.velocity.PingListener.lambda$onProxyPingEvent$0(PingListener.java:49) ~[?:?]
at com.velocitypowered.api.event.EventTask$1.execute(EventTask.java:66) ~[velocity.jar:3.1.1]
at com.velocitypowered.proxy.event.VelocityEventManager$ContinuationTask.execute(VelocityEventManager.java:546) ~[velocity.jar:3.1.1]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:605) ~[velocity.jar:3.1.1]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[velocity.jar:3.1.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]

add forced_hosts support

Is it possible to implement forced_hosts support.
So that each hot has its own motd line
server1.lokalhost .com - motd testx2
server2.lokalhost .com - motd testx2

Was incredible: 3

[Feature Request] Take over Bungee messages.properties to reload live!

Is your feature request related to a problem? Please describe.
Theres no easy way to quickly edit the bungee messages.properties file and reload it without rebooting the bungee server while everything is running, specifically when the server fills up I wish to be able to change the server full message.
Would be nice to also change the restating message live too depending on changes/maintenence periods.
Same for the server_went_down.

It would just be nice to be able to reload this file live.

Describe the solution you'd like
A file in the same formats you use to easily use color/gradients and to reload these messages live without rebootin the server.

Describe alternatives you've considered
Restarting the bungee every time.

[Bug Report] Server Crashing on Mod Loading

Describe the bug
Server crashes upon loading 2.0.5 or 2.0.7 version of mod.

To Reproduce
Steps to reproduce the behavior:

  1. Install either version to your servers mod folder
  2. Launch server and inspect that it crashes

Expected behavior
Server should run with the mod and not crash.

Server Software and Version:

  • Vendor: Fabric
  • Minecraft Version: 1.18.1

Additional
latest.log

[Feature Request] Customise hover over for player count

Is your feature request related to a problem? Please describe.
Once #91 is fixed.

Allow us to customize what is shown when hovering over player counts

Describe the solution you'd like
Allow us to specify exactly what we want when hovering over player counts and placeholders like %random_player% %online@server% %online@world%.

For example in ServerListPlus I was able to use &a%random_players@survival,3|, % which showed 3 random players online to that specific server.

Here is what I used to use:

  Players:
    Hover:
    - |-
      &eAhoy scallywag, get ye booty on PirateCrarft!
      
        - &aSurvival: &e%online@survival%/100 players online
        - &aCreative: &e%online@creative%/50 players online
        - &aTest: &e%online@test%/50 players online

      &a%random_players@survival,3|, %

      &aJoin now and play together with %random_player% ...

Describe alternatives you've considered
ServerListPlus

[Feature Request] Custom fallback MOTD for outdated clients

I would like a default MOTD for outdated clients, because sometimes, the downsample RGB Colors look so wrong.

Add an option to disable downsample RGB Colors for outdated clients and enable a "default" motd for outdated clients with default Minecraft colors and formating (no gradient, no RGB)

The config would look something like this:

    # Explanation here
    defaultMotdEnabled: true
    defaultMotd:
     - "<bold><aqua>This is a default MOTD</aqua></bold>"

[Bug Report] Fake players is invalid

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Fake players is invalid

Screenshots
image
image

Server Software and Version:

  • Vendor: Purpur、paper
  • Minecraft Version: 1.18.1

Additional context
Add any other context about the problem here.

[Bug Report] Configuration Error?

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Dig straight down
  2. Right click 5 times
  3. Craft a Netherite Hoe
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Server Software and Version:

  • Vendor: Bungeecord
  • Minecraft Version: 1.8.8
  • Output of /version command: Command Not Found?

Additional context
Configuration items for just-X-more and Max-players have been reversed

[Feature Request] Images show up by chance

Is your feature request related to a problem? Please describe.
It is not related to a problem other than my preference

Describe the solution you'd like
I would like images to be able to be put into groups/folders and have the images in those groups show up by chance. So I can have a small percent chance of a specific type of image showing up while other images or groups can have other chances.

Describe alternatives you've considered
I have thought about just duplicating the images I want to show up more but this is inefficient and annoying

Additional context
Nope, that's it

[Feature Request] Command Controlled MOTDs

Feature Request:
Have command controlled MOTDs. So We could just run the command /minimotd change <motd group> so doing /minimotd change whitelist would make the motd cycle over that group's motds. Thanks!

Example (syntax may not be correct, but you get the idea):

motds=[
  {
    name="whitelist",
    list=[
      {
        icon="server-icon.png"
        line1="whitelist motd 1"
        line2="whitelist motd 1"
      },
      {
        icon="server-icon.png"
        line1="whitelist motd 2"
        line2="whitelist motd 2"
      }
      ]
    },
  {
    name="normal",
    list=[
      {
        icon="server-icon.png"
        line1="normal motd 1"
        line2="normal motd 1"
      },
      {
        icon="server-icon.png"
        line1="normal motd 2"
        line2="normal motd 2"
      }
    ]
  }
]

[Feature Request] More placeholders

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Support more placeholders, such as:

  • {randomPlayer}, which selects a random online player and inserts their username.
  • {tps}. which inserts the current tps, formatted to 2 decimal places.
  • {mspt}, which inserts the current mspt, formatted to 2 decimal places.
  • {mcVersion}, which inserts the version the minecraft server is running.
  • {uptime}, which inserts the current server uptime in the dd'd'hh'h'mm'm' format. (eg. 1d4h12m, which is 1 day, 4 hours, and 12 minutes)
  • {memUsed}, which inserts the amount of memory used by the server in gigabytes, formatted to 1 decimal place.
  • {memAvail}, which inserts the amount of memory available to the server in gigabytes, formatted to 1 decimal place.

These are the ones I can think of, feel free to add others.

Describe alternatives you've considered
N/A

Additional context
N/A

[Feature Request] Cache players to improve performance

Is your feature request related to a problem? Please describe.

I have a velocity server with over 1000 players at peak times, and it would be useful if players are cached whenever they ping the server.

Describe the solution you'd like

A feature such as CleanMotD's to cache players; I'd use them but they don't support velocity:
https://github.com/2LStudios-MC/CleanMotD/blob/master/src/dev/_2lstudios/cleanmotd/bungee/listeners/ProxyPingListener.java

Describe alternatives you've considered

N/A

Additional context

N/A

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

[Feature Request] Unicode characters support

Is your feature request related to a problem? Please describe.
I'm always frustrated when I can't use Unicode characters in MiniMOTD.

Describe the solution you'd like
I want to add Unicode characters support to MiniMOTD, because when I put unicode character in MOTD, it doesn't appear.

Describe alternatives you've considered
The only alternative here is using different MOTD plugin.

Installed Plugin Creates Fatal Error

Velocity version 1.0.10 will not run with this installed.
Velocity downloaded from website as latest build (#244, 14 Sep 2020)

See Error Below:

19.09 20:45:08 [Server] INFO Booting up Velocity 1.0.10-SNAPSHOT (git-79d50abe-b244)...
19.09 20:45:08 [Server] INFO Connections will use epoll channels, native (Linux amd64) compression, Java ciphers
19.09 20:45:08 [Server] INFO Loading plugins...
19.09 20:45:09 [Server] ERROR Exception in thread "main" java.lang.NoClassDefFoundError: net/kyori/adventure/text/Component
19.09 20:45:09 [Server] ERROR at java.lang.Class.getDeclaredConstructors0(Native Method)
19.09 20:45:09 [Server] ERROR at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
19.09 20:45:09 [Server] ERROR at java.lang.Class.getDeclaredConstructors(Class.java:2020)
19.09 20:45:09 [Server] ERROR at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:243)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:115)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:717)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.UntargettedBindingProcessor$1.visit(UntargettedBindingProcessor.java:54)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.UntargettedBindingProcessor$1.visit(UntargettedBindingProcessor.java:36)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.UntargettedBindingImpl.acceptTargetVisitor(UntargettedBindingImpl.java:49)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:35)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:27)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:99)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.AbstractProcessor.process(AbstractProcessor.java:54)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:186)
19.09 20:45:09 [Server] ERROR at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:105)
19.09 20:45:09 [Server] ERROR at com.google.inject.Guice.createInjector(Guice.java:87)
19.09 20:45:09 [Server] ERROR at com.google.inject.Guice.createInjector(Guice.java:69)
19.09 20:45:09 [Server] ERROR at com.google.inject.Guice.createInjector(Guice.java:59)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.plugin.loader.java.JavaPluginLoader.createPlugin(JavaPluginLoader.java:77)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.plugin.VelocityPluginManager.loadPlugins(VelocityPluginManager.java:98)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.VelocityServer.loadPlugins(VelocityServer.java:245)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.VelocityServer.start(VelocityServer.java:205)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.Velocity.main(Velocity.java:47)
19.09 20:45:09 [Server] ERROR Caused by: java.lang.ClassNotFoundException: net.kyori.adventure.text.Component
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass0(PluginClassLoader.java:66)
19.09 20:45:09 [Server] ERROR at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:43)
19.09 20:45:09 [Server] ERROR at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
19.09 20:45:09 [Server] ERROR ... 23 more
19.09 20:45:09 [Multicraft] Server shut down (stopping)

[Feature Request] Option to announce forge for virtual hosts on proxies

Is your feature request related to a problem? Please describe.
When connecting with a Forge client, a forge virtual host is declared as vanilla, even if the back end server is running mods.

Describe the solution you'd like
Allow specifying vanilla/forge(/other?) on these virtual host entries.

Describe alternatives you've considered
Ping passthrough handles the situation, but that defeats the purpose of MiniMOTD.

[Feature Request] MOTD "Profiles"

Is your feature request related to a problem? Please describe.
Not related to a problem

Describe the solution you'd like
It could be a nice implementation to have a way to define multiple "MOTD Profiles". By that I essentially mean different files which all have conditions, priorities and the MOTD(s) to use (including any other changes like icons, player count change, etc)

Those additional files should be in their own folder (i.e. plugins/MiniMOTD/profiles/) to not make the main folder cluttered with them.

Example File:

# Lower number = Lower priority
priority=10

# Not entirely sure about the syntax... Just using a random one
# If the player is banned, show this setting
condition="{isBanned}"

icon-enabled=true
motd-enabled=true
motds=[
    {
        icon="banned"
        line1="<red>You're banned from this Server!"
        line2="<gray>Appeal at <aqua>https://myserver.com/ban-appeal"
    }
]
player-count-settings {
    allow-exceeding-maximum=false
    disable-player-list-hover=true
    hide-player-count=true
}

The above example would override whatever has been defined in the default main.conf (which would act as the default if none of the profiles match) when the condition matches.
Any setting missing from that file would use whatever is set in the main.conf

I can think of the following placeholders to be available for conditions if it isn't too hard to implement:

  • {isBanned}
    Returns true or false based on whether the player is banned or not
  • {size}
    Returns a number representing the current amount of players online on the server.
    Could be used in an expression such as {size} == 69 to return true or false based on it.
  • {date <format>}
    Allows comparing the current date to a specific one using a specified SimpleDateFormat.
    Could be used in an expression such as {date dd.MM} == '01.01' to return true or false based on it.
  • {hour}
    Returns a number representing the current hour (1-24) based on the timezone the server is in (or default to UTC?).
    Could be used in an expression such as {hour} >= 23 && {hour} <= 1 to return true or false based on it.
  • {minute}
    Same as {hour} but the number represents the current minute (0-59).
  • {second}
    Same as {hour} but the number represents the current second (0-59).
  • {version}
    Returns a number representing the protocol version of a client.
    Could be used in an expression such as {version} <= 393 to return true or false based on it.

Describe alternatives you've considered
There isn't really any. You at most can define multiple MOTDs, icons and such which are selected at random.

Additional context
This could be a neat solution for issues #19 and #56 as the following config examples could be used.

Pre 1.16 MOTDs:

# Lower number = Lower priority
priority=10

condition="{version} <= 578" # Version is less or equal to 1.15.2

icon-enabled=true
motd-enabled=true
motds=[
    {
        line1="<gray>[<green>1.13-1.16.5</green>] Welcome to <aqua>play.myserver.com</aqua>!"
        line2="<gray>Our website: <aqua>https://myserver.com</aqua>"
    }
]

Time-based MOTD:

# Lower number = Lower priority
priority=10

condition="{hour} >= 23 && {hour} <= 24" # Time is between 11PM and midnight

icon-enabled=true
motd-enabled=true
motds=[
    {
        line1="<gray>[<green>1.13-1.16.5</green>] Welcome to <aqua>play.myserver.com</aqua>!"
        line2="<red>MyServer is currently in <bold>Maintenance Mode</bold>! Check back later."
    }
]

[Bug Report] This happens when another thing should have

Server Software and Version:
13:11:01 [INFO] Linux 4.15.0-122-generic [x64],
13:11:01 [INFO] Java 1.8.0_272 [x64],
13:11:01 [INFO] BungeeCord git:BungeeCord-Bootstrap:1.16-R0.4-SNAPSHOT:9c078b7:1539,


Hello,

first of all, please refer to this issue: ME1312/SubServers-2#56 (comment)

So basically, this plugin somehow does not work with SubServer, but I cannot find some easy reason why.

It works fine when used with bungeecord itself, but it only shows "Cannot connect to the server" when the bungeecord is running through SubServers.

Any idea?

[Bug Report] Hover over players not working in 1.18

Describe the bug
There is no hover over players being shown in 1.18.

To Reproduce
Steps to reproduce the behavior:

  1. Use 1.18, and hover over online players number, it shows nothing.

Expected behavior
To show random online players

Server Software and Version:

  • Vendor: waterfall 1.18 477
  • Minecraft Version: 1.18.1

[Feature Request] Support for FabricPlaceholderAPI

Is your feature request related to a problem? Please describe.
The only placeholders I can use right now are the player online and max player slot ones included with the mod.

Describe the solution you'd like
Support for FabricPlaceholderAPI would be awesome as there is a mod called Box of Placeholders that adds more placeholders to use with the mod

Describe alternatives you've considered
None.

Additional context
None, it's just a feature request to add support for a Fabric placeholder mod.

[Feature Request] MiniMOTD for forge servers

I currently run a server for a group of friends running forge and look if I can tweak our server's MOTD with gradient effects.
I happen to run into this plugin via google and found it doesn't have forge support. It would be great for this to be available to forge servers too.

If it is not possible, is there a reason why?

[Feature Request] Set MOTD via API

Is your feature request related to a problem? Please describe.
Having to modify a file in order to set the motd, and then having to reload the plugin for it to become active.

Describe the solution you'd like
A developer API to be able to set the "current" motd, probably wont support multiple MOTD like the config unless there would be an easy way to implement this. This would allow people to incorporate the server list MOTD into their own plugins to make their server more interactable.

Example:

You want to do some development on the live server and you can't have player on for that, instead of having to go into the config and add a new line for he motd (including all the special colonizing you do to make your motd unique) you can just specify the maintenance motd in your plugin and have it change the active motd. After you're done you can tell MiniMOTD to switch back to the config motd.
MiniMOTD.getAPI().setMOTD("properly-formatted-string");
MiniMOTD.getAPI().resetMOTD();

Optional: MiniMOTD.getAPI().setMOTD(List<String> properly-formatted-list-of-strings);

Another Example:

You throw events on your server and want to announce when they are happening in order to draw more plays to your server. Instead of having to prepare the server MOTD a day in advance (if you start your server daily like me). You can just make/commission a plugin that can set the motd to whatever you want using in-game commands and switch it back whenever. This makes for a nice way to interact with your playerbase and a great feature to add to your server. (Spigot again, because I don't restart my proxy)

If I had the knowledge to create a sophisticated plugin like this, this is definitely something I would include in it, just to give others that readiness to change the MOTD at any moment.

Describe alternatives you've considered
Having your plugin actively change the needed file then using plugman to reload it because I'm pretty sure you can't force MiniMOTD to reload itself, (This would only be possible on the spigot version, I use bungeecord)

Additional context

  • Ability to set one or multiple motd using an API
  • Ability to reset the motd to whatever is contained inside the config file for MiniMOTD
  • Preview function (for development only) to parse your string to make sure it is formatted correctly
  • Maybe a way to serve a specific user a custom MOTD

[Feature Request] Automatic Text centering

Hi,
Adding spaces to center text is quite annoying. I'd love to see an option for the plugin to automatically center text within the given line. When there is some text at the beginning of the line, the text between <center></center> should be centered to the remaining space in that line. Any text after </center> should be aligned to the right.
While we are at it, an option to just align text to the right with <right> could be useful.

Examples:
- "Text on the left <center>Centered text</center>
image

- "Text on the left <right>Text on the right</right>
image

- "Text on the left <center>Text in the middle</center> text on the right{br}<center> Text in the middle of the next line</center>"
image

[Bug Report] MOTD formatting text is cleared on reload

Describe the bug
Formatting tags are removed after running minimotd reload

To Reproduce
Steps to reproduce the behavior:

  1. Open config/MiniMOTD/main.conf
  2. icon-enabled: false
  3. motd-enabled: true
  4. Create a single motd entry.
  5. Write minimessage-style formatted text for motd lines 1 and 2
  6. Save and close the config file.
  7. Run /minimotd reload on the server
  8. Re-open the config file.

Expected behavior
I expect my formatting to persist across reloads.

Server Software and Version:

  • Vendor: Fabric
  • Minecraft Version: 1.16.5

Additional context
N/A

[Bug Report] 1.8 clients missing motd

Describe the bug
pretty easy to reproduce, ping bungee with a 1.8.9 client and it is just empty

To Reproduce
ping server with this plugin on a 1.8.9 or older client

Expected behavior
motd to show

Screenshots
https://i.gyazo.com/9e1103accbee15d5570826f1f67abb7a.png

Server Software and Version:
[20:14:38 INFO]: This server is running Travertine version git:Travertine-Bootstrap:1.16-R0.5-SNAPSHOT:8087b8f:175 by md_5

Additional context
Add any other context about the problem here.

[Feature Request] Different MOTDs for hostnames (velocity)

Is your feature request related to a problem? Please describe.
I can't display different MOTDs for different hostnames -- in my scenario I have a build and a gameplay server that I want to differerntriate.

Describe the solution you'd like
Mabye some sort of subcategory using the hostname as a paramater?

[Feature Request] Custom PlayerCount Message

Is your feature request related to a problem? Please describe.
no

Describe the solution you'd like
to add a custom player count message which shows up when a player hovers over the player count

Describe alternatives you've considered
none

Additional context
a mod which implements this in spigot: https://www.spigotmc.org/resources/cbmfc-%E2%98%85-custom-serverlist-playerlist-private-message-friend-party-maintenance-system-%E2%98%85.55905/
an example screenshot:
image

[Bug Report] Fabric Server Crash Minecraft 1.18.2

Describe the bug
Server crash

To Reproduce
Steps to reproduce the behavior:

  1. Start server

Expected behavior
I want server to start and plugin to work)

Screenshots
If applicable, add screenshots to help explain your problem.

Server Software and Version:

  • Vendor: Fabric
  • Minecraft Version: 1.18.2
  • Output of /version command: fabric don`t have this command

Additional context
Fabric API v0.47.10
latest.log

[Bug Report] This happens when another thing should have

Describe the bug
A clear and concise description of what the bug is. I have 2 Servers that are the same 1 for testing and 1 for production. The testserver is on java 8 while the production one is on java 11. Somewhere between paper build 562 and 648 it breaks in java 11 but not in java 8 (/minimotd commands are still executable but the server motd from server.properties is loaded.)

I tested like a dozen builds from 648 to latest today. I should have done a binary search maybe but its late and this problem is only happening in my production environment so I cannot test it on my testserver.

Server Software and Version:

  • Vendor: Paper
  • Minecraft Version: 1.16.5
  • git-Paper-562 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
    You are 172 version(s) behind

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/build.yml
gradle
gradle.properties
settings.gradle.kts
  • org.gradle.toolchains.foojay-resolver-convention 0.8.0
build.gradle.kts
common/build.gradle.kts
dist/bukkit-bungeecord/build.gradle.kts
gradle/libs.versions.toml
  • net.kyori:adventure-bom 4.16.0
  • net.kyori:adventure-platform-bungeecord 4.3.2
  • net.kyori:adventure-platform-bukkit 4.3.2
  • net.kyori:adventure-platform-fabric 5.13.0-SNAPSHOT
  • net.kyori:adventure-platform-spongeapi 4.3.2
  • org.spongepowered:configurate-hocon 4.1.2
  • org.checkerframework:checker-qual 3.42.0
  • org.slf4j:slf4j-api 1.7.32
  • org.slf4j:slf4j-jdk14 1.7.32
  • org.bstats:bstats-bukkit 3.0.2
  • org.bstats:bstats-bungeecord 3.0.2
  • org.bstats:bstats-velocity 3.0.2
  • org.bstats:bstats-sponge 3.0.2
  • com.destroystokyo.paper:paper-api 1.16.5-R0.1-SNAPSHOT
  • io.papermc:paperlib 1.0.8
  • io.github.waterfallmc:waterfall-api 1.16-R0.5-SNAPSHOT
  • net.fabricmc.fabric-api:fabric-api 0.97.8+1.20.6
  • net.fabricmc:fabric-loader 0.15.10
  • org.spongepowered:spongeapi 7.2.0
  • com.velocitypowered:velocity-api 3.2.0-SNAPSHOT
  • org.junit.jupiter:junit-jupiter-engine 5.10.2
  • net.kyori:indra-common 3.1.3
  • net.kyori:indra-licenser-spotless 3.1.3
  • io.github.goooler.shadow:shadow-gradle-plugin 8.1.7
  • me.modmuss50:mod-publish-plugin 0.5.1
  • io.papermc:hangar-publish-plugin 0.1.2
  • net.kyori.blossom 2.1.0
  • org.spongepowered.gradle.plugin 2.2.0
  • xyz.jpenilla.run-paper 2.2.4
  • xyz.jpenilla.run-velocity 2.2.4
  • xyz.jpenilla.run-waterfall 2.2.4
gradle/build-logic/settings.gradle.kts
gradle/build-logic/build.gradle.kts
gradle/build-logic/src/main/kotlin/minimotd.base-conventions.gradle.kts
gradle/build-logic/src/main/kotlin/minimotd.build-logic.gradle.kts
gradle/build-logic/src/main/kotlin/minimotd.platform-conventions.gradle.kts
gradle/build-logic/src/main/kotlin/minimotd.shadow-platform.gradle.kts
platform/bukkit/build.gradle.kts
platform/bungeecord/build.gradle.kts
platform/fabric/build.gradle.kts
platform/sponge7/build.gradle.kts
platform/sponge8/build.gradle.kts
platform/velocity/build.gradle.kts
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7

  • Check this box to trigger a request for Renovate to run again on this repository

[Bug Report] Test issue

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Dig straight down
  2. Right click 5 times
  3. Craft a Netherite Hoe
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Server Software and Version:

  • Vendor: [e.g. Paper, Tuinity, Velocity, BungeeCord, Waterfall, Fabric, Sponge]
  • Minecraft Version: [e.g. 1.15.2, 1.16.3]
  • Output of /version command: [e.g. This server is running Paper version git-Paper-53 (MC: 1.16.1) (Implementing API version 1.16.1-R0.1-SNAPSHOT)]

Additional context
Add any other context about the problem here.

[Feature Request] Allow MOTD pings to hit back end servers, even if handling MOTD on a proxy

Is your feature request related to a problem? Please describe.
There are some plugins (or panels) that handle events like pings. One such situation I am running into is within the panel AMP. It allows you to put a server "to sleep" aka shutting it down, while continuing to broadcast as online. When a ping is detected, it will boot the server. This is currently not possible to do if the MOTD is handled on the proxy.

Describe the solution you'd like
An option on virtual hosts to simply query the back end server for it's MOTD when MiniMOTD handles a ping, even if it's response is completely ignored.

Describe alternatives you've considered
I can put MiniMOTD on the back end for some servers, but not all, such as Forge (non sponge), Mohsit, Magma.

[Feature Request] Maintenance mode and Wrong Protocol Version

Can you bring a maintenance mode?
Also, if the player is not in the required version, can you provide a special MOTD display for him?

What will it include:
Custom MOTD, Custom ICON, Closing logins to server and sending maintenance message when try to join server.

[Feature Request] show player count on the Virtual host

Is your feature request related to a problem? Please describe.
Virtual hosts, Creative, test servers etc, show the FULL amount of online players instead of how many are on that server.

Describe the solution you'd like
Option in either plugin_settings.conf or the extra-configs that allows showing the actual amount of players online that virtual host.

Describe alternatives you've considered
Going back to ServerListPlus that has this.

[Feature Request] The MOTD Change on older versions of minecraft!

I like the gradients but I don't like how on old versions it looks like that.

So the solution I thought is the motd will change on old versions of minecraft set in the config (on 1.16 motd gradients but 1.15- something else)

An alternative solution will be to check if the version of minecraft is compatible with gradients, if not the plugin will show the normal bungeecord motd.

Note: I don't know if this is possible.

[Bug Report] java.lang.Error: Method became inaccessible: ProxyPingEvent

Waterfall dev 419
MiniMOTD dev 4b61e91

Downgrading to MiniMOTD dev 454439a resolves the issue -- no errors. So assuming it is caused by commit 27fbefd

java.lang.Error: Method became inaccessible: ProxyPingEvent(connection=[/censored:60615] <-> InitialHandler, response=ServerPing(version=ServerPing.Protocol(name=Waterfall 1.8.x, 1.9.x, 1.10.x, 1.11.x, 1.12.x, 1.13.x, 1.14.x, 1.15.x, 1.16.x, protocol=754), players=ServerPing.Players(max=1000, online=0, sample=null), description=§f§bcensored, modinfo=ServerPing.ModInfo(type=FML, modList=[])))
	at net.md_5.bungee.event.EventBus.post(EventBus.java:50) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:466) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler$3.done(InitialHandler.java:269) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler$3.done(InitialHandler.java:245) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler.handle(InitialHandler.java:278) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.protocol.packet.StatusRequest.handle(StatusRequest.java:30) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:111) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:253) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:515) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalAccessException: class net.md_5.bungee.event.EventHandlerMethod cannot access a member of class xyz.jpenilla.minimotd.bungee.PingListener with modifiers "public"
	at jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:558) ~[?:?]
	at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.event.EventBus.post(EventBus.java:47) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	... 39 more
[23:25:06] [Netty Worker IO Thread #1/ERROR]: [/censored:60616] <-> InitialHandler - encountered exception
java.lang.Error: Method became inaccessible: ProxyPingEvent(connection=[/censored:60616] <-> InitialHandler, response=ServerPing(version=ServerPing.Protocol(name=Waterfall 1.8.x, 1.9.x, 1.10.x, 1.11.x, 1.12.x, 1.13.x, 1.14.x, 1.15.x, 1.16.x, protocol=754), players=ServerPing.Players(max=1000, online=0, sample=null), description=§f§bcensored, modinfo=ServerPing.ModInfo(type=FML, modList=[])))
	at net.md_5.bungee.event.EventBus.post(EventBus.java:50) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:466) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler.handle(InitialHandler.java:217) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.protocol.packet.LegacyPing.handle(LegacyPing.java:33) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:111) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:432) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalAccessException: class net.md_5.bungee.event.EventHandlerMethod cannot access a member of class xyz.jpenilla.minimotd.bungee.PingListener with modifiers "public"
	at jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:558) ~[?:?]
	at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.event.EventBus.post(EventBus.java:47) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	... 36 more
[23:25:09] [Netty Worker IO Thread #2/ERROR]: [/censored:34220] <-> InitialHandler - encountered exception
java.lang.Error: Method became inaccessible: ProxyPingEvent(connection=[/censored:34220] <-> InitialHandler, response=ServerPing(version=ServerPing.Protocol(name=Waterfall 1.8.x, 1.9.x, 1.10.x, 1.11.x, 1.12.x, 1.13.x, 1.14.x, 1.15.x, 1.16.x, protocol=47), players=ServerPing.Players(max=1000, online=0, sample=null), description=§f§bcensored, modinfo=ServerPing.ModInfo(type=FML, modList=[])))
	at net.md_5.bungee.event.EventBus.post(EventBus.java:50) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:466) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler$3.done(InitialHandler.java:269) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler$3.done(InitialHandler.java:245) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.connection.InitialHandler.handle(InitialHandler.java:278) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.protocol.packet.StatusRequest.handle(StatusRequest.java:30) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:111) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:253) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:515) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalAccessException: class net.md_5.bungee.event.EventHandlerMethod cannot access a member of class xyz.jpenilla.minimotd.bungee.PingListener with modifiers "public"
	at jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:558) ~[?:?]
	at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	at net.md_5.bungee.event.EventBus.post(EventBus.java:47) ~[BungeeCord.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:b9bcf83:419]
	... 39 more

[Feature Request] Maintenance mode

Can you bring a maintenance mode?

What will it include:
Custom MOTD, Custom ICON, Whitelist player, commands, for start stop and whitelist add, Closing logins to server and sending maintenance message when try to join server.

[Bug Report] Error on loading Velocity proxy

When i load Minimotd into my velocity server i get this error in the console:

[23:16:29 INFO]: Loaded plugin minimotd-velocity 2.0.4 by jmp [23:16:29 INFO]: Loaded 1 plugins [23:16:29 ERROR]: Some errors occurred whilst posting event ProxyInitializeEvent. [23:16:29 ERROR]: #1: java.lang.NoClassDefFoundError: com/velocitypowered/api/event/EventTask at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?] at java.lang.Class.privateGetDeclaredMethods(Class.java:3334) ~[?:?] at java.lang.Class.getDeclaredMethods(Class.java:2446) ~[?:?] at com.google.inject.internal.DeclaredMembers.getDeclaredMethods(DeclaredMembers.java:40) ~[bungeecord.jar:1.1.8] at com.google.inject.spi.InjectionPoint.getDeclaredMethods(InjectionPoint.java:757) ~[bungeecord.jar:1.1.8] at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:676) ~[bungeecord.jar:1.1.8] at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:376) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:182) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:672) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:628) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:614) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:943) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:844) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:300) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:231) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1084) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1116) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1078) ~[bungeecord.jar:1.1.8] at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1131) ~[bungeecord.jar:1.1.8] at xyz.jpenilla.minimotd.velocity.MiniMOTDPlugin.onProxyInitialization(MiniMOTDPlugin.java:104) ~[?:?] at net.kyori.event.asm.generated.e949150923.MiniMOTDPlugin-onProxyInitialization-ProxyInitializeEvent-1.invoke(Unknown Source) ~[?:?] at net.kyori.event.method.SimpleMethodSubscriptionAdapter$MethodEventSubscriber.invoke(SimpleMethodSubscriptionAdapter.java:148) ~[bungeecord.jar:1.1.8] at net.kyori.event.SimpleEventBus.post(SimpleEventBus.java:107) ~[bungeecord.jar:1.1.8] at com.velocitypowered.proxy.plugin.VelocityEventManager.fireEvent(VelocityEventManager.java:154) ~[bungeecord.jar:1.1.8] at com.velocitypowered.proxy.plugin.VelocityEventManager.lambda$fire$1(VelocityEventManager.java:136) ~[bungeecord.jar:1.1.8] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1764) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?] at java.lang.Thread.run(Thread.java:831) [?:?] Caused by: java.lang.ClassNotFoundException: com.velocitypowered.api.event.EventTask at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass0(PluginClassLoader.java:83) ~[bungeecord.jar:1.1.8] at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:60) ~[bungeecord.jar:1.1.8] at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?] ... 30 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.