EnderChests++

Discussion in 'Plugin Requests' started by dhinely, Sep 8, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    dhinely

    I saw a long time ago a mod called MultiEnderChest, but sadly it seems to have been DISCONTINUED.
    It caused an enderchest to have another player-specific inventory if placed on a wool block.
    The chest size can be modified to more/less than the default (I know, I've seen it before too.)
    I would like to see this be done through commands + location sets.
    I think there will also be a need to lock chests from modification. This way you can set public chests, but they are only nice to look at and use them for kit previews, schematic outlines, etc.

    PART 1 - EnderChestsMultiple


    Commands
    Done
    /ECM autoaddition <true|false> ---- changes config
    /ECM autoremoval <true|false> ---- changes config
    /ECM set <X,Y,Z> <Chest#> -------- sets enderchest at XYZ to be linked to player-specific inventory Chest#
    /ECM remove <X,Y,Z> <Chest#> -- reverts enderchest to vanilla enderchest (Chest# = 0)
    /ECM tell <X,Y,Z> --------------------tells what the Chest# is at XYZ​
    Partially
    /ECM clear <Chest#> ------------------ removes associated <Chest#> inventory
    Only clears inventory of offline players​
    Not Yet Done
    /ECM delete <Chest#> ---------------- removes ALL associated <X,Y,Z> and inventory
    /ECM clean <Chest#> ----------------- removes ALL associated <X,Y,Z>
    /ECM lock <Chest#> ----- Locks chest from item add/remove toggle
    /ECM user <user> add <Chest#> --- allows user to access Chest# (permissions override)
    /ECM user <user> remove <Chest#> - denies user from accessing Chest# (permissions override)
    /ECM list ---------------------------------- lists all Chest# that have been set
    /ECM locate <Chest#> ----------------- list positions of all chests​
    Permissions
    Done
    enderplus.ecm.command.set
    enderplus.ecm.command.clear
    enderplus.ecm.command.tell
    enderplus.ecm.access.<0-20>​
    Partially
    enderplus.ecm.command.remove.<Chest#> needs this permission to override existing <Chest#> at <X,Y,Z>
    no check for existing Chest#​
    Not Yet Done
    enderplus.ecm.command.delete.<Chest#>
    enderplus.ecm.command.clean.<Chest#>
    rplus.ecm.command.lock.lock.<Chest#>
    enderplus.ecm.command.lock.unlock.<Chest#>
    enderplus.ecm.command.user.add.<Chest#>
    enderplus.ecm.command.user.remove.<Chest#>
    enderplus.ecm.command.list
    enderplus.ecm.command.locate
    enderplus.ecm.access.<Chest#>-<Chest#> - allows access to a range of <Chest#'s>​
    Config.yml
    Done
    #true - new chests will automatically be placed with Chest# as 0
    #false - new chests will use vanilla chests
    AutoAddition: false

    #Destroying Chest Removes Association
    #true - Placing another enderchest in the same location will make the inventory be vanilla
    #false - Placing another enderchest in the same location will make the inventory be <Chest#>
    AutoRemoval: false

    Chests:
    world:
    <X,Y,Z>:
    number: <Chest#>​
    Partially
    inventories:
    <Chest#>:
    <UUID>:
    //a to '{' of inventory type and amount
    //probably should be placed in another file​
    Not Yet Done
    #Regular Chests
    #Allow - can turn regular chests into 'EnderChest++ chests'
    #Deny - regular chests just use vanilla chests
    RegularOverride: Allow

    ChestLocking: [Allow|Deny]

    Chests:
    0:
    #Is default if replacing vanilla
    public: false
    lockable: false
    size: [default size in slots or rows]​
    1 :
    public: true
    lockable: false
    size: [default size]​
    2:
    public: false
    lockable: true
    size: [default size]​
    Notes
    Done
    Vanilla enderchests can still be used, they will just be unassigned.
    Destroying the last <Chest#> DOES NOT destroy/drop the inventories.​
    Partially
    If the option of AutoAddition is true AND AutoRemoval is false, only Chest# 0 will be auto-removed.
    I'm guessing the <Chest#> should be a integer between 0 and 100+. (if it goes over 100 i think it'd be simpler to use a hexadecimal reference number)
    //currently up to 21 separate chests, I need to learn how to implement a custom for loop​
    I'm thinking that if this mod is going to be picked up by other people than me, the mod should support custom items.
    //only basic item types right now​

    PART 2 - EnderChestsInteractive - NOT STARTED
    Is there a way, from the command-line to set a players EnderChestMultiple inventory to interact with other blocks like the the hopper, pipes, etc.

    Command
    /EC I set <X,Y,Z> <player>--------- forces enderchest to interact with environment using <players> ender-inventory
    /EC I remove <X,Y,Z> <player> -- reverts enderchest to vanilla enderchest
    /EC I block <player> ---------------- blocks <player> from being set
    /EC I allow <player> ----------------- unblocks <player> (permissions override)
    /EC I list -------------------------------- lists all players that have been set
    /EC I locate <player> ----------------- list positions of player-set chests​

    Permissions
    enderplus.eci.command.set.self
    enderplus.eci.command.set.others
    enderplus.eci.command.remove
    enderplus.eci.command.block
    enderplus.eci.command.allow
    enderplus.eci.command.list
    enderplus.eci.command.locate​

    Config.yml
    Nothing really, maybe the player blocklist
    An enable: [true|false] isn't really needed since the block must be set with a command first, but it can still be put in.
    Notes
    destroying said enderchest will remove <X,Y,Z> <player> association
    a player interacting with said block would just open their own inventory​



    Plugin Category: IDK, VanillaExpansion, Inventory?
    Suggested Name: EnderChest++
    When I'd need it by: about a month

    I've looked around and haven't been able to find anything similar, so if this could be made that would be amazing, I think I've outlined it enough so someone can make it.
    If you have any questions/found one very similar/has some ideas for this modpack please ask/share.

    EDIT by Timtower: merged two threads, it is better to turn them into 1 plugin as they need to connect with each other anyways
    EDIT by dhinely: cleaned up some duplications, set commands and permissions to act as one mod
    EDIT by Timtower: merged posts
    EDIT by dhinely: cleaned up
    EDIT by dhinely: 9-18-2015 showed progress
     
    Last edited: Sep 17, 2015
  2. Offline

    dhinely

  3. Wish i could do this, sadly im novice. :(
     
  4. Offline

    dhinely

    Same, just thinking about this makes me want to learn java, but it probably would take me about half a year until I learn enough to take on something this size (and gather enough resources on how to save items to a file/interact with the game itself).
     
  5. Offline

    dhinely

    Alright, so as a project I am deciding to do this, I'm working on step 1 (recreate the regular EnderChest interaction).
    Right now, I don't have much.

    I need to find a way to recreate the regular chest interaction with a file.
    I'm taking a look @
    I think I can do it, but I want a way to have it in a different file than config.

    Is there anyone who can point me in the right direction as to how to do this?
     
    Last edited: Sep 16, 2015
  6. Offline

    timtower Administrator Administrator Moderator

    @dhinely Lets start with: Why not config?
     
  7. Offline

    dhinely

    it works with config, but if i'm to setup 20 separate 'chests' per player, its going to take some space and i'd rather not put all my eggs in one basket, and i'm not yet comfortable with SQL.

    also, what's the problem with learning new things?

    EDIT:
    Later on I'll need someone to look at this code and help me implement the *almost* necessary loops for chest interaction/saving/loading (don't worry, I comment). Right now, I'm simply duplicating Pogo's work, with slight changes, its getting big, but it's still straight forward.
     
    Last edited: Sep 17, 2015
  8. Offline

    timtower Administrator Administrator Moderator

    @dhinely Try the Plugin development section. As this thread pretty much turned into that.
     
Thread Status:
Not open for further replies.

Share This Page