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 XYZPartially /ECM clear <Chest#> ------------------ removes associated <Chest#> inventory Only clears inventory of offline playersNot 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 chestsPermissions 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 fileNot 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 loopI'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
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).
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?
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.