PimvanderLoos / BigDoors

GNU General Public License v3.0
9 stars 4 forks source link

BigDoors v1

BigDoors is a plugin for the Minecraft server mod Spigot. Its aim is to enhance your server with animated blocks that can be used to create, amongst other things, big (animated) doors.

This is the repository for v1 of the BigDoors plugin for SpigotMC. A new v2 version is in development here.

If you have a problem with this plugin, please create an issue or join our Discord.

This plugin is available for download on the Spigot page.

Previews:

Regular doors:

https://i.imgur.com/7zsErlZ.gif

Drawbridges:

YouTube

Get the latest dev-build:

Download the latest dev-build here. If you decide to use it, there are a few things you'll have to keep in mind:

An updated list of the changelog can be found here.

List of features:

Add-ons

FAQ:

Resource pack:

The plugin comes with an optional resource pack that only contains sounds that are played during the animation of the doors. It is not used for the animations themselves.

If you don't want to use the resource pack, you can disable it in the config. Look for the resourcePackEnabled option. You should always disable it if you already have a resource pack installed on your server, as it may otherwise override your existing pack or cause other issues. Because the resource pack only contains sounds, disabling it only means that the sounds will not be played. Everything else will still work as intended.

The config also has a list of URLs to the resource packs there for each supported version of Minecraft. You can use these to download the resource pack manually if you want to either host it yourself or merge it with your existing pack.

Translations:

Got your own translation? Let me know! Note that translations created for older versions may still work. If there are any missing messages you'll be notified in the log.

Unsupported Environments:

If the plugin detects that it is in an unsupported environment during startup, it will abort its initialization to prevent issues. You can force the plugin to enable anyway by enabling unsafe mode in the config, but doing so is not supported!! The following servers are considered unsupported:

And using the following plugins together with BigDoors is also unsupported:

Video Tutorials:

Some more examples:

https://i.imgur.com/O6igfAZ.gif https://i.imgur.com/XVzfCRZ.gif https://i.imgur.com/nSaFXLW.gif https://i.imgur.com/hWflKfN.gif https://i.imgur.com/wXQGWWB.gif

Known Issues:

Commands and Permissions:

When opening doors from the console/command block, NAMES DO NOT WORK! You need to use DoorUIDs there. Why? Because names are not unique, while DoorUIDs are. This constraint means that your command blocks won't break when someone creates a new door with the same name as the one you used.

The permissions are set up such that bigdoors.user.* will give a user access to all actions that a user should generally be allowed to do. Any admin-specific access is locked behind bigdoors.admin.*. This should provide a good starting point with setting up the plugin.

In all the following commands, any parameter between angled brackets is required (i.e. <RequiredArgument>) and parameters between square brackets are optional (i.e. [OptionalParameter]).

Whenever the instructions refer to a DoorID, this means that you can use either the door's name or its (numerical) UID.

User Permissions:

Permission Command(s) Explanation
bigdoors.own.<numberOfDoors> - Sets the maximum number of doors this group can own. Replace <numberOfDoors> by the actual number of doors. e.g. bigdoors.own.4.
bigdoors.user.gui /BigDoors menu

/bdm
Opens the BigDoors GUI.
bigdoors.user.createdoor.<type> /NewDoor [-BD||-DB||-PC||-SD] Command usage: Creates a new door of a given type. Available flags:
  • -BD: BigDoor
  • -DB: DrawBridge
  • -PC: Portcullis
  • -SD: SlidingDoor
Example usage: /newdoor -PC MyNewPortcullis
When not otherwise specified, this defaults to a big door.
All these can also be created from the GUI.


Permission Usage: Replace <type> with one of the following types:
  • door
  • drawbridge
  • slidingdoor
  • portcullis
For example: bigdoors.user.createdoor.bigdoor
bigdoors.user.base /SetBlocksToMove <doorID> <BlocksToMove> Sets the number of blocks this door will try to move. Only applies to doors such as portcullises and sliding doors.

Example usage: /setblockstomove MyDoor 12
bigdoors.user.base /SetDoorRotation <doorID> <direction> Changes the direction a door will try to move. Valid directions:
  • north
  • east
  • south
  • west
  • clockwise (or: clock)
  • counterclockwise (or: counter)
Example usage: /setdoorrotation MyDoor north
bigdoors.user.base /NameDoor <DoorName> Sets the name of the door when you're in a door creation process.

Example usage: /namedoor MyDoor
bigdoors.user.base /BDCancel Cancel the current object creation process.
bigdoors.user.deletedoor /DelDoor <DoorID> Allows you to delete a Big Door.
bigdoors.user.toggledoor /OpenDoor <DoorID> [DoorID2] ... [DoorID..]

/CloseDoor <DoorID> [DoorID2] ... [DoorID..]

/ToggleDoor <DoorID> [DoorID2] ... [DoorID..]
Opens, closes, or toggles a door (of any type). More than one door can be provided in a single command.
A door can be specified using either its name (only when executing the command as a player) or its UID (both for players and the console/command blocks.)
To "toggle" a door here means that it will be closed if currently open or opened if currently closed.
bigdoors.user.listdoors /ListDoors [DoorName] List all doors owned by you, with a specific name if provided.
- /ListDoors <DoorName || PlayerName || PlayerUUID> List all doors with a given name (and who owns them) or all doors owned by a player (PlayerName can only be used for online players!).
Only works in the console!
bigdoors.user.doorinfo /DoorInfo <DoorID> Allows you to get information about a given door.
bigdoors.user.relocatepowerblock /ChangePowerBlockLoc <DoorName> Allows you to change the location of the powerblock of a given door.
Only works for players!
bigdoors.user.inspectpowerblock /InspectPowerBlockLoc Gives you a tool that gives you the door info of any powerblock you hit with it.
Only works for players!
bigdoors.user.addowner /BigDoors AddOwner <DoorID> <PlayerName> Adds another user as an owner of the given door.

Example usage: /bigdoors addowner MyDoor pim16aap2
bigdoors.user.removeowner /BigDoors RemoveOwner <DoorID> <PlayerName> Removes another user as an owner of the given door.

Example usage: /bigdoors removeowner MyDoor pim16aap2
bigdoors.user.setclosetime /SetAutoCloseTime <DoorID> <AutoCloseTime> Sets the amount of time after which a door will try to close itself after it was opened. Negative values mean the door will not try to automatically close (you can still use redstone, of course).

Example usage: /setautoclosetime MyDoor 10, for it to automatically close 10 seconds after opening.

Admin Permissions:

bigdoors.admin.pausedoors /PauseDoors Allows an admin to pause all doors. Execute the command again to unpause the doors.
bigdoors.admin.stopdoors /StopDoors Immediately ends all active animations. Any animated blocks are placed in their final position, so no blocks are deleted.
bigdoors.admin.killbigdoorsentities /KillBigDoorsEntities Kills all entities that may have been left behind by BigDoors for one reason or another. This should not be necessary, but useful just in case.
bigdoors.admin.filldoor /FillDoor <DoorID> Fills in a door with stone blocks, regardless of whether the user who issues the command is allowed to build there or not or if there are already blocks there.
bigdoors.admin.version /BigDoors Version Gets the version of the plugin. If it's a dev-build, it'll also show you the build number.
bigdoors.admin.restart /BigDoors Restart Restarts the plugin. Almost everything will be reinitialized (config, translation, etc.)
bigdoors.admin.bypass.<attribute> - Gives the user access to change the attribute of a door you do not own.
Note that when accessing a door you're not an owner of, you'll have to use its UID!
These are the valid attributes:
  • addowner
  • blockstomove
  • changetime
  • delete
  • direction
  • info
  • lock
  • relocatepowerblock
  • removeowner
  • toggle

Using BigDoors in your project

This project is hosted on EldoNexus.

As a Maven dependency

<repositories>
  <repository>
    <id>eldonexus</id>
    <url>https://eldonexus.de/repository/maven-public/</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>nl.pim16aap2</groupId>
    <artifactId>BigDoors</artifactId>
    <version>0.1.8.43</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

As a Gradle dependency

maven {
  name = 'eldonexus'
  url = 'https://eldonexus.de/repository/maven-public/'
}

dependencies {
  compileOnly 'nl.pim16aap2:BigDoors:0.1.8.43'
}

Thanks

As a final note, I'd like to thank Captain_Chaos for making his PorteCoulissante plugin. I've used it a lot and it inspired me to make this plugin!