[INACTIVE][CHAT] PostOffice - v0.0.13 - Mail delivery for players on or off line/world [???]

Discussion in 'Inactive/Unsupported Plugins' started by Joshua Burt, Feb 5, 2011.

  1. Offline

    Joshua Burt

    A MySQL backed mail and package (item stack) delivery system for Craftbukkit.

    Features
    • Send and receive messages with players even when they're not online.
    • Send and receive messages with players logged into other supported worlds.
    • Send and receive item stacks (packages) to/from players even when they're not online.
    • Send and receive item stacks (packages) to/from players logged in other supported worlds.
    • Inbox view to manage messages and packages
    Requirements

    Installation Instructions

    Pre-Reqs
    Deployment Steps
    1. Copy the plugin jar (postoffice-BUILD.jar) into the craftbukkit plugin directory.
    2. Ensure postoffice mysql service account has only these permissions: SELECT, INSERT, UPDATE, EXECUTE.
    3. Edit the postoffice.properties file to meet your database environment needs
    4. Copy the postoffice.properties file into the root of your craftbukkit diretory (where craftbukkit-BUILD.jar is).
    5. Create the needed database with the provided SQL.
    6. Restart the server and monitor server log for issues and proper plugin start-up order.
    • Note: Use the create script, and issue something similar:
    mysql -u {DBAdminAccount} -h {MySQL_hostname} -p < postofficedb_create.sql​
    • Note: (The rdbmscore plugin must load before this one.) If you are having issues getting the core to load before this plugin, try altering the names of the specific jar files until craftbukkit loads them in correct order.
    Usages Instructions


    Command: /postoffice or /po
    To view inbox enter /postoffice or /po with any arguments.​

    /postoffice read message {messageId}
    Display's the message of the given Id.​

    /postoffice read package {packageId}
    Retrieves the package of the given Id.​

    /postoffice send message {player} {message}
    Send message to given player.​

    /postoffice send package {player} {amount} {materialId}
    Send package of given contents to specified player.​

    /postoffice delete message {messageId}
    Deleted the message of the given Id.​

    /postoffice delete package {packageId}
    Deletes the package of the given Id.​

    /postoffice package send {player} {amount} {materialId}
    Send package of given contents to specified player.​

    /postoffice package get {packageId}
    Retrieves the package of the given Id.​

    /postoffice package delete {packageId}
    Deletes the package of the given Id.​

    /postoffice package recall
    Recalls all send packages that are UNREAD and where issuing player is the sender.​

    /postoffice

    Displays the usage information.​

    /postoffice inbox

    Displays the player's inbox.​

    /postoffice help

    Displays usage information.​


    [​IMG]




    For inter-world communication and item transport
    All running instances of craftbukkit must connect to the same database instance. Ensure that the postoffice.properties is the same for all deployments and that the database server is available to them. Though each instance can connect to the database as using different user accounts if so desired.​

    Artifacts

    Plugin - Required
    Plugin Configuration File - Required
    Database Creation Schema SQL - Required
    Source - Optional
     
  2. Offline

    Riot

    Running craftbukkit 261. The stupid "Could not parse PLAYER_COMMAND" error. A very classic error which reveals updating your plugin to the new API would be nice :)
     
  3. Offline

    Phaedrus

    Feature request: send items/blocks as attachments.
     
  4. Offline

    iSushi

    That would be so awesome! ~

    I got a small request, SIMPLIFY THE INSTALLATION. I don't want more ugly icons onto my root folder TT_TT ... I got everything in folders to get some system, even the maps. So I wont get this unless you simplify it, and it forces me to put it in maps D; ...

    And one more; I hope you can use shortcuts like /po read op... Please don't tell me that I need to write /po(read)op in the near future. Typing /postoffice each time is a bit to much bother. And make it able to send that message to ^everyone, if you're an admin.
     
  5. Offline

    Firestar

  6. Offline

    feverdream

    Requesting flat file storage for messages, so that installation is easier and I can have plugins write to disk to send new messages to people if they are not logged in..
     
  7. Offline

    DurtyFree

    Nice, it would be nice when you could add something like that:

    /mail list - to list all recieved mails
    /mail write [PLAYER] [TEXT] - to send a mail to a player
    /mail delete [MailID] - delete a mail (get the mail number in /mail list)
    /mail read [MailID] - To read a mail

    And a login notify that you have "%d" new mails.
     
  8. Offline

    Firestar

    a database is far more effective than a flatfile.
     
  9. Offline

    feverdream

    That depends on the size of the database. It also greatly complicates administration and management.
     
  10. Offline

    iSushi

    I agree, Flatfile support is requested. I approve!
     
  11. Offline

    panderiz

    Jumping on the flatfile train. I've got no mysql support with my server host so I can't use this plugin. Even with a server with 100 people there will probably be little to no noticable difference using a sql database. Unless however people decide to constantly communicate through mail...
     
  12. Offline

    Joshua Burt

    What's New Notes - Versin 0.0.4-132

    Built against bukkit-0.0.1-SNAPSHOT.jar (Build 132)
    Testing against craftbukkit-0.0.1-SNAPSHOT.jar (Build 298)

    Dependency check on startup - ensures that the rdbmscore plugin has loaded first, otherwise self-disables
    Ability to send and receive items from other players has been added
    Additional error handling and reporting added

    Usage Instructions
    Both '/postoffice' and '/po' commands can be used to interact with the post office

    Usage: /postoffice read
    Usage: /postoffice send {player} {message}
    Usage: /postoffice package send {player} {amount} {materialId}
    Usage: /postoffice package get

    If you are running more than a single craftbukkit instance then you can also take advantage of inter-world communications and item transport. Just ensure that all participating craftbukkit instances have access to the MySQL engine, and underlying schema.
    --- merged: Feb 11, 2011 1:27 AM ---
    Minor update to documentation, /po appears to be broken - I'll get this fixed soon. Inter-world messaging and item transport works, but needs further testing.. as always.
     
  13. Offline

    radarwolf

    Can somebody help me with this error?

    Code:
    15-feb-2011 13:30:13 org.bukkit.plugin.SimplePluginManager callEvent
    SEVERE: Could not pass event PLAYER_COMMAND to postoffice
    java.lang.ArrayIndexOutOfBoundsException: 2
            at net.thelandofnod.bukkit.plugin.postoffice.PostOfficePlayerListener.on
    PlayerCommand(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$5.execute(JavaPluginLoader.ja
    va:144)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:60)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:214)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:616)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:589)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(SourceFile:232)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:317)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    2011-02-15 13:30:13 [INFO] RadarWolf issued server command: postoffice send
    2011-02-15 13:30:13 [INFO] Unknown console command. Type "help" for help.
    It would be nice if somebody knows how to fix this. Because i think this is a epic plugin!
     
  14. Offline

    Joshua Burt

    Looks like a parsing error. Right now there isn't a lot of feedback or robustness in that portion of the code. If you don't enter the command in exactly it throws this error (or one similar). If you want to send a message it needs to take the form:
    Code:
    /postoffice send <user> <message>
    /postoffice send offstar Hello! Do you have any coal?
    
    This should send a message to offstar asking about coal. The next time offstar check's his mail:
    Code:
    /postoffice read
    
    The message will be displayed in chat for them.

    The command parser should be a lot cleaner in the next release; which should be out sometime this week. Cheers!
     
  15. Offline

    radarwolf

    Sry still not working for me :( i just with for nthe next release!
     
  16. Offline

    ssechaud

    This seems to be causing problems with Essentials for me with the latest versions.
     
  17. Offline

    Joshua Burt

    What's New Notes - Version 0.0.6-132

    Built against bukkit-0.0.1-SNAPSHOT.jar (Build 132)
    Testing against craftbukkit-0.0.1-SNAPSHOT.jar (Build 298)

    • Fixed an issue which caused postoffice to incorrectly cancel user commands that didn't belong to it
    • Fixed the use of the /po shorthand for /postoffice
    • Additional user input sanitation
    • Additional error handling around user commands
    --- merged: Feb 18, 2011 8:06 PM ---
    Sample SQL to create user accounts and grant proper rights on the postofficedb (the database where you created the tables) schema:
    Code:
    CREATE USER 'minecraftWorld1' IDENTIFIED BY 'minecraftWorld1';
    GRANT SELECT,UPDATE,INSERT ON postofficedb.* to 'minecraftWorld1';
    CREATE USER 'minecraftWorld2' IDENTIFIED BY 'minecraftWorld2';
    GRANT SELECT,UPDATE,INSERT ON postofficedb.* to 'minecraftWorld2';
    
    --- merged: Feb 20, 2011 5:33 PM ---
    What's New Notes - Version 0.0.9-177
    • Built against bukkit-0.0.1-SNAPSHOT.jar (Build 177)
    • Testing against craftbukkit-0.0.1-SNAPSHOT.jar (Build 361)
    • Added backspace as an allowed character from command input
    • Current database operations now wrapped into stored procedures/functions
    • Included database schema is now required as logic has been offloaded to database engine where possible.
    To create the new schema execute the create script using something similiar:
    mysql -u {DBA} -h {localhost} -p < postofficedb_create.sql​
    Edit the schema creation script before hand if you need the database to be called something other than postofficedb.​
    • Ensure postoffice mysql service account has only these permissions: UPDATE, INSERT, UPDATE, EXECUTE.
    • Added ability to recall sent packages if they are unread by the recipient
    "/po package recall", to return them to your mailbox, followed by "/po package get" to return them to your inventory.
    • On world join players are now added to postoffice registry
    • Messages and packages can only be sent to players who have been registered by the postoffice
    • Attempting to send a package to a non-registered user will now place items into your mailbox for later pickup
    • Currently sending a message to a non-registeried user causes the message to be discarded without notice
     
  18. Offline

    radarwolf

    Well can somebody ZIP the craftbukkit build 361? becuase i cant find it so.... can somebody upload it for me and send it? So i can work with this :D
     
  19. Offline

    Joshua Burt

  20. Offline

    radarwolf

  21. Offline

    Joshua Burt

    You bet! :)
    --- merged: Feb 21, 2011 10:50 PM ---
    What's New Notes - Version 0.0.11-400
    • Build against bukkit (400)
    • Tested against craftbukkit (53/428)
    • Updated to support newest [craft]bukkit release.
    • Inbox view is now available!
    • /postoffice command defaults to Inbox view rather then displaying help.
    • Command parsing error will display the help/usage information now.
    • Messages are now read individually. Issuing "/postoffice read {messageId}" will print the message. The {messageId} of the message can be looked up from the inbox.
    Schema has been updated and includes additional stored procedures required by this release. If you run the provided schema creation script you will lose all data currently stored in your postofficedb tables as they get recreated. If you want to upgrade manually review your current schema and run just the portions of the included schema creation script needed to add the additional functionality.

    Plugin

    Schema
     
  22. Offline

    Dere011

    On stopping server :

    Craftbukkit v415
    PostOffice v0.0.11-400

    Thank you [​IMG]
     
  23. Offline

    Joshua Burt

    Looks like this broke as of the newest "recommended" build - 423. I've reviewed the offending code and will have a fix out soon. Thank you for reporting this! =)
    --- merged: Feb 27, 2011 3:55 PM ---
    Release Notes - Version 0.0.12

    Build with Bukkit (Feb 21 Recommended Build)
    Tested Against CraftBukkit (Build 423: Feb21 Recommended Build)

    What's New
    Messages/Packages can not be deleted unless they are 'READ'
    Recalled packages, now mark the sender as "[Recalled]" plus the original recipient's name.

    Silienced onDisable error message
    Added ability to get individual packages
    Added ability to delete individual messages and packages
    Simiplied CLI parser

    New CLI usage:
    Command: /postoffice or /po
    To view inbox enter /postoffice or /po with any arguments.

    /postoffice read message {messageId}
    Display's the message of the given Id.

    /postoffice read package {packageId}
    Retrieves the package of the given Id.

    /postoffice send message {player} {message}
    Send message to given player.

    /postoffice send package {player} {amount} {materialId}
    Send package of given contents to specified player.

    /postoffice delete message {messageId}
    Deleted the message of the given Id.

    /postoffice delete package {packageId}
    Deletes the package of the given Id.

    /postoffice package send {player} {amount} {materialId}
    Send package of given contents to specified player.

    /postoffice package get {packageId}
    Retrieves the package of the given Id.

    /postoffice package delete {packageId}
    Deletes the package of the given Id.

    /postoffice package recall
    Recalls all send packages that are UNREAD and where issuing player is the sender.


    Artifacts
    Plugin - Required
    http://dl.dropbox.com/u/19821084/022711/postoffice.jar

    Database Schema - Required
    http://dl.dropbox.com/u/19821084/022711/postofficedb_create.sql


    Database Schema has been updated and includes additional stored procedures required by this release. If you run the provided schema creation script you will lose all data currently stored in your postofficedb tables as they get recreated. If you want to upgrade manually review your current schema and run just the portions of the included schema creation script needed to add the additional functionality. Ensure you backup our postofficedb prior to any upgrading!
     
  24. Offline

    SliMeY_G

    Using Craftbukkit (recommended) build #493, RDBMScore v0.0.11 (+ Connector/J v5.1.15), PostOffice v0.0.12, I get the following error:

    Code:
    16:56:09 [INFO] Starting minecraft server version Beta 1.3
    16:56:09 [INFO] Loading properties
    16:56:09 [INFO] Starting Minecraft server on *:25565
    16:56:09 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-493-g8b5496e-b493jnks (MC: 1.3)
    16:56:09 [INFO] Preparing level "Ninjaville_I"
    16:56:09 [INFO] Preparing start region
    16:56:10 [INFO] rdbmscore version 0.0.11 is enabled!
    16:56:10 [SEVERE] PLAYER_COMMAND loading postoffice v0.0.12 (Is it up to date?)
    java.lang.NoSuchFieldError: PLAYER_COMMAND
            at net.thelandofnod.bukkit.plugin.postoffice.PostOffice.onEnable(Unknown Source)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:414)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    16:56:10 [INFO] Done (0.123s)! For help, type "help" or "?"
    I get this when running ONLY the Postoffice plugin (+ requirements) and when other plugins are enabled too.
    - mysql-connector-java-bin.jar is in same directory as craftbukkit.jar
    - postoffice.properties is in the same directory as craftbukkit.jar
    - rdbmscore loads fine without postoffice in the plugins directory
    - I use stats & achievements, and they work fine with the given credentials (copied and pasted from their config files)
    - I can connect to the MySQL DB via shell no problems with the credentials from the postoffice.properties file
    postoffice.properties (open)
    db.username = mcuser
    db.password = PASSWORD
    db.rdbms = mysql
    db.servername = ghost
    db.portnumber = 3306
    db.database = minecraft
    db.driver = com.mysql.jdbc.Driver

    Any help would be greatly appreciated.
     
  25. Offline

    Wulfspider

    I'd like to see SQLite support.
     
  26. Offline

    Joshua Burt

    SliMeY_G thank you for reporting the issue! It looks like this broke with the March 3rd recommended build. I'll take a look and see what's going on. :)
     
  27. Offline

    SliMeY_G

    Cheers Joshua, I'm really looking forward to getting this plugin up & going. Awesome concept, indeed :D
     
  28. Offline

    Joshua Burt

    What's New Notes - PostOffice Version 0.0.13

    Built Against: Bukkit API - For Developers (02 March 2011, 21:26GMT)
    Tested Against: Recommended Build (03 March 2011, 23:22GMT)

    Changes:
    Command interpreter fixed for newest bukkit build.


    Plugin Download:
    http://dl.dropbox.com/u/19821084/030511/postoffice.jar

    Please let me know if there's any issues!
     
  29. Offline

    TheTallest

    Joshua I know you are trying to hold back on providing flatfile storage but there are some folks on here who do not have Mysql installed on their boxes or their host does not have it installed and will not install unless they pony up the $$$ to do it. Not to mention even if the host did install they might not have the skills needed to admin a mysql instance. I know you do not want to but is it possible to allow for flatfile storage. I know it is a less secure method. [​IMG]
     
  30. Offline

    dslip

    Author,

    Please support the auto-updating plugin CraftBukkitUpToDate. To do so please provide a permanent direct link to the author of CraftBukkitUpToDate.

    The below is information they provide
    Show Spoiler

    My Plugin didn't supported, how i get it to work with CButD?
    Give me a permanent link to your Plugin, i will add it. That's all no changes at your SourceCode or something else, all I need is a permanent link to the newest version of your Plugin. A good place for this is http://www.dropbox.com/ or for OpenSource https://github.com/.


    I really enjoy using your plugin and would like to see it work well with the above listed 'updater' plugin.
     

Share This Page