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
<<reply 2698976="">>
<s>the same for me</s>
my fault
Hello
FrameProtect can I translate it?
to Zh_tw
Thank you\\ and
V2.6 Test craftbukkit-1.9.jar OK
Download Zh_tw
This file Version 2.6
Have Fun <3
I have this Error:
[14:36:21] [Server thread/ERROR]: Error occurred while enabling FrameProtect v2.6 (Is it up to date?)
java.lang.NullPointerException null value in entry: skull-owner=null
at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:33) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:135) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:206) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.inventory.CraftMetaSkull.serialize(CraftMetaSkull.java:173) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.inventory.CraftMetaItem.serialize(CraftMetaItem.java:850) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.util.io.Wrapper.newWrapper(Wrapper.java:17) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.util.io.BukkitObjectOutputStream.replaceObject(BukkitObjectOutputStream.java:47) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1144) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_51]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) ~[?:1.8.0_51]
at ch.dragon252525.frameprotect.util.SQLite.insertOrUpdateProtection(SQLite.java:123) ~[?:?]
at ch.dragon252525.frameprotect.DataManager.saveProtection(DataManager.java:71) ~[?:?]
at ch.dragon252525.frameprotect.protection.ProtectionManager.updateProtectionData(ProtectionManager.java:93) ~[?:?]
at ch.dragon252525.frameprotect.protection.ProtectionManager.updateAllProtections(ProtectionManager.java:136) ~[?:?]
at ch.dragon252525.frameprotect.FrameProtect.onEnable(FrameProtect.java:89) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.Bukkit.reload(Bukkit.java:535) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_51]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [craftbukkit.jar:git-Spigot-5f38d38-12698ea]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Bonjour, Toujours pas de version fonctionnel pour les portes-armures ?
Can you add an option where I can change the prefix so whenever someone hits a frame that doesn't have the perm it says like &7You can't do this, instead of &c[FrameProtect] &6You can't hit that frame!
Hey guys! I think i find bug! If you shoot arrow to the frame that item will drop! I don't know if is that bug known but here it is. (sorry for my bad english! It isn't my national language so i can't speak very well but I think you can read it)
@Shiva35 @ImZeta @AidenSama @Fear_W @Joakimbeijer
I hope I will find a way to fix this soon.
@zuhir
Thanks ;)
@unclemark There already is an alias: /frameprotect
but I can add another one.
Spanish translation by me
http://pastebin.com/pBzJZbAq
(The translation is version 2.4)
Sorry for my bad english.
@Dragon252525
Hi there! Will there be an update for this plugin? With same stability as 2.5 but with the Armor stands protection too?? Im willing to donate for a working version. Thanks!
http://pastebin.com/yHQKG1sh
Any possibility to set a custom alias in config like /fpx ?? I have another plugin that uses /fp
Thanks
@Dragon252525
Could you post your code on GitHub? I dont want to decompile it to help you ;)
Hi ! Can you fix the bug/error ? (1.8) Please.... <3
Hi! When fix the bug ? n.n
Can u give us please the source code to look and fix the error(s)?
Bug :
I use Craftbukkit 1.8.7
@Dragon252525
hey Dragon252525,
i will give you some information what is missing in the plugin.
- the option to auto register a protection
- the /fp info back :)
- a option to remove protection if this error appears (Unable to respawn disappeared itemframe. See error.log for more info.)
i would like to help! send me a pm and we see where we go to!
I'm back!
Sorry for not answering and not updating the plugin :C
I had other things to do.
Well,
I'd really like to update FrameProtect but to be honest, I don't really know what to do about this 'protections are not working / are gone after 3h' thing. If anyone has an idea, please tell me.
At the moment protections are linked to the UUIDs of the objects. This worked well on my test servers but as many of you told me, this doesn't seem to work very well :/
I could do it like in the previous version; store protections by location an facing of the objects, but then there will be the problem of armor stands, which can be moved e.g. by pistons. Since this update was mainly done to add armor stand protection, this would not help that much → you could just use the older, working version.
@andris15
downgrading to 2.5
every restart server all Protect frames are gone
does the developer abandond the plugin?
Our players discovered a strange duplication glitch with v2.6. When you place an item frame on a pressure plate (we used iron ones) and then someone else locks it by shift-left-clicking the back, you get an item frame with two owners. When one of those owners breaks the item frame, they get the frame and the item inside to drop, but the item frame and the original item remains. It's like the fact that there are two owners to the same item frame causes it to drop, while still retaining another copy of it for the original owner.