GroupSend Plugin for Unofficial MapTool-1.3.b89 Plugin Mod

Show off your RPG maps, campaigns, and tokens. Share your gaming experiences and stories under General Discussion and save this forum for things you've created that may help others run their own games. Use the subforums when appropriate.

Moderators: dorpond, trevor, Azhrei, Gamerdude

Post Reply
User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

GroupSend Plugin for Unofficial MapTool-1.3.b89 Plugin Mod

Post by Lord.Ashes »

This is a GroupSend Plugin for the Unofficial MapTool-1.3.b89.Plugin_Support.R3 Mod of MapTool.

The post for the Unofficial MapTool-1.3.b89.Plugin_Support.R3 Mod can be found here...http://forums.rptools.net/viewtopic.php?f=8&t=24539

The Sound Plugin can be downloaded from here...https://www.mediafire.com/folder/m3osff ... /GroupSend

Disclaimer: This is a GroupSend Plugin for an unofficial release of MapTools. Please do not post question about this Plugin or MapTool Mod to the Core MapTool team. Post your questions in this thread instead.

As per the Unofficial MapTool-1.3.b89.Plugin_Support.R3 thread, these plugins are intended to add optional functionality which does not impact the use of a Campaign file regardless if the plugin is or is not installed. This means that if a Campaign files is used to provide GroupSend support, the exact same Campaign file will also work with clients that do not have the GroupSend Plugin installed (as long as they are also using the Unofficial MapTool-1.3.b89.Plugin_Support.R3 version of MapTool).

//
// -----------------------------------------------------------
// GroupSend Plugin for MapTool-1.3.b89.Plugin_Support.R3
// -----------------------------------------------------------
//
// Version: 1.0
//
// Programmed By: Lord Ashes
//
// Source Code Files: GroupSend.Java
// Compiled Files: GroupSend.Class
// Minimum Java Version: 6 (Likely compatible with even earlier versions)
//
// Comments:
//
// This plugin provides a very simple group sending mechanism.
// Different groups with different users can be created and then messages
// can be sent to any of these groups. Only members of the group will
// display the messages in their Message Panel.
//

Installation Instructions:

Expand the ZIP file into your MapTool "plugins" sub-folder. If the "plugins" sub-folder does not exist, create it. The Source Code sub-folder provided in the ZIP file is not needed for plugin functionality. It is provided as a reference for creating your own plugins and/or for modifying this plugin.

Macro Functions:

All macro functions are executed using the pluginExecute(), pluginExecuteWithWarning(), pluginThread() or pluginThreadWithWarning() macro functions which are added in unofficial MapTool-1.3.b89.Plugin_Support.R3

Typically either pluginExecute() or pluginExecuteWithWarning() can be used to start execute the plugin functions since none of the plugin function take long to process (i.e. will not block for long even if the Thread version is not used to execute them).

The syntax, using setIdentity() as an example, for all GroupSend plugin functions is:

pluginExecute("GroupSend","function","parameters")

Where "function" is one of the below functions and "parameters" is a comma separated list of parameters (where applicable).
The below function list uses an abbreviated notation. For example:

setIdentity(ID)

Actually means:

pluginExecute("GroupSend","setIdentity","ID")

The GroupSend Plugin supports the following functions:

setIdentity(ID) = Sets the client's identity which is compared against group members to see if a message should be displayed or not
createGroup(GroupName,GroupMember1,...,GroupMemberN) = Creates a group with the given name and lists its members
destroyGroup(GroupName) = Destroys a group with the given name

Using The Plugin:

1. Set the identity of each client to a unique ID using the setIdentity(ID) macro function.
2. Create groups with various members using the createGroup() macro function. You can create as many groups as desired using any combination of members.
3. To use a group send prefix a Message Panel content with .gr followed by the group name then a space and then the messages. For example:

Code: Select all

.gr Team1 Are You Guys Ready?
Notes On Identity:

The identity used with this Plugin is not related, in any way, to the MapTool player name. The identity is basically a unique identification which is used in the group lists to identify that client. Since any client can set its own identity, if you are concerned with Identity Theft, it is a good idea not to use your MapTool name as your identity because any player can then set their ID to your ID and receive messages that were intended for you. In such a case the groups can be created by the GM (so that players don't know other player's identities) and loaded through a macro on campaign load to which players do not have access.

Bending The Rules:

Although this plugin does conform to the Prime Directive of the MapTool-1.3.b89.Plugin_Support.R3 Mod which requires that the absence of a plugin must not cause a campaign file to stop working, it bends the rule a bit in the sense that to make use of the plugin all players needs to have the plugin installed. It is true that if a client (player) does not have the plugin installed then the campaign file will still work but that player will get all group messages (with the .gr prefix) which renders the plugin useless if the purpose of using this plugin is to keep certain messages private to only the group members. It also means that the secrecy of messages passed between players using this plugin can be compromized by uninstalling the plugin and thereby getting all the group messages. As such, at this stage, this plugin can only be used with players that will honor its use and not try to bypass it.

Why The Odd Notation?

Initially this plugin was written to use /gr instead of the current .gr notation. However the GroupSend plugin works by intercepting messages as they arrive in the Message Panel on the client machines (including the client that sent them). However, MapTool reserves the /notation for its own commands and thus returns the /gr notation as an error. This could easily be fixed in MapTool but that would defeat the purpose of a plugin (which is to add functionality without modifying MapTool). As such I envisioned that the /notation could remain for MapTool core options and the .notation would be used for added notations (such as those added by plugins).

Edits: 1. Added the "Why The Odd Notation?" section
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: GroupSend Plugin for Unofficial MapTool-1.3.b89 Plugin M

Post by wolph42 »

Let me start with commending you with your awesome work! especially the plug-in system opens up yet an entire new world. Great also that you reworked the sounds and cachecleaner too. So thanks!

That said: why did you create this? this function is easily supported with one or two simple macro from within maptool. This 'outside' plugin can be completely covered from the 'inside'. And while I'm very much in favor for this plugin system to add new functionality, im not really in favor of adding material that can be done from within. I'm not sure but I *think* that there even already exists something similar as a drop-in.

Then again, maybe I missed something which canNOT be done from within maptool, so here my interpretation of how I think it works:
- you have one macro to create groups, just name a group and assign client names to it
- you have one macro to be used in the chat which sends a message to the given group
if thats all, then thats covered in mt. If not, then I'm all ears.

Post Reply

Return to “User Creations”