I am currently in progress of making a server and using SpaceCP (Open Beta) as my panel which is really good (The best I have used). However, I am trying to figure out a way to create a website where players can access their profile and manage them.
Example:
Inventory Management
Players can manage their inventory slots without having to go in-game.
Nickname Management
Players can change their in-game nickname without having to go in-game/ask operators for change.
Player Stats
Player can monitor their stats (Kills, Death, Level, Faction, etc)
I have searched the web and unable to find any documentation or tutorials for these particular ideas to start building from scratch.
If you guys can give me some tips on where to start, I will greatly appreciate your help !
Some Requirements I Think I Should Have So Far
-Database(MySQL, etc ?)
-Nodejs ?
-Plugins (Keep track players stats/rewrite player database ?)
Are you asking for an existing one or making your own? I don't know of an existing platform for that. If you are rolling your own, it shouldn't be all that difficult. I'd get an NBT library for PHP which would give you access to a players inventory and stats. XP/level is in there, but not kills/deaths/faction. Faction can be obtained from the faction plugin MySQL data (I assume it uses MySQL, I don't use factions). Not sure about kills and deaths *shrug*
Yes, I am trying to develop a website where players can monitor and manage their own player data on the go. I have no experience in web development yet as I am currently on my half first semester. I might study more about PHP and SQL. Thank you so much for your advice. Now I know that PHP can modify Minecraft's data which is perfect for this project. For stats, I have found a very good plugin, Stats 3 and it supports web-end as well, BlueStats. Still trying to figure out for the Nickname and Inventory Management though which I think an NBT library for PHP is what I needed like you have specified.
Sure. I've found the best way to learn a new technology is to give yourself a project in it The NBT stuff will help for inventories, since you can read the player dat files (which btw means you also need a username to UUID conversion tool) but nicknames aren't stored in there. In Essentials, nicknames are stored in the (server folder)\plugins\Essentials\userdata folder in a YML file named after the user's UUID. There are lots of handy data in there too besides nicknames:
That's my Essential's data file for example. Depending on what plugins are in use, it may not be Essentials handling nicknames though (but it's a very popular one). Here is an example of my world\playerdata NBT data so you can get an idea of what's available there:
Plus other plugins will expose their users' data which can be cool to add to the site. One suggestion; I'd set any plugin that supports it to use MySQL to store data. It's far easier to work with MySQL than flatfiles IMO.
Oh one last thing.. this is great for reading, but for writing you may run into some difficulties. IIRC Essentials would overwrite my changes to player data files and WorldGuard didn't see changes made via my region manager on the website until I sent a /wg reload to the console. I couldn't figure out how to get that to work when I was just running the server in a command prompt so I switched to using McMyAdmin which has an API for sending console commands. If you are using linux I think it's easier as you can send stuff to the screen name running the server, but I'm no linux guy so not 100% sure. Multicraft may also have some sort of console API but I've never used that *shrug*
Hello Server Admins !
I am currently in progress of making a server and using SpaceCP (Open Beta) as my panel which is really good (The best I have used). However, I am trying to figure out a way to create a website where players can access their profile and manage them.
Example:
Inventory Management
Players can manage their inventory slots without having to go in-game.
Nickname Management
Players can change their in-game nickname without having to go in-game/ask operators for change.
Player Stats
Player can monitor their stats (Kills, Death, Level, Faction, etc)
I have searched the web and unable to find any documentation or tutorials for these particular ideas to start building from scratch.
If you guys can give me some tips on where to start, I will greatly appreciate your help !
Some Requirements I Think I Should Have So Far
-Database(MySQL, etc ?)
-Nodejs ?
-Plugins (Keep track players stats/rewrite player database ?)
-Apache (Website)
Current OS: CentOS 7
Are you asking for an existing one or making your own? I don't know of an existing platform for that. If you are rolling your own, it shouldn't be all that difficult. I'd get an NBT library for PHP which would give you access to a players inventory and stats. XP/level is in there, but not kills/deaths/faction. Faction can be obtained from the faction plugin MySQL data (I assume it uses MySQL, I don't use factions). Not sure about kills and deaths *shrug*
Hi Strahan !
Yes, I am trying to develop a website where players can monitor and manage their own player data on the go. I have no experience in web development yet as I am currently on my half first semester. I might study more about PHP and SQL. Thank you so much for your advice. Now I know that PHP can modify Minecraft's data which is perfect for this project. For stats, I have found a very good plugin, Stats 3 and it supports web-end as well, BlueStats. Still trying to figure out for the Nickname and Inventory Management though which I think an NBT library for PHP is what I needed like you have specified.
Thanks again for your advice !
Sure. I've found the best way to learn a new technology is to give yourself a project in it The NBT stuff will help for inventories, since you can read the player dat files (which btw means you also need a username to UUID conversion tool) but nicknames aren't stored in there. In Essentials, nicknames are stored in the (server folder)\plugins\Essentials\userdata folder in a YML file named after the user's UUID. There are lots of handy data in there too besides nicknames:
That's my Essential's data file for example. Depending on what plugins are in use, it may not be Essentials handling nicknames though (but it's a very popular one). Here is an example of my world\playerdata NBT data so you can get an idea of what's available there:
Plus other plugins will expose their users' data which can be cool to add to the site. One suggestion; I'd set any plugin that supports it to use MySQL to store data. It's far easier to work with MySQL than flatfiles IMO.
Oh one last thing.. this is great for reading, but for writing you may run into some difficulties. IIRC Essentials would overwrite my changes to player data files and WorldGuard didn't see changes made via my region manager on the website until I sent a /wg reload to the console. I couldn't figure out how to get that to work when I was just running the server in a command prompt so I switched to using McMyAdmin which has an API for sending console commands. If you are using linux I think it's easier as you can send stuff to the screen name running the server, but I'm no linux guy so not 100% sure. Multicraft may also have some sort of console API but I've never used that *shrug*
Good luck!