Giter Site home page Giter Site logo

alexprogrammerde / pistonmotd Goto Github PK

View Code? Open in Web Editor NEW
42.0 3.0 9.0 1.24 MB

Control your Minecraft servers MOTD. Supports RGB colors and multiple platforms.

License: Apache License 2.0

Java 99.88% Shell 0.12%
bungeecord-plugin spigot-plugin paper-plugin motd-plugin velocity-plugin sponge-plugin

pistonmotd's Introduction

PistonMOTD

Discord embed Build Status GitHub release (latest by date)

Best MOTD plugin with multi-platform support!

Features

  • Customize player-counter tooltip
  • Customize the online player and max player counter
  • Random MOTD
  • A custom client out of date message. You can force that to always happen too.
  • Random favicon
  • Placeholders (extendable via api)
  • Hide your player-count (only on bukkit)
  • Very easy to understand config
  • Modular (You can enable/disable every feature)

Compatible with external MOTD plugins. (Can't promise it will work with every MOTD plugin.)

🌈 Community

Feel free to join our Discord community server:

Discord Banner

This project is in active development, so if you have any feature requests or issues please submit them here on GitHub. PRs are welcome, too. :octocat:

API

We got an easy to integrate API for adding additional placeholders into the plugin.

Repository:

  <repositories>
      <repository>
          <id>codemc-repo</id>
          <url>https://repo.codemc.org/repository/maven-public/</url>
      </repository>
  </repositories>

Dependency:

Latest Version (Without the v): Latest Version

  <dependencies>
    <dependency>
      <groupId>net.pistonmaster</groupId>
      <artifactId>pistonmotd-api</artifactId>
      <version>VERSION HERE</version>
    </dependency>
  </dependencies>

Links

pistonmotd's People

Contributors

254nm avatar actions-user avatar alexprogrammerde avatar andre601 avatar imgbotapp avatar jamierocks avatar jeffthejeffthejeff avatar renovate-bot avatar renovate[bot] 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

Watchers

 avatar  avatar  avatar

pistonmotd's Issues

Failed to create plugin instance

I experienced an error during the starting process of server, following info is the console error messages:
Runtime environments:
OS: Ubuntu 18.04.4 x86_64
JVM Startup script and options:
java -Xms2048M -Xmx3072M -Dlog4j2.formatMsgNoLookups=true -jar forge-1.16.5-36.2.34.jar -nogui
Minecraft & Forge version: 1.16.5

[15:01:40] [modloading-worker-1/ERROR] [or.sp.fo.la.pl.PluginModContainer/LOADING]: Failed to create plugin instance. PluginID: pistonmotd, class net.pistonmaster.pistonmotd.sponge.PistonMOTDSponge com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: net/pistonmaster/pistonmotd/shadow/apache/logging/log4j/Logger at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2215) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5153) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.inject.internal.FailableCache.get(FailableCache.java:54) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:148) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:592) ~[?:?] {re:classloading} at com.google.inject.internal.AbstractBindingProcessor$Processor.initializeBinding(AbstractBindingProcessor.java:176) ~[?:?] {re:classloading} at com.google.inject.internal.AbstractBindingProcessor$Processor.lambda$scheduleInitialization$0(AbstractBindingProcessor.java:163) ~[?:?] {re:classloading} at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:49) ~[?:?] {re:classloading} at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:126) ~[?:?] {re:classloading} at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:239) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:244) ~[?:?] {re:classloading} at org.spongepowered.forge.launch.plugin.PluginModContainer.constructPlugin(PluginModContainer.java:62) ~[spongeforge:1.16.5-36.2.5-8.0.0-RC1115] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[forge:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.spongeforge.core.json:minecraftforge.fml.ModContainerMixin_Forge,pl:mixin:A} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) [?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) [?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) [?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) [?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) [?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) [?:?] {} Caused by: java.lang.NoClassDefFoundError: net/pistonmaster/pistonmotd/shadow/apache/logging/log4j/Logger at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?] {} at java.lang.Class.privateGetDeclaredConstructors(Class.java:3296) ~[?:?] {} at java.lang.Class.getDeclaredConstructors(Class.java:2515) ~[?:?] {} at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:292) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:117) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:716) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:941) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:843) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:301) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:224) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:1035) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:1022) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:70) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34) ~[?:?] {re:classloading} at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43) ~[?:?] {re:classloading} at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[server-1.16.5-20210115.111550-extra.jar:?] {} ... 24 more Caused by: java.lang.ClassNotFoundException: net.pistonmaster.pistonmotd.shadow.apache.logging.log4j.Logger at java.lang.ClassLoader.findClass(ClassLoader.java:719) ~[?:?] {} at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:106) ~[modlauncher-8.1.3.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?] {} at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?] {} at java.lang.Class.privateGetDeclaredConstructors(Class.java:3296) ~[?:?] {} at java.lang.Class.getDeclaredConstructors(Class.java:2515) ~[?:?] {} at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:292) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:117) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:716) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:941) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:843) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:301) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:224) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:1035) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:1022) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:70) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34) ~[?:?] {re:classloading} at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43) ~[?:?] {re:classloading} at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[server-1.16.5-20210115.111550-extra.jar:?] {} ... 24 more Suppressed: java.lang.ClassNotFoundException at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:282) ~[modlauncher-8.1.3.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-8.1.3.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-8.1.3.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?] {} at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?] {} at java.lang.Class.privateGetDeclaredConstructors(Class.java:3296) ~[?:?] {} at java.lang.Class.getDeclaredConstructors(Class.java:2515) ~[?:?] {} at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:292) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:117) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:716) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:941) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:843) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:301) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:224) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:1035) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:1022) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:70) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34) ~[?:?] {re:classloading} at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43) ~[?:?] {re:classloading} at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5153) ~[server-1.16.5-20210115.111550-extra.jar:?] {} at com.google.inject.internal.FailableCache.get(FailableCache.java:54) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49) ~[?:?] {re:classloading} at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:148) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:592) ~[?:?] {re:classloading} at com.google.inject.internal.AbstractBindingProcessor$Processor.initializeBinding(AbstractBindingProcessor.java:176) ~[?:?] {re:classloading} at com.google.inject.internal.AbstractBindingProcessor$Processor.lambda$scheduleInitialization$0(AbstractBindingProcessor.java:163) ~[?:?] {re:classloading} at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:49) ~[?:?] {re:classloading} at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:126) ~[?:?] {re:classloading} at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:239) ~[?:?] {re:classloading} at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:244) ~[?:?] {re:classloading} at org.spongepowered.forge.launch.plugin.PluginModContainer.constructPlugin(PluginModContainer.java:62) ~[spongeforge:1.16.5-36.2.5-8.0.0-RC1115] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[forge:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.spongeforge.core.json:minecraftforge.fml.ModContainerMixin_Forge,pl:mixin:A} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) [?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) [?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) [?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) [?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) [?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) [?:?] {}
And following file is crash reports:
crash-2022-05-06_15.01.41-fml.txt

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.

Dependency Dashboard

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

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4.3.3
.github/workflows/deploy.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
gradle
gradle.properties
settings.gradle.kts
  • com.github.johnrengelman.shadow 8.1.1
  • org.cadixdev.licenser 0.6.1
  • net.kyori.indra 3.1.3
  • net.kyori.indra.git 3.1.3
  • net.kyori.indra.publishing 3.1.3
  • net.kyori.blossom 2.1.0
build.gradle.kts
api/build.gradle.kts
  • net.kyori:adventure-text-minimessage 4.17.0
build-data/build.gradle.kts
buildSrc/build.gradle.kts
  • gradle.plugin.com.github.johnrengelman:shadow 8.0.0
  • net.kyori:indra-common 3.1.3
buildSrc/src/main/kotlin/pm.java-conventions.gradle.kts
  • commons-io:commons-io 2.16.1
  • org.apiguardian:apiguardian-api 1.1.2
  • net.pistonmaster:PistonUtils 1.3.2
  • net.luckperms:api 5.4
  • org.projectlombok:lombok 1.18.32
  • org.projectlombok:lombok 1.18.32
buildSrc/src/main/kotlin/pm.kyori-conventions.gradle.kts
  • net.kyori:adventure-api 4.17.0
  • net.kyori:adventure-text-serializer-legacy 4.17.0
buildSrc/src/main/kotlin/pm.platform-conventions.gradle.kts
buildSrc/src/main/kotlin/pm.shadow-conventions.gradle.kts
bukkit/build.gradle.kts
  • io.papermc:paperlib 1.0.8
  • org.bstats:bstats-bukkit 3.0.2
  • net.kyori:adventure-platform-bukkit 4.3.2
  • com.destroystokyo.paper:paper-api 1.16.4-R0.1-SNAPSHOT
bungee/build.gradle.kts
  • org.bstats:bstats-bungeecord 3.0.2
  • net.kyori:adventure-platform-bungeecord 4.3.2
  • net.md-5:bungeecord-api 1.20-R0.2
kyori/normal/build.gradle.kts
  • net.kyori:adventure-text-serializer-legacy 4.17.0
kyori/relocated/build.gradle.kts
shared/build.gradle.kts
  • net.skinsrestorer:axiom 1.1.2-SNAPSHOT
  • com.github.LeonMangler:PremiumVanishAPI 2.9.0-4
sponge/build.gradle.kts
  • org.spongepowered.gradle.plugin 2.2.0
  • org.bstats:bstats-sponge 3.0.2
universal/build.gradle.kts
velocity/build.gradle.kts
  • org.bstats:bstats-velocity 3.0.2
  • com.velocitypowered:velocity-api 3.1.1
  • com.velocitypowered:velocity-api 3.1.1
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

Switch from Bukkit.createProfile(String) to Bukkit.createProfile(UUID, String)

The issue
When using one or multiple lines, which contain the same text (i.e. an empty line or just a specific color code) will PistonMOTD return the following error(s):
https://hasteb.in/tovuvura.lua

Why change?
According to the Javadocs of PaperMC does it and I quote "Creates a PlayerProfile for the specified name, with UUID as null"
Switching to the method where you provide a UUID could help in fixing this issue, as - to my knowledge - the UUID could be provided and the String (name) could be null/empty.

So

event.getPlayerSample().add(i, Bukkit.createProfile(PlaceholderUtil.parseText(str)));

would essentially become

event.getPlayerSample().add(i, Bukkit.createProfile(UUID.randomUUID(), PlaceholderUtil.parseText(str)));

I do not have enough knowledge with the Spigot or PaperMC API to know, if this would actually fix this issue.
Perhaps an alternative would be to directly create PlayerProfiles and then edit the list with that somehow.
Unfortunately do both Spigot and PaperMC not offer something similar to what I have with BungeeCord

I hope this idea may fix the issue I encounter as having empty lines is not usable through that method currently used but the other one fixes it for at least a little bit.

Best alternative?
In my personal opinion would it probably be the best alternative to utilize ProtocolLib for at least the player hover part as it can handle this a bit better while the downside might be a bit more complicated stuff to do...

PremiumVanish hook not working

Hi.

I'm using pistonmotd 5.0.1 and premiumvanish 2.8.5 on my 1.19.3 server. I want I wasn't counted towards the online player counter when using vanish. I have premiumvanish:true option in pistonmotd config but if i reload the plugin and refresh my server list the motd not working (displaying default server.properties one) and send message to console with errors (attachment) What should i do to make it work properly?

msg.txt

Centered Text Function

With this you can center the text on the motd easy without adding additional spaces, just adding something like %newline%%centered%

that should be good

Customize player-counter tooltip bug

PistonMOTD v5.0.0
image
related config:

    text:
      - "&2=================================================="
      - "&6              欢迎来到&bskimit&6生存服务器"
      - "&b  当前服务端版本: &e1.18.2"
      - "&b  建议的客户端版本: &e 1.18.x"
      - "&d  QQ群: &e597691030"
      - "&d  Discord: &ehttps://discord.gg/Xf3Q3K4CYw"
      - "&2=================================================="

Velocity startup error

I'm tyring to make a setup for a Velocity proxy. Right from the initial startup, I get this:

[20:57:00 INFO] [pistonmotd]: _____ _ _ __ __ ____ _______ _____
[20:57:00 INFO] [pistonmotd]: | __ \(_) | | | \/ | / __ \|__ __|| __ \
[20:57:00 INFO] [pistonmotd]: | |__) |_ ___ | |_ ___ _ __ | \ / || | | | | | | | | |
[20:57:00 INFO] [pistonmotd]: | ___/| |/ __|| __|/ _ \ | '_ \ | |\/| || | | | | | | | | |
[20:57:00 INFO] [pistonmotd]: | | | |\__ \| |_| (_) || | | || | | || |__| | | | | |__| |
[20:57:00 INFO] [pistonmotd]: |_| |_||___/ \__|\___/ |_| |_||_| |_| \____/ |_| |_____/
[20:57:00 INFO] [pistonmotd]:
[20:57:00 INFO] [pistonmotd]: Loading config
[20:57:00 INFO] [pistonmotd]: Registering placeholders
[20:57:00 INFO] [pistonmotd]: Looking for hooks
[20:57:00 INFO] [pistonmotd]: Hooking into LuckPerms
[20:57:00 INFO] [pistonmotd]: Registering listeners
[20:57:00 INFO] [pistonmotd]: Registering command
[20:57:00 INFO] [pistonmotd]: Checking for a newer version
[20:57:00 ERROR]: Couldn't pass ProxyInitializeEvent to pistonmotd
java.lang.NumberFormatException: For input string: "{{ version }}"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:668) ~[?:?]
at java.lang.Integer.parseInt(Integer.java:786) ~[?:?]
at net.pistonmaster.pistonmotd.shadow.pistonutils.update.UpdateParser$CurrentVersion.<init>(UpdateParser.java:67) ~[?:?]
at net.pistonmaster.pistonmotd.shadow.pistonutils.update.UpdateParser.parseUpdate(UpdateParser.java:19) ~[?:?]
at net.pistonmaster.pistonmotd.shared.PistonMOTDPlugin.lambda$checkUpdate$1(PistonMOTDPlugin.java:140) ~[?:?]
at net.pistonmaster.pistonmotd.shadow.pistonutils.update.UpdateChecker.getVersion(UpdateChecker.java:26) ~[?:?]
at net.pistonmaster.pistonmotd.shared.PistonMOTDPlugin.checkUpdate(PistonMOTDPlugin.java:140) ~[?:?]
at net.pistonmaster.pistonmotd.velocity.PistonMOTDVelocity.onProxyInitialization(PistonMOTDVelocity.java:65) ~[?:?]
at net.pistonmaster.pistonmotd.velocity.Lmbda$7.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity.jar:3.2.0-SNAPSHOT (git-19abb909-b265)]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity.jar:3.2.0-SNAPSHOT (git-19abb909-b265)]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity.jar:3.2.0-SNAPSHOT (git-19abb909-b265)]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]

It seems to work, as far as I can see now

PistonMOTD 5.1.0
Velocity 3.2.0 b265

Version 5.0.1 works without errors

Shared dependency for SLF4J?

Hey, it seems EssentialsDiscord (official Essentials addon) is sharing the SLF4J code from PistonMOTD. Perhaps it's not relocated or something?
[08:46:48 WARN]: [EssentialsDiscord] Loaded class org.slf4j.impl.StaticLoggerBinder from PistonMOTD v4.3.2 which is not a depend, softdepend or loadbefore of this plugin.

hex motd

can you make it so if I use hex anywhere I can decide what to show clients lower than 1.16?

a new option?
non-hex-motd;

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.