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 Nov 12, 2012@chaseoes
Here are the links, I hope you can help: Server.log Error: http://pastebin.com/9PyewmT2 FirstJoinPlus Config: http://pastebin.com/peMH2x1n
-
View User Profile
-
Send Message
Posted Nov 12, 2012FirstJoinPlus 1.5 don't give me errors in 1.4 but the 1.6 version gives me:
http://pastebin.com/ByzbTxg7
And does't work.
-
View User Profile
-
Send Message
Posted Nov 12, 2012@7007King0770
No. You just paste them into Pastebin and provide the links here. Put the configuration and error into two separate pastes.
The indentation and readability matters for both, and pasting them here compromises both of those.
-
View User Profile
-
Send Message
Posted Nov 11, 2012@chaseoes
How does one upload the error, and I guess I could use pastebin to give you the configuration file. Should I put in any particular syntax highlighting when uploading it to pastebin?
-
View User Profile
-
Send Message
Posted Nov 11, 2012Please upload the error and your configuration to a site like Pastebin or I am unable to help.
-
View User Profile
-
Send Message
Posted Nov 11, 2012@chaseoes
I updated to 1.6, and now the configuration is no longer resetting, but the announcements that people join and leave are broken, and people still aren't getting the items that first joiners should get. This is what the log says: <<code 2012-11-11 17:18:17 [SEVERE] Could not pass event FirstJoinEvent to FirstJoinPlus v1.6 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at me.chaseoes.firstjoinplus.PlayerListeners.firstJoinDetection(PlayerListeners.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.ServerConfigurationManagerAbstract.c(ServerConfigurationManagerAbstract.java:162) at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:93) at net.minecraft.server.NetLoginHandler.d(NetLoginHandler.java:132) at net.minecraft.server.NetLoginHandler.c(NetLoginHandler.java:45) at net.minecraft.server.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:29) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:569) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:215) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:486) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.ThreadServerApplication.run(SourceFile:818) Caused by: java.lang.NumberFormatException: For input string: "0 299" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Byte.parseByte(Byte.java:148) at java.lang.Byte.parseByte(Byte.java:174) at me.chaseoes.firstjoinplus.Utilities.giveFirstJoinItems(Utilities.java:84) at me.chaseoes.firstjoinplus.FirstJoinListener.onFirstJoin(FirstJoinListener.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 23 more>>
<</code>>
-
View User Profile
-
Send Message
Posted Nov 11, 2012@7007King0770
Can't help much without having it uploaded to a site like Pastebin.
Are you using /fjp reload?
-
View User Profile
-
Send Message
Posted Nov 11, 2012@j2ther
Nice! GeoIPTools support has been around since v1.4, though. :P
And the booleans for showjoinmessage etc., have been removed as you can now set to the join/leave/kick messages to "none" (no quotes) and it won't show them at all.
-
View User Profile
-
Send Message
Posted Nov 11, 2012Hey! Just updated to 1.6 to check out the GeoIPTools support :D
Soo updated to 1.6 and theres a few problems :( The 1.6 configuration seems to not include "showjoinmessage:" "showleavemessage:" "showkickmessage:"
Which is no biggy can just add them ourselves, but the GeoIP Function doesn't seem to be working.
The variable geoiptools from "public GeoIPLookup geoiptools;" doesn't seem to be set anywhere. Looking at the code with a fellow admin and messing with it now. Might post a pull request on your github if we get it working. Pull request will probably be from meiskam.
-
View User Profile
-
Send Message
Posted Nov 11, 2012@chaseoes
Don't know about the uploading but here is what the document says:
settings: onlyfirstjoin: false worldname: world updatecheck: true metrics: true itemonfirstjoin: true firstjoinspawning: true showfirstjoinmessage: true showfirstjoinmotd: true showfirstjoinsmoke: false numberonfirstjoin: false commandsonfirstjoin: true xponfirstjoin: 0 numberonjoin: false messages: firstjoinmessage: '&d%name% has joined the game for the first time!' joinmessage: '&e%name% has joined the game.' leavemessage: '&e%name% has left the game.' kickmessage: '%none%' numbermessage: '&d%number% unique players have joined the server!' items: - 298.1.0 299.1.0 300.1.0 301.1.0 268.1.0 269.1.0 271.1.0 297.5.0 346.1.0 motd: - '&bWelcome to Kings Public Faction Based Survival Server, &6%name%&b!' - '&bNew Players go to the server website for the server rules and help.' - '&bServer Website: http://www.minecraftforum.net/topic/137570-kings-public-faction-based-survival-server/' commands: - spawn spawn: x: 3233 y: 77 z: 3352 pitch: 27.028656 yaw: 179.90485 world: world
Again whenever I turn on the plugin the config just resets, and nothing seems to show up in the server.log out of the ordinary.
-
View User Profile
-
Send Message
Posted Nov 10, 2012@chaseoes
Thanks a lot!
Btw, you're an incredbile plugins developer, i really aprecciate your work :)! If i had the financial oportunity, i'd definitely donate for you to keep up with your work :)!
-
View User Profile
-
Send Message
Posted Nov 9, 2012@ArionPT
Sphax.
-
View User Profile
-
Send Message
Posted Nov 9, 2012What's the texture pack you used in the screenshot?
-
View User Profile
-
Send Message
Posted Nov 8, 2012@7007King0770
Upload your configuration to a site like pastebin. Have you issued /fjp reload or restarted your server? Any errors on startup / when a player joins for the first time?
-
View User Profile
-
Send Message
Posted Nov 8, 2012@artlune
The commands section makes the player joining for the first time run that command, not the console. I'm sure you could just make that group the default group with PEX.
-
View User Profile
-
Send Message
Posted Nov 8, 2012@Mortalsinn
I said "none", not "%none%". Also make sure onlyfirstjoin is set to false.
-
View User Profile
-
Send Message
Posted Nov 8, 2012I'm trying to add users to a certain group when they first join but can't get it to work. I'm using PermissionsEx.
I have this in the config.yml
commands:
- pex user %name% group add Member
The command is executed but it adds %name% to the group and not the player. %name% seems to be the only variable I can work with, that you listed.
-
View User Profile
-
Send Message
Posted Nov 8, 2012@xXSshadowXx
Your right that was it, but now I have a probelm. People aren't spawning with their starter gear what is wrong with the following line of text that makes it so people don't spawn with the items on it? They are also not spawning in the FirstJoinPlus spawn area, instead for no deceivable reason they are only spawning in the normal spawn area, which are meant to be separate.Of course that's not as pressing an issue as the item probelm, because I can just make it so everyone spawns in the FirstJoinPlus area temporarily. items: - 298.1.0 299.1.0 300.1.0 301.1.0 268.1.0 269.1.0 271.1.0 297.5.0 346.1.0
-
View User Profile
-
Send Message
Posted Nov 7, 2012@7007King0770
The ' in King's I bet is causing it.
-
View User Profile
-
Send Message
Posted Nov 7, 2012How can I fix the following probelm? Whenever I atempt to use the plugin on my server the config resets, and this error message occurs: 2012-11-07 17:41:57 [INFO] [FirstJoinPlus] Enabling FirstJoinPlus v1.5 2012-11-07 17:41:57 [SEVERE] Cannot load plugins/FirstJoinPlus/config.yml org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping in "<string>", line 2, column 1: settings: ^ expected <block end>, but found Scalar in "<string>", line 25, column 22: - '&bWelcome to King's Public Faction Based Survival ... ^
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138) at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105) at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175) at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117) at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111) at me.chaseoes.firstjoinplus.FirstJoinPlus.onEnable(FirstJoinPlus.java:26) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:374) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:270) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:252) at net.minecraft.server.MinecraftServer.j(MinecraftServer.java:311) at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:290) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:249) at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:141) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:391) at net.minecraft.server.ThreadServerApplication.run(SourceFile:818) Caused by: while parsing a block mapping in "<string>", line 2, column 1: settings: ^ expected <block end>, but found Scalar in "<string>", line 25, column 22: - '&bWelcome to King's Public Faction Based Survival ... ^
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:575) at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161) at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146) at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123) at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106) at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121) at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480) at org.yaml.snakeyaml.Yaml.load(Yaml.java:399) at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53) ... 17 more