Giter Club home page Giter Club logo

intellidoors's Introduction

IntelliDoors

Smarter doors for your Minecraft world!

Plugin for Bukkit/Spigot (a mod for Minecraft).

Compatible with 1.11+ (1.11.1/1.11.2), 1.10 (1.10.1/1.10.2), and 1.9 (1.9.1/1.9.2/1.9.3/1.9.4)

Please report all issues on GitHub, thank you!

Overview

IntelliDoors provides additional functionality for doors, including:

  • When a player interacts with a door, it can reset after a delay.
    • If the door is not powered, and a player opens it via right click, it will automatically shut after a delay.
    • If the door is powered and a player closes it via right click, it will automatically open after a delay.
    • Default is 5 seconds.
  • When a door has a sibling/s, that/those sibling/s can mirror the other/s.
    • If you right click the a door, its sibling/s will open too (the clicked door will open instantly because that action is demonstrated client-side, but the sibling/s will open after 1 tick).
    • If you power a door, its sibling/s open too (perfectly in sync).
    • Simple pressure plates feel less glitchy.
    • Enabled by default.
  • When redstone power is lost doors can shut after a delay.
    • Prevents you from pressing a button, walking forward, and having the door slam on your face.
    • Default is 2 seconds.
  • Iron doors can be configured to open without redstone.
    • Disabled by default.

All features are fully configurable. Each type of door can be configured individually.

Source code is available on GitHub.

Like what I've made? Support me by giving me a star, following me, or feel free to send me money [here] (https://www.paypal.me/moltendorf). Thanks!

Downloads

IntelliDoors is available for download at the following locations:

intellidoors's People

Contributors

maezred avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

djdch

intellidoors's Issues

Compatibility with GriefPrevention

I use GriefPrevention for claims, and a part of the protection is that other players cannot operate your levers or buttons, and so they cannot open your iron doors.
I would love to be able to open iron doors by clicking, but doing so allows anyone to open the door.
I am hoping that you will add the option of respecting GriefPrevention claims.
Thank you!

Feature: permissions nodes

I would like to use IntelliDoors as a donor perk. That would require permissions nodes to control access to the features. The minimum could be just a few nodes to enable/disable iron components (with defaults indicated):

- intellidoors.doors.iron-door.single.interact.enabled: false
- intellidoors.doors.iron-door.pair.interact.enabled: false
- intellidoors.doors.iron-trapdoor.single.interact.enabled: false
- intellidoors.doors.iron-trapdoor.pair.interact.enabled: false

although the complete list would be more expansive:

- intellidoors.enabled: true
- intellidoors.single.interact.reset.enabled: true
- intellidoors.single.redstone.reset.enabled: true
- intellidoors.pair.interact.sync: true
- intellidoors.pair.interact.reset.enabled: true
- intellidoors.pair.redstone.sync: true
- intellidoors.pair.redstone.reset.enabled: true
- intellidoors.doors.wooden-door.single.interact.enabled: true
- intellidoors.doors.wooden-door.single.interact.reset.enabled: true
- intellidoors.doors.wooden-door.single.redstone.enabled: true
- intellidoors.doors.wooden-door.single.redstone.reset.enabled: true
- intellidoors.doors.wooden-door.pair.interact.enabled: true
- intellidoors.doors.wooden-door.pair.interact.sync: true
- intellidoors.doors.wooden-door.pair.interact.reset.enabled: true
- intellidoors.doors.wooden-door.pair.redstone.enabled: true
- intellidoors.doors.wooden-door.pair.redstone.sync: true
- intellidoors.doors.wooden-door.pair.redstone.reset.enabled: true
- intellidoors.doors.iron-door.single.interact.enabled: false
- intellidoors.doors.iron-door.single.interact.reset.enabled: true
- intellidoors.doors.iron-door.single.redstone.enabled: true
- intellidoors.doors.iron-door.single.redstone.reset.enabled: true
- intellidoors.doors.iron-door.pair.interact.enabled: false
- intellidoors.doors.iron-door.pair.interact.sync: true
- intellidoors.doors.iron-door.pair.interact.reset.enabled: true
- intellidoors.doors.iron-door.pair.redstone.enabled: true
- intellidoors.doors.iron-door.pair.redstone.sync: true
- intellidoors.doors.iron-door.pair.redstone.reset.enabled: true

etc.

Feature: New Config/Preference Flags

Flags are essentially real additional features that the plugin actually does. Like for example a while back I envisioned a way to make a door auto-open when you ran at it. Realized it would be difficult to implement and ultimately binned it (at the time; still unsure about the practicality of that).

Piggybacking off of the preferences upgrade, I could add a lot of flags that by themselves didn't seem like they'd provide a compelling offer, but with the ability to customize any door in any way they would provide a lot of functionality.

Here's a few I think people would appreciate and some should be easy to implement:

  • Open flag: Whether or not the door can be opened manually.
  • Close flag: Whether or not the door can be closed manually.
  • Interact Limit: How many times the door can be toggled manually (players and doors have their own limits/periods so a door can be spammed a bunch but then throttled; but would require multiple players to spam it, however if they continue to spam it their own limits will kick in and throttle them even harder against all doors).
  • Interact Period: How often the toggle count is reduced (down to zero).
  • Sound flag: Sound for door (may be tricky or impossible in some scenarios).
  • Interact Hand: Require a specific hand for interacting with the door.
  • Teleport To: Teleport players when they walk through the door.
    • Portal: Plays a portal animation when a player is teleported.
  • Add Velocity: Adds velocity to the player when they walk through the door.
  • Give Item: Gives players items when they walk through the door.
    • Use Inventory: Pick an inventory (chest/furnace/etc) to take items from.
    • Max Distance: Maximum distance for the inventory.
    • Spawn Items: List of items that are given regardless of attached inventory.
  • Emit Power flag: Door will emit power to Comparators when open.
  • Knock/Doorbell flag: Play a sound to the owner/player every time a player knocks.
    • Knock/Doorbell Hands: Require a specific hand for knocking (being able to open the door with the same hand cancels this requiring the user to set the Interact flag or Open flag to false to get the knock sound).
    • Knock/Doorbell Sound: Sound for knock.

Some additional basic flags I was thinking of were:

  • Vanilla flag: makes the door ignore everything plugin-related and act vanilla (even other flags).
  • Disable Redstone flag (server config-only).
  • Enable Iron Door Interact flag (server config-only).
  • Left Click interact flag (server config-only): enables left-click anywhere right-click is enabled.
  • Simplify Existing Basic Flags (server config-only).
  • Enable Knocking (server config-only): enables knocking with a default sound on left-click (right click is unaffected) for all doors.
  • Silence flag: Prevents doors from playing sounds.
  • Anything else simple you need done that is relatively complicated right now?

Note some flags are intentionally default and should be disabled (i.e. set to false) to enable the non-vanilla or non-default functionality. Basic flags are really just combinations of other advanced flags and don't actually add new functionality.

Thoughts?

Disable reset

I can't find a way to disable the reset.

Some people want to use the trap doors as decoration, but they keep reseting.

1.13.2?

Plugin will be updated for 1.13.2?

Feature: Player/Door/Combo Preferences

This will complicate things a lot. But that's okay. It's time.

  • Doors will be able to be configured independently of the server defaults if a player has permission to use the preferences system.

  • When doors are placed they can remember their owner; but the owner can be changed. Since this is not currently intended to be a protection plugin, it will monitor the results before controlling the doors. Sane defaults will be provided to prevent obvious abuse cases.

  • Additional flags/permissions for controlling the default state of a door.

  • Doors will be able to be configured to act independently, based on player-preference (the current player or the owner), or based on server defaults.

  • Preferences will use a fallback mechanism: if the door's independent preferences does not exist, it will fallback to its owner's preferences; if that doesn't exist: it will fallback to the server defaults.

  • Preferences will have a priority system to override lower-priority preferences (when any priority is the same, the order will always go in: independent, owner, player, server). Permissions can be used to tailor a player's ability to override any door, their doors, or nothing at all.

  • Additional flags for controlling how a door interacts with preferences (e.g. whether a player may override it at all, inherit preferences from another door/owner/player/server, etc).

  • Additional permissions will allow administrators to permit or restrict a player's ability to do anything with these features.

Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.