PilotCraft
Craft piloting for PVP servers
(Project in Alpha stage - Not currently fully functional)
Jenkins (Alpha builds)
Features Implemented
- Craft scanning on initial license placement. The relative locations of the blocks that make up a craft are saved to the database and used to define the craft. No more pieces of craft left all over your map or taking pieces of buildings with you due to the re-scanning every time you move (limitation in MoveCraft).
- Re-scan the blocks that make up you craft via command (in case of later modifications to the craft)
- Client-side visualization after scans turns all scanned blocks to glass (configurable), blacklisted blocks to red mushroom (configurable), that lasts for 10 seconds (configurable). Allows you to easily visualize what has been scanned and any blocks that need removal.
- Craft movement (container blocks still pending). Can move in all directions including diagonals! (that is a total of 26 directions vs MoveCraft's 6)
- Right click on a license with a joystick (can be done from a distance) to start driving it (no need to be in craft to drive it)
- Forward (left click) and backwards (right click) driving while holding joystick
- Able to move all world blocks including grass, soil, water, etc.
- Permissions divided with benefit, mod, admin, and bypass permission groups
- Robust configuration file
- PreciousStones & WorldGuard zone detection (with bypass permission for admins)
- Prevents a craft from moving if a PS field or unbreakable is found inside the craft (prevents protection displacement)
- License holder can allow players, clans (SimpleClans), groups (Permissions), or * (Everyone) to pilot the craft
- Fully configurable per-craft flag system
Flags Implemented
(These can be configured per craft)
- max-size - lets you set the maximum blocks that will be scanned into a craft
- distance-per-move - lets you set how many blocks per movement the craft will jump
- allow-others - lets you decide whether more pilots can be added to a craft
- allow-others-can-rescan - lets you decide whether allowed pilots can rescan the craft (add more blocks to it)
- vertical-movement - lets you decide whether the craft can be moved vertically
- can-drive-reverse - can dive the craft in reverse
- keep-players-in-place - keeps the players in place while moving by teleporting them along with the craft while it moves
- nudge-players - nudges players into the craft when they hit a wall while its moving
- multi-click - whether repeated clicks done faster than the craft can move accumilate, moving the craft at a multiple
- joysticks - a list of item itds that will drive a craft
- required permission - lets you set a permission that is required to use a specific craft
- blacklisted-types - lets you set blacklisted block types for a specific craft (by default all block types are allowed)
- max-movement-height - lets you set a max height a craft will be able to reach
- tag-color - changes the color of the tag (the unique string that identifies a craft type that must be added as first line in sign)
Commands Implemented
(Must be looking at a license to use the commands that act on craft)
- /pc - menu
- /pc allow [player/c:clan/g:group/*] - allows players to pilot a craft
- /pc remove [player/c:clan/g:group/*] - removes pilots from a craft
- /pc rescan - rescans a craft's blocks and adds them to the database (used after modifications to craft have been made)
- /pc abandon - removes a license from a craft
- /pc stop - stop piloting a craft
- /pc toggle [flag] - toggles a flag on/off (only available for flags where its prudent)
- /pc insert [flag] - inserts a flag into a craft not configured with it (admin tool)
- /pc setowner [player] - sets the owner to a license (admin tool)
- /pc debug - shows debug info to console including transactional SQL statements
- /pc reload - reloads configuration
Permissions Implemented
Groups:
pilotcraft.benefit.* pilotcraft.mod.* pilotcraft.admin.* pilotcraft.bypass.*
Individual:
pilotcraft.benefit.create pilotcraft.benefit.pilot pilotcraft.benefit.toggle pilotcraft.benefit.reset pilotcraft.benefit.allow pilotcraft.benefit.remove pilotcraft.benefit.rescan pilotcraft.benefit.abandon pilotcraft.mod.setowner pilotcraft.mod.driveall pilotcraft.admin.pilot pilotcraft.admin.debug pilotcraft.admin.insert pilotcraft.admin.reload pilotcraft.bypass.protection
Pending
- Chest support (crashes client as of this moment, or it could be just me)
- Rotation
- Chairs (keep you in place while your on them)
- Async movement with SpoutBlock (SpoutAPI will be packaged inside the jar with a shaded groupId to prevent conflicts)
- Economy support (purchase license [charge x amount of credits/items per block of your craft, or lump sum per license], refunds on license abandon)
- "Gas", X amount of blocks traveled costs Y amount of credits/items/blocks (configurable via flag)
- Call home feature brings the craft to you if within a specified range (configurable)
- "limits" flag, to limit the amount of licenses that can be created using permissions (i.e. limits: [2, 4] flag will limit a players with the pilotcraft.limit1 permission to two of that type of craft, and players with the pilotcraft.limit2 permission to four)
- "global-limits" config setting, works the same way as above only that it applies a limit across the board. (i.e. global-limit: [5, 10], config setting will limit players with the pilotcraft.global-limit1 permission to five total craft, and players with the pilotcraft.global-limit2 permission to ten)
- Dynmap integration to view your craft on the map (enabled via flag)
- Factions support (protections & allowing)
- Wiki detailing all functionality
- + Whatever else comes into my imagination by the time I finish.
License format
(A sign placed anywhere on the craft, the tag identifies a craft type and can be configured through the config.yml file, the name can be any unique name the player chooses for his craft)
1: tag 2: 3: CraftName 4: