BetterChair 1.7.0

Sit on almost everything

  1. Kurfat
    Native Minecraft Version:
    1.14
    Tested Minecraft Versions:
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    https://github.com/Xevenut/BetterChair
    Languages Supported:
    Editable
    This program may not be published or changed without my permission. Commercial use is generally prohibited.


    Right-click an empty hand on a block to sit on it.
    You may not be more than 2 blocks away and have to stand on the ground.
    If you get hurt or the block are moved, the chair will break.
    All meaningful blocks are recognized.
    Permanently stored ON / OFF command per player


    There are 8 types:

    • Normal blocks (270 types)
    • Beds
    • Carpets
    • Stairs
    • Slaps
    • Snow
    Command:
    Code (Text):
    /chair
    Settings:
    Code (Text):
    {
      "global": {
        "SLAP": true,
        "CARPET": true,
        "STAIR": true,
        "BED": true,
        "SNOW": true,
        "BLOCK": true
      },
      "message": "Chairs used: %value%"
    }
    WorldGuard Flag Support:
    Code (Text):
    chair-stair
    chair-slap
    chair-bed
    chair-snow
    chair-carpet
    chair-block
    Custom Events:
    Code (Java):
    @EventHandler
    public void onPlayerChairSwitch(PlayerChairSwitchEvent event) {
        Player player = event.getPlayer();
        IChair chair= event.getChair();
        boolean enable = event.isEnable();
        if(chair instanceof BedChair) {
            BedChair bed = (BedChair)chair;
            // YOUR STAFF
        }
        else if(chair instanceof BlockChair) {
            BlockChair block = (BlockChair)chair;
            // YOUR STAFF
        }
        else if(chair instanceof CarpetChair) {
            CarpetChair carpet = (CarpetChair)chair;
            // YOUR STAFF
        }
        else if(chair instanceof SlapChair) {
            SlapChair slap= (SlapChair)chair;
            // YOUR STAFF
        }
        else if(chair instanceof SnowChair) {
            SnowChair snow= (SnowChair)chair;
            // YOUR STAFF
        }
        else if(chair instanceof StairChair) {
            StairChair stair = (StairChair)chair;
            // YOUR STAFF
        }
    }
    @EventHandler
    public void onPlayerChairCreate(PlayerChairCreateEvent event) {
        IChair chair = event.getChair();
        if(chair.getType() == ChairType.SLAP) return;
        event.setCancelled(true);
        // YOUR STAFF
    }
    @EventHandler
    public void onEntityPassengerRotate(EntityPassengerRotateEvent event) {
        Entity entity = event.getEntity();
        EntityType entityType = event.getEntityType();
        Location from = event.getOldLocation();
        Location to = event.getNewLocation();
        // YOUR STAFF
    }
    [​IMG]
    [​IMG]
    [​IMG]
    Loafiee likes this.

Recent Reviews

  1. Lord_Lofi
    Lord_Lofi
    5/5,
    Version: 1.7.0
    Works great, really appreciate the worldguard support. Helps keep it confined to particular worlds.
    1. Kurfat
  2. hammad_alhassan
    hammad_alhassan
    5/5,
    Version: 1.6.5
    a must have plugin for any server and network well coded plugin and the author is super friendly and he always maintain his plugin updated and he offer a good support to fix or add a feature to this amazing plugin .
    easy a five stars plugin
    1. Kurfat
      Author's Response
      Too friendly THX
  3. LEE3KFC
    LEE3KFC
    2/5,
    Version: 1.6.3
    I'm sorry but be honest, this plugin doesn't have an option to choose whether to sit in the chair or not, and it doesn't prevent you from sitting in the chair if you put all the items you have on it.
    1. Kurfat
      Author's Response
      How do you imagine that? Please write me a PM.
  4. Little_Potato_
    Little_Potato_
    5/5,
    Version: 1.3.0
    Ah yes, at last. My players can finally sit on chairs and we are all beginning to see the light thank you good sir... thank you. <3
    1. Kurfat
      Author's Response
      Thanks for rating.
  5. SpecialSKG
    SpecialSKG
    4/5,
    Version: 1.2.0
    Very good Plugin, but a query. How can I edit it so that only chairs can sit?
    Because I don't generate a folder, but they can sit anywhere.
    1. Kurfat
      Author's Response
      Thanks for rating. There is no config, but I can write one today.
  6. MatiPlayer1998
    MatiPlayer1998
    5/5,
    Version: 1.2.0
    Amazing and well written plugin! Thanks and please, keep updating when 1.16 come.
    1. Kurfat
      Author's Response
      Thanks, I think I will patch that for 1.16
  7. henrymoonrabbit
    henrymoonrabbit
    5/5,
    Version: 1.2.0
    This plugin does not deserve one star!!

    This plugin achieves what it set out to do very well. Better chairs. I have not encountered any errors yet, and I think the only reason this has 1/5 stars is because it's not the type of plugin you think about much after installing. I wouldn't have even downloaded this if I hadn't seen it referenced positively in a forum by someone else who was using it and I want to prevent others from being scared off by its low rating.
    If you like this plugin, rate it! And if you have a problem with it, also rate it! This is a much more elegant plugin than the other ones I've seen that use despawning arrows and whatnot.
    1. Kurfat
      Author's Response
      Great thanks. Mostly people only rate when there are problems.
  8. Carl0Jonshon
    Carl0Jonshon
    1/5,
    Version: 1.2.0
    If there is a void under the block the player lands on, the player gets stuck and dies. And also this plugin creates invisible racks for armor sorry 1



    >.... [08:09:15 ERROR]: Could not pass event PlayerInteractEvent to BetterChair v1.2.0
    java.lang.IllegalStateException: zip file closed
    at java.util.zip.ZipFile.ensureOpen(ZipFile.java:686) ~[?:1.8.0_242]
    at java.util.zip.ZipFile.getEntry(ZipFile.java:315) ~[?:1.8.0_242]
    at java.util.jar.JarFile.getEntry(JarFile.java:240) ~[?:1.8.0_242]
    at java.util.jar.JarFile.getJarEntry(JarFile.java:223) ~[?:1.8.0_242]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:133) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:201) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:111) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:100) ~[patched_1.15.2.jar:git-Paper-155]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_242]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_242]
    at me.incomprehendable.dev.pwp.transparentlisteners.PerWorldPluginLoader.createRegisteredListeners(PerWorldPluginLoader.java:110) ~[?:?]
    at org.bukkit.plugin.SimplePluginManager.registerEvents(SimplePluginManager.java:639) ~[patched_1.15.2.jar:git-Paper-155]
    at de.Kurfat.Java.Minecraft.BetterChair.Types.Chair.spawn(Chair.java:64) ~[?:?]
    at de.Kurfat.Java.Minecraft.BetterChair.BetterChair.onPlayerInteract(BetterChair.java:80) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor51.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.15.2.jar:git-Paper-155]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.15.2.jar:git-Paper-155]
    at org.bukkit.craftbukkit.v1_15_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:463) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.PlayerInteractManager.a(PlayerInteractManager.java:448) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1378) ~[patched_1.15.2.jar:git-Paper-155]
    at xuan.cat.XuanCatAPI.a.c.c.a.e.a(Unknown Source) ~[?:?]
    at xuan.cat.XuanCatAPI.a.c.c.a.e.a(Unknown Source) ~[?:?]
    at xuan.cat.XuanCatAPI.a.c.c.a.e.a(Unknown Source) ~[?:?]
    at net.minecraft.server.v1_15_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:5) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1038) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1015) ~[patched_1.15.2.jar:git-Paper-155]
    at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:938) ~[patched_1.15.2.jar:git-Paper-155]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
    1. Kurfat
      Author's Response
      I cannot re-enact your mistake. Can you send me a youtube video?