FirstJoinPlus
FirstJoinPlus allows you to control every aspect of when new players join. Give new players a starter kit, a special spawn location, have the console run commands, launch fireworks, and more!
Existing players won't get told they joined for the first time after installing this.
- Announce that a new player has just joined (optionally with the amount of unique players that have joined!).
- Launch a firework or show a cool smoke effect.
- Give the player a written book with welcome information (example book here)!
- Give a starter kit with items defined in the configuration.
- Force the player or the console to run configurable commands.
- Set the player as invincible (from everything, including PVP) for a pre-defined amount of time.
- Much more, check out the configuration below!
- New players not spawning at the first join spawnpoint?
You have a conflicting plugin. Set the 'delay-everything-below-by' value in the configuration to a higher value, such as 5 or 10 (this option is set in ticks).
- Want this plugin to kick in for every join instead of only first joins?
Set 'every-join-is-first-join' in the configuration to true - this will treat every join as a first join. Great for hub servers as you can have the player teleported back to spawn every join, launch a firework every join, and you can set the join and quit messages to %none to completely hide them.
- The display name variable is using their normal name and not their display name?
This means another plugin is setting the display name after FirstJoinPlus is getting it, despite FirstJoinPlus using a normal priority. Set the 'delay-everything-below-by' value in the configuration to a higher value, such as 5 or 10 (this option is set in ticks).
- Is it possible to do X in the first-join starter kit?
The starter kit functionality has been left as simple as possible. You can only give items based off of their names and set the amount to give, as shown in the default configuration. Things like setting data values, display names, lore, etc isn't possible, simply because I want to leave this plugin as a first-join plugin and not a kit plugin.
If you need to do more, I suggest finding a fully featured kit plugin, and using it alongside FirstJoinPlus by having FirstJoinPlus run a command from that kit plugin on first join.
| Command | Description | Permission |
| /firstjoinplus | Show general plugin information. | (none) |
| /firstjoinplus help | Show all available commands. | (none) |
| /firstjoinplus reload | Reload the plugin's configuration. | firstjoinplus.reload |
| /firstjoinplus setspawn | Set the location where new players will spawn. | firstjoinplus.setspawn |
| /firstjoinplus debug | Test your configuration as a new player. | firstjoinplus.debug |
The command /fjp can be used as an alias in place of /firstjoinplus. All commands default to OP's, no permissions plugin required!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | # FirstJoinPlus Configuration -- Configuration Help: http://dev.bukkit.org/bukkit-plugins/firstjoinplus/ # settings: allow-automatic-updating: true every-join-is-first-join: false on-first-join: delay-everything-below-by: 0 first-join-message: enabled: true message: '&d%player_name has joined for the first time!' fun-stuff: play-sound: enabled: true sound-name: entity_player_levelup listen-permission: firstjoinplus.notify smoke-effect: enabled: true launch-firework: enabled: true first-join-kit: enabled: true items: - wood_sword - wood_pickaxe - wood_spade - wood_axe - bread:5 give-written-books: enabled: false book-files: - rules.txt give-experience: enabled: false level-amount: 0 modify-damage: disable-pvp: enabled: false expire-after: 10 god-mode: enabled: false expire-after: 10 run-commands: enabled: false commands: - me just joined for the first time! run-console-commands: enabled: false commands: - setgroup %player_name newbies apply-potion-effects: enabled: false effects: - SPEED:1:15 send-messages: enabled: false messages: - '&2Welcome to our server, %player_name! Customize this message in the FirstJoinPlus configuration.' - '&6http://dev.bukkit.org/server-mods/firstjoinplus/' reset-state: enabled: false teleport: enabled: false x: 0 y: 64 z: 0 pitch: 0 yaw: 0 world: world other-messages: join-message: enabled: false message: '&e%player_name joined the game.' quit-message: enabled: false message: '&e%player_name left the game.' kick-message: enabled: false message: '%none' |
Configuration Tips
- The delay-everything-below-by option is set in ticks, while the disable-pvp and god-mode expiration options are set in seconds.
- Click here for a list of valid material names you can use in the first join kit section.
- Click here for a list of valid potion effect types for the first join potion effects section.
- A list of valid sound names for the notify on first join section is available here.
Available Variables
Variables are used throughout the configuration to display different text (see the description).
| Variable | Description |
| %player_name | The name of the player. |
| %player_display_name | The display name of the player. |
| %player_uuid | The UUID of the player. |
| %total_players | The number of unique players that have joined. |
| %random_player | The name of a random online player. |
| %random_player_display_name | The display name of a random online player. |
| %none | Used in join, quit, and kick messages to completely disable them. |
| %player_country | The player's country (GeoIPTools required). |
| %player_city | The player's country (GeoIPTools required). |

Please click here to donate and support the development of my plugins!
We include an auto updater that checks if there is an update available and/or downloads the latest version for you. It is enabled by default. You may disable this in the configuration.
We use Metrics to collect anonymous usage stats such as the plugin version, server version, and amount of players online. If you want to see everything, click on the graph above. You may disable data collection in the Metrics configuration.
[ONELINER:FirstJoinPlus allows you to control every aspect of when players join for the first time. Give starter kits, experience, a special spawn location, a group, and more!]











-
View User Profile
-
Send Message
Posted Jul 17, 2012So, where does it track who's logged in to the server before?
hmm, never mind... just read the source. That's a pretty nifty class that there OfflinePlayer.java.
-
View User Profile
-
Send Message
Posted Jul 14, 2012@Nickshelton80: You can go to the bottom section of the Essentials config, and completely remove the Essentials MOTD. This makes it so only the FJP Motd shows.
-
View User Profile
-
Send Message
Posted Jul 9, 2012@sync667
No.
If you're looking to disable login messages per player I suggest you look into using my other plugin, SkitChat.
But I will not be adding features into this one unless they are strictly first-join related.
-
View User Profile
-
Send Message
Posted Jul 9, 2012can you add motd for the player who come back ... like " Welcome back name" ?
and options to disable visable of login etc. messages for this player ?
-
View User Profile
-
Send Message
Posted Jul 9, 2012on login it says v1.4.1 is out of date
just thought id let u know
-
View User Profile
-
Send Message
Posted Jul 8, 2012Version 1.4.1 released!
This version contains mainly bugfixes.
Download Here: http://dev.bukkit.org/server-mods/firstjoinplus/files/9-v1-4-1/
@MinecraftAdmin
I won't!
@paul988
Download v1.4.1. Should be fixed.
-
View User Profile
-
Send Message
Posted Jul 8, 2012I love you, please don't stop developing this. CommandBook doesn't come with any of these features T_T
-
View User Profile
-
Send Message
Posted Jul 5, 2012Hi great plugin, love it but could you please add a %prefix% variable for permission plugins? and also i get this error on first join and first quit: 2012-07-05 23:23:19 [INFO] paul988 [/127.0.0.1:57325] logged in with entity id 1473 at ([world] 198.5, 63.62000000476837, 252.5) 2012-07-05 23:23:19 [SEVERE] Could not pass event PlayerJoinEvent to FirstJoinPlus org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:132) at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:129) at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:41) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:61) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at java.lang.String.replace(Unknown Source) at me.chaseoes.firstjoinplus.FirstJoinPlusPlayerListener.format(FirstJoinPlusPlayerListener.java:241) at me.chaseoes.firstjoinplus.FirstJoinPlusPlayerListener.onJoinLogin(FirstJoinPlusPlayerListener.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ... 9 more 2012-07-05 23:23:22 [INFO] Connection reset 2012-07-05 23:23:22 [INFO] paul988 lost connection: disconnect.quitting 2012-07-05 23:23:22 [SEVERE] Could not pass event PlayerQuitEvent to FirstJoinPlus org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at net.minecraft.server.ServerConfigurationManager.disconnect(ServerConfigurationManager.java:179) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:698) at net.minecraft.server.NetworkManager.b(NetworkManager.java:234) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at java.lang.String.replace(Unknown Source) at me.chaseoes.firstjoinplus.FirstJoinPlusPlayerListener.format(FirstJoinPlusPlayerListener.java:241) at me.chaseoes.firstjoinplus.FirstJoinPlusPlayerListener.onPlayerQuit(FirstJoinPlusPlayerListener.java:171) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ... 10 more
-
View User Profile
-
Send Message
Posted Jun 30, 2012@Nickshelton80
I'm not sure how essentials works, but I assume so (if it's a motd that shows on every join no matter what, it'll show on their first join too). There's no way around that without making my plugin do normal motd's too (which I'm not going to do, I want to to stay strictly first-join related).
-
View User Profile
-
Send Message
Posted Jun 30, 2012This is working perfect and i love it. One question. - If i have an motd with essentials, Will both the new players motd and the normal motd both show?
-
View User Profile
-
Send Message
Posted Jun 29, 2012@chaseoes
Ok, Thanks for all the help!
-
View User Profile
-
Send Message
Posted Jun 29, 2012@Mayhem777
No? Not? Or did you mean now? :P
-
View User Profile
-
Send Message
Posted Jun 29, 2012No working 100% perfect :)
-
View User Profile
-
Send Message
Posted Jun 28, 2012@mickverm
Is your worldname option set correctly? It seems like it can't find the player.dat files in yourworldname/players/.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@chaseoes
it still doesnt seem to be fixed, it still gives an error when we reload and people lose connection:
error
-
View User Profile
-
Send Message
Posted Jun 28, 2012For those having problems, please use this version:
https://github.com/downloads/chaseoes/FirstJoinPlus/FirstJoinPlus-v1.4.1.jar
@mickverm
Try the version linked above and if it still happens, please post the error message again.
@Mayhem777
Fixed in the version linked above.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@chaseoes
it happens when people lose connection to the server config
-
View User Profile
-
Send Message
Posted Jun 28, 2012This is the full error... i don't have more error lines :( anyway im not getting the error today, and please i said bofore under the error log in the other comment, the %player% tag takes the name of the player on joining but takes the full suffix and prefix from the PEX permissions yml when leaving, like: [ Player ] Has Joined the Game and [ Survival ]-[ Player ] Has left the Game.
I just want the real names "player" not suffixes and prefix :(
-
View User Profile
-
Send Message
Posted Jun 27, 2012@Mayhem777
Full error please?
@RedBowNL
Interesting, something I can't seem to reproduce. I'll try to add a possible fix though. Also, if the outdated message still isn't going away, you can disable the update check for now.
-
View User Profile
-
Send Message
Posted Jun 27, 2012Ok, apparently if I start my server, then join my game I get that error.
== BUT == If I use the " /firstjoinplus reload " command in game, leave delete my player data and rejoin WITHOUT restarting the server, I DO get the items and messages that i put in the config.
==== BUT ====
For some reason if i stop my server and start it up again, i have to do the reload command again to get it to work...
Any idea why this is??