JPanel - Minecraft Webpanel
JPanel - A plugin based web panel for Bukkit
What is this?
JPanel is a plugin based control panel for your minecraft server. It is viewable within a web browser, and does not require running any external web servers, or knowledge of PHP or databases. This plugin is in beta, and has a number of key features, including:
- A live view of the server console
- Live view of the server ram usage, cpu usage and ticks per second
- User permissions
- Modify player groups (requires vault)
- Easily kick or ban online players (not currently implemented in new player manager)
- Manage server files
- Passwords hashed with a salt
THIS PLUGIN REQUIRES JAVA 8. ALSO BE AWARE IT'S STILL IN BUGS, AND THERE MIGHT BE BUGS OR INCOMPLETE FEATURES.
Since this plugin doesn't require anything else other than the Bukkit server, installation is extremely easy
- Put the plugin jar file in your plugins folder
- Restart the server
- Ensure that port 4567 are port forwarded (this can be tested with this tool here)
- In the server console, use /addlogin <username> <password> to add a user to the panel
- OPTIONAL: Stop the server and edit the config file to allow you access to the JPanel features
As of JPanel Beta 5, you can now add pages to the panel. For more information, please see the guide.
- /addlogin <username> <passsword> - allows you to add a user to a panel
- /passwd <username> <oldpassword> <newpassword> - change the password of a user
All commands can only be executed through the console, either via JPanel or a standard minecraft console.
In the latest beta (Beta 6) I've added standalone https support! This requires some configuration.
First, you'll need to put a keystore file in the JPanel folder. You can either attempt to generate one using these instructions or download a premade keystore file from here. The pre-made keystore has an unsigned certificate that'll get you going with security warnings in most browsers, so isn't recommended unless you can't use an actual certificate.
Stop the server, and enter the name of the keystore file (with file extension) under keystore-name and the password for the keystore file under keystore-password in the JPanel config.yml. If you're using the premade keystore, use the password 'password' (ultra secure).
Restart the server, then access the panel normally except with https.
HTTPS should now be working!
- canEditFiles - allows a JPanel user to edit files
- canChangeGroups - allows a JPanel user to change the groups of a user
- canSendCommands - allows a JPanel user to send commands through the console
These are modified through the config file. Once modified, restart the server.
Non browser Clients
I'm developing a series of apps that you can use to access the panel. Currently, there is an app for windows 10.
- Windows 10 App - https://www.microsoft.com/en-us/store/apps/jpanel/9nblggh1rnm5 (source will be released later)
- Android app - coming soon!
- iPhone app - due to a lack of $99 a year, a Mac computer and a device to test on, this is unlikely to be coming any time soon
All source code is avaliable on github, check it out!
To fix compatiblity issues with SimpleFTPServer you'll need to open up the simpleftpserver jar file in 7zip
Once you've opened it, navigate to the org folder and delete the slf4j folder. This will allow both plugins to work.
1. I'll investigate compatiblity issues with SimpleFTPServer
2. I'll look into implementing that as well
3. Unless you're a plugin developer the "Make new Page" tutorial isn't relevent for you - all it does is allow plugin developers to add their own page to JPanel.
Jpanel anit Compatible with SimpleFTPServer
Oh can like make it so we can send files over to the server?
I dont get your turtorial of the Make new page update thingy
As soon as my development lumia 435 works on windows 10 I'll properly test it on mobile
Java 1.8 is just fine. :) I love your Windows Apps support. What about making a hybrid app and thus directly available for Windows Mobile? The next big thing is multi language is think. Today it's a vital feature.
I'm using the sparkjava library (http://sparkjava.com/) in order to run an internal web server and manage all the various internals related to the web server. Unfortunately, this library requires Java 1.8 in order to run. I may consider replacing it with a different system, but it would require a lot of internal recoding, so it own't be for some time.
Can you make it java 1.7 compadible, and why isn't it now? :)
I'm using permissionsex
Can't say i've seen this issue - what permissions plugin do you use?
I have i slight problem with the panel, when i switch the ranks of my players, and the server restart some of them go back to the rank they had before.
You need Java 1.8
[19:15:46] [Server thread/ERROR]: Could not load 'plugins\JPanel 4.2.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: net/rymate/jpanel/PanelPlugin : Unsupported major.minor version 52.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at java.lang.Thread.run(Unknown Source) [?:1.7.0_80] Caused by: java.lang.UnsupportedClassVersionError: net/rymate/jpanel/PanelPlugin : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) [?:1.7.0_80] at java.lang.ClassLoader.defineClass(Unknown Source) [?:1.7.0_80] at java.security.SecureClassLoader.defineClass(Unknown Source) [?:1.7.0_80] at java.net.URLClassLoader.defineClass(Unknown Source) [?:1.7.0_80] at java.net.URLClassLoader.access$100(Unknown Source) [?:1.7.0_80] at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_80] at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_80] at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_80] at java.net.URLClassLoader.findClass(Unknown Source) [?:1.7.0_80] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_80] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_80] at java.lang.Class.forName0(Native Method) [?:1.7.0_80] at java.lang.Class.forName(Unknown Source) [?:1.7.0_80] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) [craftbukkit.jar:git-PaperSpigot-25a137f-53fac9f] ... 6 more
Thank you for support old versions! :D
Right, releasing a small bugfix release that patches that. I have seen that error, but it rarely happens. This new builds adds an error check to ensure it doesn't happen.
i didn't add the port 9003 to my router, that was the problem.
Everything is working properly now, however i get this error when they try to login -> http://pastebin.com/XuBx18PJ
Is the console coming up for him?
If not, make sure the port 9003 is port forwarded
they just can't, my friend tried to press enter and the command was still in the "Execute a command" http://pastebin.com/MVBs9MUU
Can you pastebin the users config? What happens when an admin tries to run a command?
The permissions are working properly that's not the problem, and yes i did restart it.
Did you restart the server when you added the config entries? JPanel doesn't really work well when the server is reloaded - it's best to restart it.
The console clearing shouldn't be happening, as the code just appends each log entry to the terminal in browser - it never clears it at any point in the code.