SexyMotd
SexyMotd
THE BEST Motd plugin on BukkitDev
SexyMotd for BungeeCord servers has been released on Spigot! Search "SexyMotdBungee" on the SpigotMC site to find it!
SexyMotd v1.4+ can be found on SpigotMC!
Features
- Change motd easy and quick with in-game commands (1.2.2 and earlier)
- Colored motds
- Fake online players
- Fake max players
- Player's IP logging
- Display player's name with %playername% (done with IP logging)
- Display server's name with %servername%
- Display online players with %online_players%
- Display max player slots with %max_players%
- Skip to the next line of motd with %newline%
- Display server's version with %version%
- Avatar icons (player's face as a server icon) (done with IP logging)
- Overlaying a custom transparent image (.png) over the avatar icon, by providing either a file path, or a URL
- Fake version.
- Custom message on list hover.
- Randomized Motds
- Randomized fake online players
- Custom variables!!
- %newplayer%, %banned%, %whitelisted% Boolean variables (for use with conditional/custom variables)
- %groupName% variable (Will require PermissionsEx)
Variables
| Variable | Function | Type |
| %groupname% | Display the PEX groups that the user belongs to. | Array - String |
| %ip% | Display the user's IP. | String |
| %maxplayers% | Display the maximum player count from the server.properties. | Integer |
| %newline% | Skip to the second line of the MOTD. | \n |
| %onlineplayers% | Display the current online player count. | Integer |
| %playername% | Display the last known display name from that IP. | String |
| %playernames% | Display the names of all players currently online. | Array - String |
| %randomplayer% | Display the name of a random online player. Defaults to default guest name in the configuration. | String |
| %servername% | Display the server name defined in server.properties. | String |
| %version% | Display the server version | String |
Variable Operators:
Variable operators allow you to modify the output of a variable with a special variable suffix.
Integer Variables -
Add a "+", "-", "*", or "/" followed by a number after any integer type variable to apply the operation to it. Example: %onlineplayers%+10
Array Variables -
Add a "[x]", where x is the index within the array, after any array type variable to only display one list item. Otherwise, arrays are displayed as "x, y, z"
Array variables of integer type are not eligible for integer operations after the index declaration.
Example: %playernames%[2]
Config and Custom Variables
SexyMotd 1.2.2 and Earlier
Commands:
| Command | Description |
| /motd addmotd <motd> | Adds an Motd |
| /motd removemotd <index> | Removes an Motd |
| /motd listmotds | Lists the Motds |
| /motd maxplayers toggle | Toggles the FakeMaxPlayers |
| /motd toggle | Toggles the SexyMotd (Note: your server will NOT look sexy if you disable it! :) ) |
| /motd maxplayers set <number> | Sets the FakeMaxPlayers |
| /motd players add <number> | Adds an online player number. |
| /motd players remove <index> | Removes an online player number. |
| /motd players list | Lists the online player numbers. |
| /motd avataricon | Toggles the Avatar Icon (player faces as server icon) |
| /motd info | Displays the info |
| /motd reload | Reloads the config. |
| /motd restart | Restarts the plugin. |
SexyMotd 1.2.2 and Earlier
Permissions:
| Permission | Command/Action | Default |
| sexymotd.set | /motd <subsection>motd(s) | OP |
| sexymotd.toggle | /motd toggle | OP |
| sexymotd.maxplayers.* | /motd maxplayers | OP |
| sexymotd.maxplayers.toggle | /motd maxplayers toggle | OP |
| sexymotd.maxplayers.set | /motd maxplayers set | OP |
| sexymotd.players.set | /motd players <subcommand> | OP |
| sexymotd.avataricon | /motd avataricon | OP |
| sexymotd.info | /motd info | All |
| sexymotd.reload | /motd reload | |
| sexymotd.restart | /motd restart |
Disclaimers
This plugin uses the Minotar service to display player avatars as the server icon.
SexyMotd v1.2 and earlier: In order to provide information about new updates, this plugin uses Gravity's auto updater service to query dev.bukkit.org for new updates. Updates are not automatically downloaded, but can be downloaded with the /bm command or by clicking the provided link when an update becomes available. Update warnings can be disabled by setting the CheckUpdates section in the config to false.
SexyMotd v1.2 and earlier: We use PluginMetrics by Hidendra to collect data about the servers running SexyMotd. This data is packaged and sent to report.mcstats.org in order to be processed. The following data is collected from your server:
- Your servers unique metrics id.
- The version of PluginMetrics.
- Your server's CraftBukkit version.
- Player count.
- Your computer's operating system.
- Your computer's arch type.
- Your CPU's core count.
- Your server's online mode state.
- The version of java you have installed.
Metrics can be disabled by changing the opt-out section in plugins/PluginMetrics/config.yml to true.
REQUIREMENTS
This plugin REQUIRES ProtocolLib in order to function! You can get it here: http://dev.bukkit.org/bukkit-plugins/protocollib/
-
View User Profile
-
Send Message
Posted Oct 30, 2014@EN7
What's the actual problem?
Read this
-
View User Profile
-
Send Message
Posted Oct 29, 2014@Qwertyness
http://pastebin.com/2TN2VdCG
-
View User Profile
-
Send Message
Posted Oct 24, 2014@jamisen10
You place %banned% in your MOTD or a custom variable and it is replaced by True or False when the player pings the server. You can also use it as a boolean condition with a custom variable to display custom text for banned/not banned players. You can read more about that by following the Config and Custom Variables link in the description.
-
View User Profile
-
Send Message
Posted Oct 24, 2014@Qwertyness
Could you tell me how to use %banned%? it doesnt work for me
-
View User Profile
-
Send Message
Posted Oct 21, 2014@Qwertyness Oh Ok, But Can You Try Do It Sooner like for starters just do the changing MOTD Part?
-
View User Profile
-
Send Message
Posted Oct 21, 2014@Qwertyness
Alrighty ;-)
-
View User Profile
-
Send Message
Posted Oct 21, 2014@ThisUsernameIsMine
ProtocolLib is used for a lot of features in this plugin, so it is necessary for everyone to have it.
@WabMiran
This is something I've been looking into, but BungeeCord is a completely different API, so I will have to rewrite the entire plugin to make a Bungee version. I will probably take this on eventually though.
-
View User Profile
-
Send Message
Posted Oct 20, 2014Hi,
Can You Please Add Bungee Support So You Can Make It Your Bungee Servers Motd Server.
-
View User Profile
-
Send Message
Posted Oct 20, 2014Is it possible to make ProtocolLib optional for people that don't use the fake player options?
-
View User Profile
-
Send Message
Posted Oct 20, 2014@Qwertyness
It works now. Thanks :)
Really awesome plugin! Can you maybe add more features like per world players in playermessage? :)
Example:
%onlineworld%
%onlineworld_nether%
-
View User Profile
-
Send Message
Posted Oct 19, 2014@TheR3ktor
Make sure to use the latest version from the link at the top.
-
View User Profile
-
Send Message
Posted Oct 19, 2014When I use PlayerMessage I'm getting a spammede console with
19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration 19.10 11:21:27 [Server] INFO VariableIteration
-
View User Profile
-
Send Message
Posted Oct 4, 2014@TheCoolGuy123_5_Minecraft_
So you want the ability to use the variables in the fake version?
-
View User Profile
-
Send Message
Posted Oct 4, 2014For the fakeversion, could you add for the online players?
I want to replace it with like &4&l20/100
or something like that
-
View User Profile
-
Send Message
Posted Oct 1, 2014@ThomasDrolo
Server version? Plugin version?
EDIT: Nevermind about the plugin version. It says it in the stack trace. Try using the latest version in the link at the top.
-
View User Profile
-
Send Message
Posted Oct 1, 2014[12:11:11] [Netty IO #1/ERROR]: Could not pass event ServerListPingEvent to SexyMotd v1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.PacketStatusListener.a(PacketStatusListener.java:103) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.PacketStatusInStart.a(SourceFile:25) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.PacketStatusInStart.handle(SourceFile:8) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:72) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.NetworkManager.channelRead0(NetworkManager.java:192) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at com.comphenix.protocol.injector.netty.ChannelInjector$4.channelRead(ChannelInjector.java:227) [ProtocolLib-3.4.0.jar:?] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.server.v1_7_R1.LegacyPingHandler.channelRead(SourceFile:89) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:149) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] at java.lang.Thread.run(Unknown Source) [?:1.8.0_20] Caused by: java.lang.NullPointerException at net.pixelizedmc.sexymotd.Utils.getIcon(Utils.java:107) [?:?] at net.pixelizedmc.sexymotd.Main.onPing(Main.java:127) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.8.0_20] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0_20] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0_20] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.8.0_20] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks] ... 36 more
-
View User Profile
-
Send Message
Posted Sep 30, 2014Omg this has got to be the best thing EVER. And also nice name :P SexyMotd
-
View User Profile
-
Send Message
Posted Sep 20, 2014@jesseke55
Can you PM me a copy of your config?
-
View User Profile
-
Send Message
Posted Sep 20, 2014@Qwertyness
The restart command doesn't work :/
-
View User Profile
-
Send Message
Posted Sep 19, 2014@jesseke55
I'll take a look into it and get back to you.