FrameProtect
Item frames, paintings, armor stands and leash knots are, for simplicity, called objects on this page.
Protect your item frames, paintings, armor stands and leash knots!
Very simple to use.
Overview | Permissions | Internationalization (Language)
How it works (commands and stuff) | Help
Features
- Protect item frames, paintings, armor stands, leash knots and end crystals (objects)
- Per player protections
- Prevent natural destruction of objects (global)
- floating objects that would get destroyed instantly by default game physics
- other such things
- Prevent destruction by mobs, unfortunate coincidences and other causes (global)
- skeletons shooting at objects
- players shooting at objects
- creepers or other explosives exploding next to objects
- piston movement
- Prevent objects from malicious players (protected objects)
- stop players stealing items from your shop item frames
- protected objects can only be destroyed by their owner (or admins)
- Stop players from placing specific objects at all (via permissions)
- Respawn disappeared objects (protected objects)
- when you have floating, protected, item frames and have to start the server without FrameProtect and they get removed by default game physics, it will respawn them when it is loaded again
- The latest version supports Minecraft 1.7.10 and up
- Players, worlds and entities are always referred to via UUID to ensure correct assignment
- Protections can be saved to an SQLite or a MySQL database
- Fine tuning via configuration file and permissions
- Pre-made translations in several languages + fully customizable in-game messages
- Customizable prefix and command
- Many configuration options
FrameProtect 2.8.7 is here!
What's new? (since 2.7)
- add 1.12+ support
- add end crystal support
- major performance improvements due to asynchronous saving
- improve respawn mechanism
- temporarily generate blocks to make sure item frames, paintings and leash knots get spawned where they normaly would not
- minimize console output (no more "Unable to respawn disappeared *" spam)
- add new translations (Japanese, Simplified Chinese, Korean)
- use bStats (bstats.org) for plugin metrics
- use spiget (spiget.org) for update checks (no more console spam with UnknownHostException)
- add option to disable error logging (writing log files)
- add option to get rid of disappeared object respawning related messages (enabled by default)
- some other fixes
Installation
Your server is not running 1.7.10 or newer? Info page for older versions of FrameProtect
If you want to import old data, please have a look at import old data.
> Make sure that your server is running at least Minecraft 1.7.10 and Java 8.
> Put FrameProtect.jar into your plugins folder and restart the server.
Import old data (from 2.5 / 2.6)
FrameProtect 2.8 has integrated data import functionality.
Click here for detailed data import instructions.
Data migration SQLite <-> MySQL
FrameProtect 2.8 has integrated data migration functionality.
Click here for detailed migration instructions.
Configuration
You can find all configuration options including description and default value in the config.yml file.
Future Features / Todo
- Add world specific configuration
- Add purge command to remove all protections of a specific player.
- Add debug commands (remove broken protections, etc.)
- Add the possibility to add members to your protections, so they can be accessed by other players.
- Readd some commands and add the option to disable direct protecting/deprotecting by clicking.
- Any requests?
Known Bugs
- See Help
Update Checking
FrameProtect checks for new versions every now and then using the spiget API (check only, no download). You can disable this by setting settings.allowUpdateCheck in config.yml to false.
Metrics
FrameProtect sends statistics about the usage to bstats.org. You can disable this for all plugins by setting the option enabled in the YourServerFolder/plugins/bStats/config.yml file to false.
View stats
Damn this is laggy
Any idea when the update will be ready? Players still can't really use the plugin properly, barely even worth having it installed at this point.
Spigot 1.8:
2.6: Lost saves restart. (Not recommended)
2.5: Works perfectly. (Recommended)
1.8.3 not working. we see notifications on chat but frame is not protected at all :/
this support UUID?
@AdamTragedy
It's been a major problem everyone's been having. It seems vaguely related to respawn disappeared, protections in general are buggy in this new version. Dragon's working on it.
BUMP for my question.
Looks like protections EXPIRE after about 3 hours. Tested multiple times.
1. Placed item frame 2. Protected item frame 3. Came back 3-4 hours later to check... 4. Frame was unprotected
Tested with multiple players of different ranks. Running 1.8.1 with most recent updated version of IF.
Can't remove the [FrameProtect] prefix in the language yml.
Players are able to shoot arrows at item frames to get the items out, how do I stop this? Running version 2.6.
I'm running online mode true.
Also each time I reload or reboot the server I get this error: http://pastie.org/10080732
I tried disabling respawnDisappeared, but it kept showing.
It's a shame it had worked until 2.6, any way of updating to 1.8 meanwhile it doesn't get solved?
Thanks
@dedina3
Ok thanks. I'm happy that at least the UUIDs of players seem to be stable.
Does anyone else than @MarioAlessandroDevs have problems with the constantly open MySQL connection? I realized that to add buffering for this does not realy solve the problem of too many queries (maybe there are ways to do it better but I'm not that familiar to MySQL in Java). Also it's a lot of work and I'd have to modify the existing database to get it work correctly.
I recommend to use SQLite instead if MySQL's not working for you.
@Dragon252525
I've been editing some config for another plugin and I had to do server-restart. After the restart one player told me that his clocks (in item frame) got duplicated. Few minutes later, he said that also his paintings got duplicated.
If it's relevant, i'm running online mode - false, UUIDS of players does not change.
@Mr_Simba
I don't know why, but on my test servers, the UUIDs were still the same after weeks and dozens of reboots :/
At this time, the only does-this-protection-exist check is the comparison of the UUIDs. I think I'll replace that with specifc checks. For example "does the picture at this specific location display the same image as stored in the database". It's also possible to check if the items in item frames and armor stands are still the same. So I think, it should work good enough for now.
Why they respawned the wrong way arround or on the back of the block? I have no clue... shouldn't happen. Hope I'll find a solution for this.
Thanks for this detailed answer. It really helps me ;)
@Dragon252525
It wouldn't surprise me if entity UUIDs change over time, the server may redistribute them over time as the entities are loaded and unloaded, as entity UUIDs generally don't need to be permanent. I think the positional check thing you proposed sounds like a good solution.
Also (if this makes any sense in regards to the plugin) make the position check less specific for respawnDisappeared. Item frames keep duplicating because it thinks they've disappeared even though they're still there, which I assume is either because it's checking a very very specific position for where the item frame was previously, or because whatever thing checks for the item frames is checking the wrong block (item frames tend to duplicate onto adjacent walls or onto the back of chests they're placed on).
For now, I wouldn't worry about having support for multiple entities in the same location. As you said, that's fairly uncommon. As for #2 (objects being moved while the plugin is disabled), I don't think it's very possible to expect you to account for that.
My server is in online mode. Player UUIDs will never change, so that wouldn't be your problem. I'm fairly positive it's related to the respawnDisappeared setting. When I had it on, item frames duplicated. When I have it off, protections disappear (meaning it doesn't find the entity there, but instead of spawning a new duplicate one, it just deletes the protection).
@Mr_Simba
@AdamTragedy
@StillSwingin
Thanks for reporting. FrameProtect's using the UUIDs of the objects to recognize them. Sadly , it seems that some servers (if not all) don't keep those forever :/
Does this happen only to item frames or is this a general error?
What I can do about the duplication bug is checking if there's already an object on the location where the lost UUID was and if so, update the UUID instead of spawning in a new object.
The problem with this is:
(Well, at least better than the current situation...)
I'm not sure if thats even the problem. It would need the server to restart or at least the plugin to reload to randomly loose protections...
Are your servers running in online or offline mode? If the server-side UUID of a player changes, the protection would remain ._.
I'm confused...
Same problem as @AdamTragedy and @Mr_Simba
@Mr_Simba
Yup. People found out on my server, right away. So I disabled it....now protections just auto-falloff about 3 hours after placed.
@AdamTragedy
I've found that started happening when I disabled respawnDisappeared in my settings. The problem is if that setting is enabled, it allows for item frames (and the items withint them) to be duplicated in certain situations. This becomes very abusable if players find out about it.
My players will randomly complain that upon protecting their itemframes, logging off....coming back at a later time.....that their itemframes are unprotected. Here is a quote from a MOD:
"I've encountered a bug with the Frame Protect plugin. I protected all the frames in my shop. Logged off. Logged back in a few hours later and none of the item frames were protected. Happened again today. Protected all the item frames, even went around 3 times to make sure they were all protected. Logged off and logged back in hours later and they were unprotected again. And someone had hit my one of a kind sword off the wall and could not reach it because it went behind the shop and despawned."
Here is my config: http://pastebin.com/VHB5xudw
Anything I can change?