Pail
Pail is a Java swing Graphical User Interface designed specifically for Bukkit. Pail opens up many opportunities for plugin developers to take advantage of. Plugins can be written solely to add functionality to Pail, or Pail support can be integrated easily into existing plugins. Just imagine being able to edit your permissions groups, view server performance, or manage your world's economy all from a single interface!
Source | Plugins that use Pail | Public API | Hooking into Pail | JavaDoc
Why is Pail different?
- Pail is written as a plugin, meaning the same, simple drag-and-drop install server owners have come to know.
- Pail uses pure Java and no external libraries, eliminating the need for any dependencies.
- Pail is designed for bukkit servers, allowing more control than any vanilla server GUI.
- Pail is extensible! Other plugins can hook into Pail to add their own interfaces, creating a single place for server admins to manage their server and players.
- Pail is completely cross-platform.
Installation:
Just drop Pail.jar into your plugins folder. That's it!
Features:
- Convenient access to player related functions
- Interface for editing server settings
- Command buffer to recall recent console commands by pressing up and down
- Waypoint system for teleporting players
- Much more!
Commands:
- Pail - Reopens the Pail GUI through the console
Would love to see some RAM/CPU meters/graphs added to this as well.
Remote connections to this would be amazing as well... Open a port, have a login/password list with hashed passwords.
@Noko1111
Not necessarily... I run a server on my laptop for a few friends and I, and Pail is extremely helpful.
EDIT: Also people may have server which they have a remote desktop connection to.
Does it display UI...... on same machine that is running server? How is this useful? People are running minecraft on dedicated headless servers.
Hey whats the default dimensions for a Pail jPanel?
mcymadmin is better
I liked Pail so much, I decided to make something for you escapeNT
Download it here
@jlsafof
You need to update to the latest craftbukkit RB.
If you can't build in your server whut's probably the cause of that? (nothing wrong in Console)
I get a this trying to spawn a apple with pail
07:18 PM [SEVERE] Exception in thread "AWT-EventQueue-0" 07:18 PM [SEVERE] java.lang.NoSuchMethodError: org.bukkit.Server.getConsoleSender()Lorg/bukkit/command/ConsoleCommandSender; 07:18 PM [SEVERE] at me.escapeNT.pail.Util.Util.getConsoleSender(Util.java:217) 07:18 PM [SEVERE] at me.escapeNT.pail.GUIComponents.GiveItemView.giveActionPerformed(GiveItemView.java:140) 07:18 PM [SEVERE] at me.escapeNT.pail.GUIComponents.GiveItemView.access$000(GiveItemView.java:25) 07:18 PM [SEVERE] at me.escapeNT.pail.GUIComponents.GiveItemView$1.actionPerformed(GiveItemView.java:111) 07:18 PM [SEVERE] at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at javax.swing.JComponent.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.processEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.processEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Window.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.access$000(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue$3.run(Unknown Source) 07:18 PM [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 07:18 PM [SEVERE] at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue$4.run(Unknown Source) 07:18 PM [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 07:18 PM [SEVERE] at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 07:18 PM [SEVERE] at java.awt.WaitDispatchSupport$2.run(Unknown Source) 07:18 PM [SEVERE] at java.awt.WaitDispatchSupport$4.run(Unknown Source) 07:18 PM [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 07:18 PM [SEVERE] at java.awt.WaitDispatchSupport.enter(Unknown Source) 07:18 PM [SEVERE] at java.awt.Dialog.show(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.show(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.setVisible(Unknown Source) 07:18 PM [SEVERE] at java.awt.Window.setVisible(Unknown Source) 07:18 PM [SEVERE] at java.awt.Dialog.setVisible(Unknown Source) 07:18 PM [SEVERE] at me.escapeNT.pail.GUIComponents.ServerControlPanel$GiveItemListener.actionPerformed(ServerControlPanel.java:182) 07:18 PM [SEVERE] at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 07:18 PM [SEVERE] at javax.swing.AbstractButton.doClick(Unknown Source) 07:18 PM [SEVERE] at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) 07:18 PM [SEVERE] at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at javax.swing.JComponent.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.processEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.processEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.Container.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Window.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.Component.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.access$000(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue$3.run(Unknown Source) 07:18 PM [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 07:18 PM [SEVERE] at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue$4.run(Unknown Source) 07:18 PM [SEVERE] at java.security.AccessController.doPrivileged(Native Method) 07:18 PM [SEVERE] at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventQueue.dispatchEvent(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 07:18 PM [SEVERE] at java.awt.EventDispatchThread.run(Unknown Source)
ty for helping
@Ikke82
It looks like your world is corrupted. This isn't a pail issue.
11:06 PM [INFO] [Pail] Setting up window... 11:06 PM [INFO] [Pail] Pail 0.7.5 Enabled 11:06 PM [INFO] [Permissions] version [3.1.6] (Yeti) loaded 11:06 PM [INFO] Preparing level "New World" 11:06 PM [SEVERE] java.io.IOException: Not in GZIP format 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.readHeader(Unknown Source) 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.<init>(Unknown Source) 11:06 PM [SEVERE] at net.minecraft.server.CompressedStreamTools.a(SourceFile:9) 11:06 PM [SEVERE] at net.minecraft.server.WorldLoader.b(SourceFile:50) 11:06 PM [SEVERE] at net.minecraft.server.WorldLoaderServer.isConvertable(SourceFile:73) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:169) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) 11:06 PM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:417) 11:06 PM [SEVERE] java.io.IOException: Not in GZIP format 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.readHeader(Unknown Source) 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.<init>(Unknown Source) 11:06 PM [SEVERE] at net.minecraft.server.CompressedStreamTools.a(SourceFile:9) 11:06 PM [SEVERE] at net.minecraft.server.WorldLoader.b(SourceFile:61) 11:06 PM [SEVERE] at net.minecraft.server.WorldLoaderServer.isConvertable(SourceFile:73) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:169) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) 11:06 PM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:417) 11:06 PM [INFO] Default game type: 0 11:06 PM [SEVERE] java.io.IOException: Not in GZIP format 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.readHeader(Unknown Source) 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.<init>(Unknown Source) 11:06 PM [SEVERE] at net.minecraft.server.CompressedStreamTools.a(SourceFile:9) 11:06 PM [SEVERE] at net.minecraft.server.PlayerNBTManager.c(PlayerNBTManager.java:93) 11:06 PM [SEVERE] at net.minecraft.server.World.<init>(World.java:128) 11:06 PM [SEVERE] at net.minecraft.server.WorldServer.<init>(WorldServer.java:27) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) 11:06 PM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:417) 11:06 PM [SEVERE] java.io.IOException: Not in GZIP format 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.readHeader(Unknown Source) 11:06 PM [SEVERE] at java.util.zip.GZIPInputStream.<init>(Unknown Source) 11:06 PM [SEVERE] at net.minecraft.server.CompressedStreamTools.a(SourceFile:9) 11:06 PM [SEVERE] at net.minecraft.server.PlayerNBTManager.c(PlayerNBTManager.java:104) 11:06 PM [SEVERE] at net.minecraft.server.World.<init>(World.java:128) 11:06 PM [SEVERE] at net.minecraft.server.WorldServer.<init>(WorldServer.java:27) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) 11:06 PM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:417) 11:06 PM [INFO] New max size: 400 11:06 PM [INFO] New max size: 784 11:06 PM [INFO] New max size: 1764 11:06 PM [INFO] New max size: 5476 11:06 PM [INFO] New max size: 18496 11:06 PM [INFO] New max size: 19044 11:06 PM [SEVERE] java.lang.NullPointerException 11:06 PM [SEVERE] at net.minecraft.server.WorldServer.c(WorldServer.java:162) 11:06 PM [SEVERE] at net.minecraft.server.World.a(World.java:2224) 11:06 PM [SEVERE] at net.minecraft.server.Chunk.addEntities(Chunk.java:634) 11:06 PM [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:81) 11:06 PM [SEVERE] at net.minecraft.server.ChunkProviderServer.getOrCreateChunk(ChunkProviderServer.java:106) 11:06 PM [SEVERE] at net.minecraft.server.World.getChunkAt(World.java:300) 11:06 PM [SEVERE] at net.minecraft.server.World.getTypeId(World.java:247) 11:06 PM [SEVERE] at net.minecraft.server.World.isEmpty(World.java:251) 11:06 PM [SEVERE] at net.minecraft.server.World.a(World.java:218) 11:06 PM [SEVERE] at net.minecraft.server.WorldProvider.canSpawn(SourceFile:50) 11:06 PM [SEVERE] at net.minecraft.server.World.canSpawn(World.java:104) 11:06 PM [SEVERE] at net.minecraft.server.World.c(World.java:202) 11:06 PM [SEVERE] at net.minecraft.server.World.<init>(World.java:150) 11:06 PM [SEVERE] at net.minecraft.server.WorldServer.<init>(WorldServer.java:27) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) 11:06 PM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) 11:06 PM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:417) 11:06 PM [SEVERE] Unexpected exception
How to fix it i can't get in anymore or even close it with command stop cus than i get 11:15 PM [INFO] Bukkit sad. Bukkit want you to access command, but Bukkit cannot let you. Bukkit will leak tears :'(
@escapeNT
Yes is good
No update required for 1337.
@feildmaster
A new CB recommended build. :)
@LimeByte No it's not.
@em202020 What build of bukkit? And I'll fiddle around with it soon...
@vicente947 Will look into it.
I know you haven't added support for remote hosted servers yet but is it possible to connect to a server on the same network?
@feildmaster nope no errors, just freezes kinda annoying....
@feildmaster
I test Pail and Pail Plus in CB 1328 and i havent got problems
@vicente947 Please give me the full log.
@em202020 Any errors? Will look into it.
Haven't been playing with pail lately.