About
Allows players to place a photo frame on a box. After locking the photo frame the place can access the attached box through the frame. Sign position are configurable.
Previews
Added to large storage boxes
Added to small storage boxes
Added to both large and small storage boxes using the all position
Sign Artist
It is recommend to use SignArtist version >= 1.2.0. This adds the /sili chat command to add the image of the currently held item on the sign. This also adds Sign Artist support to photo frames.
Permissions
framebox.use- allows players to use the/fbchat command
Chat Commands
/fb addto see the available positions to palace a sign/fb add rightto place a sign on the right/fb add frontleftto place a sign on the front left/fb add allto place a sign in all positions specified in the config/fb removeto remove a sign you're looking at/fb remove allto remove all signs on the box/fb costto get the cost of the sign/fb unlockto unlock the sign to allow edits again/fb unlock allto unlock all signs on the box/fbto see this help text again
Configuration
{
"Chat Command": "fb",
"Refund on remove": true,
"Refund % (0 none - 1 max)": 1.0,
"Max distance (Meters)": 5.0,
"Cost": {
"wood": 150
},
"Sign Positions": {
"box.wooden.large": {
"Frame Item Shortname": "photoframe.portrait",
"Frame Positions": {
"Left": {
"Frame Position Offset": "0.95 0.4 0",
"Frame Position Rotation": "0 90 90",
"Include Position In All Option": true
},
"Right": {
"Frame Position Offset": "-0.95 0.4 0",
"Frame Position Rotation": "0 270 90",
"Include Position In All Option": true
},
"Front": {
"Frame Position Offset": "0 0.4 0.55",
"Frame Position Rotation": "0 0 90",
"Include Position In All Option": false
},
"FrontRight": {
"Frame Position Offset": "-0.45 0.4 0.55",
"Frame Position Rotation": "0 0 90",
"Include Position In All Option": true
},
"FrontLeft": {
"Frame Position Offset": "0.45 0.4 0.55",
"Frame Position Rotation": "0 0 90",
"Include Position In All Option": true
},
"Back": {
"Frame Position Offset": "0 0.4 -0.55",
"Frame Position Rotation": "0 180 90",
"Include Position In All Option": false
},
"BackRight": {
"Frame Position Offset": "-0.45 0.4 -0.55",
"Frame Position Rotation": "0 180 90",
"Include Position In All Option": true
},
"BackLeft": {
"Frame Position Offset": "0.45 0.4 -0.55",
"Frame Position Rotation": "0 180 90",
"Include Position In All Option": true
},
"Top": {
"Frame Position Offset": "0 0.775 0",
"Frame Position Rotation": "270 0 90",
"Include Position In All Option": false
},
"TopRight": {
"Frame Position Offset": "-0.45 0.775 0",
"Frame Position Rotation": "270 0 90",
"Include Position In All Option": true
},
"TopLeft": {
"Frame Position Offset": "0.45 0.775 0",
"Frame Position Rotation": "270 0 90",
"Include Position In All Option": true
}
}
},
"box.wooden": {
"Frame Item Shortname": "photoframe.portrait",
"Frame Positions": {
"Left": {
"Frame Position Offset": "0.49 0.35 0",
"Frame Position Rotation": "0 90 90",
"Include Position In All Option": true
},
"Right": {
"Frame Position Offset": "-0.49 0.35 0",
"Frame Position Rotation": "0 270 90",
"Include Position In All Option": true
},
"Front": {
"Frame Position Offset": "0 0.35 0.39",
"Frame Position Rotation": "0 0 90",
"Include Position In All Option": true
},
"Back": {
"Frame Position Offset": "0 0.35 -0.39",
"Frame Position Rotation": "0 180 90",
"Include Position In All Option": true
},
"Top": {
"Frame Position Offset": "0 0.6 0",
"Frame Position Rotation": "270 0 90",
"Include Position In All Option": true
}
}
}
}
}
Localization
{
{
"Chat": "<color=#bebebe>[<color=#de8732>Frame Box</color>] {0}</color>",
"NoPermission": "You do not have permission to use this command",
"MissingItem": "{0}: {1}x",
"MissingMessage": "You do not have enough items to add a frame to this box. You're missing:\n{0}",
"Cost": "{0}: {1}x",
"NotLookingAt": "You're not looking at a box or frame",
"AddSlotIsTaken": "The frame position {0} is already taken. Open positions are:\n{1}",
"AddSuccess": "You have successfully added a frame onto your box in position {0}. In order to access the box using the frame you need to first lock the frame.The only way to unlock the frame is using the /fb unlock command",
"RemoveSuccess": "You have successfully removed the frame from position {0}",
"UnlockBuildingBlocked": "Cannot unlock in a building blocked zone",
"UnlockSuccess": "You have successfully unlocked the sign.",
"NotLookingAtFrame": "You're not looking at a frame.",
"NotLookingAtFrameBoxFrame": "You're not looking at a frame box frame",
"NotLookingAtFrameBox": "You're not looking at a frame box or frame box frame",
"NoFrameInPosition": "There is no frame in position {0}",
"CostPre_V1": "Cost to make:\n",
"AddInvalidSyntax_V1": "Invalid Syntax: <color=#de8732>/{0} {2} front</color> - to add the frame to the front of the box\nAvailable frame positions for this container are {1}",
"InvalidAddFramePosition_V1": "Invalid Frame Position. Available frame positions are:\n {0}",
"ContainerNotAllowed_V1": "This container is not allowed to have a frame on it.",
"NoUnlockPermission": "You do not have permission to unlock this sign.",
"AddSubCommand": "add",
"RemoveSubCommand": "remove",
"CostSubCommand": "cost",
"UnlockSubCommand": "unlock",
"AllSubOption": "all",
"HelpText_V1": "Allows placing photo frames on boxes. After settings the sign and locking it you can now access the box while looking at the sign.\n<color=#de8732>/{0} {1}</color> to see the available positions to palace a sign\n<color=#de8732>/{0} {1} right</color> to place a sign on the right\n<color=#de8732>/{0} {1} frontleft</color> to place a sign on the front left\n<color=#de8732>/{0} {2}</color> to remove a sign you're looking at\n<color=#de8732>/{0} {3}</color> to get the cost of the sign\n<color=#de8732>/{0} {4}</color> to unlock the sign to allow edits again\n<color=#de8732>/{0}</color> to see this help text again\n"
}
}
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

