PlayerAssist New Features

Hi there, I am the dev for a project not too known, but still has some relatively large traction on BukkitDev. The plugin is called PlayAssist (formally known as PlayerControlsGUI). As I will be porting the plugin and its API to Sponge, and because Sponge now allows developers to do more with their plugins, does anyone have any suggestions as to what I should add for the future port? Let me know! Link to BukkitDev page: PlayerAssist

Exact info from BukkitDev page:

When you type in the command, it will open a gui with different colored Wool blocks. When you click those wool blocks, they will trigger different events or commands that you could use to make your minecraft life easier. The intended use is that, when I get more commands added into the plugin, you can use this GUI to help you do basic things instead of having to open the chat every time. I marked it under “Miscellaneous” because it’s intended to be an ease of access plugin, so it could have things from every single category in the future.

To Do

Add API (Implemented, look at Javadocs)
Add Warps (Will be added at a later time)
Add Time toggle (Added)
Add Rain toggle (Added)
Add Player List
How do I use the GUI?

It’s quite simple: Just type in "/pcgui ". The player name is required because some of the commands require a name to continue, so type your friend’s name there, or someone you’re talking to. The commands below say if they require a player name or not, but that means that they require a player name to run. The main command, /pcgui, always requires a player name, no matter what.

List of commands:

For admins:

Ban (Requires Player Name)
Kick (Requires Player Name)
Message (Requires Player Name)
Stop Server (Doesn’t Require Player Name)
Reload Server (Doesn’t Require Player Name)
Op Player (Requires Player Name)
Deop Player (Requires Player Name)
Change Gamemode (Doesn’t Require Player Name)
Day & Night toggle (Doesn’t Require Player Name)
Rain toggle (Doesn’t Require Player Name)
For Players:

Message (Requires Player Name)
Spawn (Doesn’t Require Player Name)
Sethome (Doesn’t Require Player Name)
Go Home (Doesn’t Require Player Name)
An unintentional, but cool feature, is that the messages are hidden. It sends the messages through bukkit, but I formatted them to look like essential messages. No admins will be seeing your private message. Bukkit can’t even log the messages. This is easily changeable in the code, for all you admins that don’t like this.

Are there any permissions I need to know about?

Actually, yes! In order for the admin to use his/her admin GUI, he/she has to be an OP, or have the permission “pcgui.admin”. I might add permissions for players later, but right now they are VERY limited on what they can do (Sadly) so I can’t say they need them.

There is also a permission for the player to hear update messages if there is an update: “pcgui.canHearUpdate”. This permission will announce to the player every time there is an update.

The commands are slightly limited. I want more!

Relax, I am always willing to implement commands you guys want! Just tell me the command, and I will add the button to the menu. I might add a config, but that will be extremely hard, considering what I just went through to get this working. It’s probably bigger than it needs to be, but that’s so I can easily change stuff, and pin-point problems.

It’s an inventory manipulation plugin, in a sense. Is it buggy?

I tried to make sure that it isn’t, in any way, buggy. But, if you do come across an error, send me a ticket with the FULL error log inside it. The errors may look intimidating, but that’s because they are descriptive. Don’t worry about your server if you do see one of these errors. :slight_smile:

Updater Documentation

The updater uses a class file created by Gravity_low, which is the official updater on the bukkit guidelines page. To make sure that this is secure, and works well with this plugin, it does a few things:

Opens a connection to api.curseforge.com. Curseforge is used here because bukkit hooks into curse, so curse has direct access to these files.
If the connection is successful, the API returns a JSON string that includes some information, including the file ID, and the download link. The plugin automatically downloads the update to a folder
If the download is a zip, the plugin will automatically unzip it at your convenience!
Now if you don’t want this, there is an easy way to disable this:

Just go into the “plugins/Player Controls GUI” folder, and in the config, there is an option to disable the updater. Just type “false” instead of “true”. Now, if this isn’t working for you, there is another folder called “Updater”. Go into there and change “disabled” to false if it’s set to true. This folder is created by the updater class itself.
NOTE: Any updates that are downloaded will be stored in a “update” folder. :slight_smile:

Videos!

https://www.youtube.com/watch?v=3k4_P4dCZQw

Thanks,

~ Reese

2 Likes

Could do with some more description on what it actually does…

Well I mean, the name is quite simple as to what it does, but, basically its a player helper. Its also for Admins too. The plugin will detect wether a player is an OP or not, and op the best suited menu after it determents there rank on the server. I gave a link to the actual project page on BukkitDev.

Thanks,

~ Reese

Still good to have a brief description up on top :smiley:

1 Like

I’m not the link clicking type :smiley:

1 Like

I got you covered. :wink:

~ Reese

2 Likes

So it is like a “Desktop” for Minecraft? Awesome!

Some ideas:

  • Find a more intuitive, faster way to open the windows
    • key shortcut,
    • writing a single letter like # in chat
  • Build a Text-based GUI (maybe a book, or chat-based) with the new click events:
    Messages.builder("Click here!").onClick(TextActions.runCommand("ban Notch")).build();
  • Add a config to add any command to the GUI

I imagine a workflow like this:

You open the chat. The command links with click events are displayed in the Action bar (right over the exp bar).
You can just click on the links to execute the command.
If the command requires arguments (playername), the plugin prompts you to enter the name in chat.

After reading the OP I’m wondering why I haven’t seen this before.

1 Like

Hey, I’ve seen this dev before! :stuck_out_tongue:

So is this like chestcommmands?

Essentially, yes. :slight_smile:

Understood. :wink:.

Is there an updated source on github?

The plugin is currently closed-source, and decompilation and distribution of the plugins source is strictly prohibited. Although, with the included API, your always welcome to make your own version. :smile:

Kind of sad that you took an open-source plugin (GitHub - redstonefreak589/PlayerControlsGUI: A plugin for bukkit that let's admins have a GUI to control a server. Plugin is no longer developed by me.), and now you are holding back the source.

Can you share the source code when you are releasing the plugin?

You just found a great way for the community here, which is lots of developers, to stop caring about your project. Also a great way to ensure that nobody else can help you make the best plugin possible. :wink:

5 Likes

You guys shouldn’t harass him on how he wants to use his code. He only was asking for feature suggestions.

We aren’t, just most developers stop caring about things when an author get’s all protected about his work. All it takes is a license that says no one else can use his code, then he can open sorce it. (Also I decompile anything and everything that is going on my server before testing it)

4 Likes

Under these terms, your plugin will not be able to be hosted by our upcoming plugin repo, Ore. This is due to the fact that we need to decompile (Or otherwise have access to the source of) any plugins hosted on Ore, so that we might attempt to prevent malicious plugins from appearing on our site.

5 Likes

Much better way of putting it.

1 Like