Ships
Ships

|
Source Code - Github |
JavaDocs |
Sponge version |
Discord channel |
Translate Core |
|---|
Looking for Dev builds?
Dev builds give off new features and bug fixes before they are officially released, however these features and bug fixes may not have been tested as much as a release on here
Old page:
I am testing this new page out. I am aware of some parts that are missing such as ship types, but please say if there is anything that you wish to see. I plan on making a FAQ's that includes common questions such as how to change ship requirements.
If you want to see the old page, it is here
Video tutorial
Ships 6 changes
Ships has gone through many changes, Ships 6 is the latest rewrite of the plugin. The latest rewrite fixes multiple bugs found in the root of previous versions of Ships.
Features
Moving ships
As the name of the plugin suggests, you can create your own ship and move it with just a single click.
Works with all blocks
There is a fully-fledged list where you can configure every block to react differently for the ships, including being able to add a block type to interact with Ships, detect it as a collide, and even not react at all.
Teleport to ships
There have been many requests to be able to teleport to ships for not only this plugin but others like it. This feature has been added to Ships, however, if it is something you do not wish, then you can disable to command by not adding the command.
Falling Ships
Ships will fall/sink if requirements are not met, this could be done through your own interaction such as running out of fuel, or by something else such as a TNT explosion.
Ship types
| Airship | Link |
| Ship | Link |
| Marsship | Link |
| Submarine | Link |
| Plane | Link |
| Hybridship | Coming soon |
Move the ship:
In Ships, movement is done by signs. You can see all signs here
Collide types:
| Name | ID | Description |
|---|---|---|
| Detect collide | DETECT_COLLIDE | If Ships detects this block in the way of a ship moving then the ship will not move with the error of this block being in the way |
| Material | MATERIAL | Material means that you can build a ship out of this block and the Ships block detection system will detect it as part of your ship |
| Ignore | IGNORE | If Ships detects this block in the way of a ship moving then the block will break and the ship will take its place |
Permissions
| Permission node | Description |
|---|---|
|
ships.cmd.info |
Allows the player to use the command '/ships info' |
|
ships.cmd.blockinfo |
Allows the player to use the command '/ships blockinfo' |
|
ships.cmd.shiptype.create |
Allows the player to use the command '/ships shiptype create' |
|
ships.cmd.config.set |
Allows the player to use the command '/ships config set' |
|
ships.cmd.config.view |
Allows the player to use the command '/ships config view' |
|
ships.cmd.blocklist.set |
Allows the player to use the command '/ships blocklist set' |
|
ships.cmd.blocklist.view |
Allows the player to use the command '/ships blocklist view' |
|
ships.cmd.ship.track |
Allows the player to use the command '/ships ship track' |
|
ships.cmd.ship.eot |
Allows the player to use the command '/ships ship eot' |
|
ships.cmd.ship.crew |
Allows the player to use the command '/ships ship crew' |
| ships.move.own.ships.airship | Allows a player to move own airship |
| ships.move.own.ships.watership | Allows a player to move own ship |
| ships.move.own.ships.marsship | Allows a player to move own marsship |
| ships.move.other.ships.airship | Allows a player to move anyones airship |
| ships.make.ships.airship | Allows a player to make a airship |
| ships.remove.other |
Allows a player to destroy anyones ships sign |
Developers:
Looking for a development wiki? maven/gradle dependencies? or something else relating to ships or translate core? Take a look at the getting started wiki
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
The Altitude sign works fine for me, What version are you using? Alpha 2.4? Alpha 2.3.1? Release 5.0.1.4?
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
the latest Alpha 2.4 on 1.14.4
Also, do you know if this plugin can move an airship like this?:
https://www.planetminecraft.com/project/hyperion-airship-by-toxicbuilds-download/
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
Is there a crash in the console?
As for your airship question, yes it can as long as 2 config settings are changed. You can see in this comment how to enable/disable the config values by command.
The two values that need changing are Advanced.Block.Finder and Advanced.Block.Movement. Both these values need to be the ships 6 variant as the ship in your image would be classed as a large ship
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
Thanks for the quick reply!
No, there are no crash in the console. The Sign simply doesnt do anything when left/right-clicking. It does however switch between increase/decrease state when right-clicking. But when trying to left-click nothing happens.
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
Hmmm. If you enable the boss bar in the config (look at command below) and then click it. Does it display any boss bar (progress bar)?
/ships config set config Boss.Bar.Visible true
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
Yes, it does
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
At what point does the progress bar stop updating (as in whats the message) - im assuming it does stop
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
It stops but nothing happnes. But now it suddenly works. Altitude goes up and down now after i destroyed the ship and created a new airship.
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
Also when i changed the config from ship 5 to ship 6 and tried it on the small airship. It takes a while before it moves. Is the Ship 6 only supposed to be used on large airships? Or is it normal for it to take a while before it moves?
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
The altitude sign issue you have sounds like an issue that has been patched in alpha 2.5 (that is awaiting approval).
So yes. The ships 6 block finder is designed for larger ships, however it does work on smaller ones. The nature of how the block finder works means it will take a while, for large or small. So yes its normal. I am trying to do some optimizations to make it faster but at the moment all attempts have failed due to server tick time.
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
Found a problem where it says that some blocks are in the way even tho i have configured them in the config file to be "materials". Anyway around this?
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to thetreethatgrows:
That depends. Are the blocks that are in the way ment to be part of the ship or not? If the are then check what size your ship is (clicking the licence sign will tell you), if it matchs or exceeds the tracking limit (shown in the config - you can use the command below to check the value) then just increase the tracking limit.
If the blocks are not supposed to be part of the ship and you wish for those blocks to break on impact such as a flower of some kind then change the material to IGNORE instead if MATERIAL.
ships config view config Advanced.Block.Track
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
The blocks are supposed to be part of the ship. Tried setting the tracking limit but i still get the error that some blocks are in the way
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to Mosemister:
Found the problem. Seems like it only tracks "connected" blocks as part of the ships, and not "diagonally placed blocks". This was a mistake on my part, srry.
-
View User Profile
-
Send Message
Posted Aug 27, 2019In reply to thetreethatgrows:
That ok. I don't believe that is in the docs anymore so its more my fault then anyones.
-
View User Profile
-
Send Message
Posted Aug 26, 2019Hi everyone. So while I have been waiting for Ships Alpha 2.4 to be approved. I have been working on the next update, Alpha 2.5 contains fixes for a crash listed in the comment below and a fix for entities (including players) who would not be moved on a ship due to them being on a half slab or stairs. It also may include the first part of the Ships 5 file convert code that would convert Ships 5 files to Ships 6 R2. I do plan at some point to convert ships 6 R1 files to R2 as well.
As for the update awaiting approval i didnt make a pre update changelog for it as the last 2 updates have been approved within 30min of upload. But here are the changes.
Ships 6.0.0.0 Alpha 2.4
-
View User Profile
-
Send Message
Posted Aug 25, 2019I have the plugin installed to my server through Apex Hosting. When I place a license sign it gives me a message like Missing Permission: ships.make.ships.marsship. How would I be able to access the permissions and enable this?
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to bigbooflad:
Permissions work in the same way all other plugins permissions work. You need to enable them through your permissions plugin. There are a few permission plugins to choose from. The one I use to test permissions is GroupManager however this one is old and lacks more modern features.
-
View User Profile
-
Send Message
Posted Aug 25, 2019Hi there, getting this as an error whilst attempting to use an airship's altitude sign, with the latest update
[03:19:50 WARN]: Failed to know what to do: EventListener caused exception from org.ships.event.listener.CoreEventListener.onPlayerInteractWithBlock(AsPlayer arg0)[03:19:50 WARN]: Failed to know what to do: EventListener caused exception from org.ships.event.listener.CoreEventListener.onPlayerInteractWithBlock(AsPlayer arg0)[03:19:50 WARN]: java.lang.NullPointerException[03:19:50 WARN]: at org.ships.vessel.sign.AltitudeSign.lambda$onVesselMove$4(AltitudeSign.java:162)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)[03:19:50 WARN]: at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)[03:19:50 WARN]: at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.copyInto(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.evaluate(Unknown Source)[03:19:50 WARN]: at java.util.stream.ReferencePipeline.forEach(Unknown Source)[03:19:50 WARN]: at org.ships.vessel.sign.AltitudeSign.onVesselMove(AltitudeSign.java:162)[03:19:50 WARN]: at org.ships.vessel.sign.AltitudeSign.access$000(AltitudeSign.java:30)[03:19:50 WARN]: at org.ships.vessel.sign.AltitudeSign$1.onStructureUpdate(AltitudeSign.java:92)[03:19:50 WARN]: at org.ships.vessel.common.loader.ShipsOvertimeUpdateBlockLoader$OvertimeRunnable.onShipsStructureUpdated(ShipsOvertimeUpdateBlockLoader.java:40)[03:19:50 WARN]: at org.ships.algorthum.blockfinder.Ships5BlockFinder.getConnectedBlocksOvertime(Ships5BlockFinder.java:70)[03:19:50 WARN]: at org.ships.vessel.common.loader.ShipsOvertimeUpdateBlockLoader.loadOvertime(ShipsOvertimeUpdateBlockLoader.java:62)[03:19:50 WARN]: at org.ships.vessel.sign.AltitudeSign.onSecondClick(AltitudeSign.java:123)[03:19:50 WARN]: at org.ships.event.listener.CoreEventListener.lambda$onPlayerInteractWithBlock$6(CoreEventListener.java:96)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)[03:19:50 WARN]: at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)[03:19:50 WARN]: at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.copyInto(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)[03:19:50 WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)[03:19:50 WARN]: at java.util.stream.AbstractPipeline.evaluate(Unknown Source)[03:19:50 WARN]: at java.util.stream.ReferencePipeline.forEach(Unknown Source)[03:19:50 WARN]: at org.ships.event.listener.CoreEventListener.onPlayerInteractWithBlock(CoreEventListener.java:95)[03:19:50 WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[03:19:50 WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)[03:19:50 WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)[03:19:50 WARN]: at java.lang.reflect.Method.invoke(Unknown Source)[03:19:50 WARN]: at org.ships.implementation.bukkit.event.BEventLaunch.run(BEventLaunch.java:25)[03:19:50 WARN]: at org.ships.implementation.bukkit.event.BukkitListener.lambda$call$1(BukkitListener.java:170)[03:19:50 WARN]: at java.lang.Iterable.forEach(Unknown Source)[03:19:50 WARN]: at org.ships.implementation.bukkit.event.BukkitListener.call(BukkitListener.java:170)[03:19:50 WARN]: at org.ships.implementation.bukkit.event.BukkitListener.onPlayerInteractWithBlockEvent(BukkitListener.java:127)[03:19:50 WARN]: at com.destroystokyo.paper.event.executor.StaticMethodHandleEventExecutor.execute(StaticMethodHandleEventExecutor.java:38)[03:19:50 WARN]: at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)[03:19:50 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)[03:19:50 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:545)[03:19:50 WARN]: at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:445)[03:19:50 WARN]: at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:412)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.PlayerInteractManager.a(PlayerInteractManager.java:136)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1307)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.PacketPlayInBlockDig.a(SourceFile:40)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.PacketPlayInBlockDig.a(SourceFile:10)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.aX(MinecraftServer.java:1012)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:1005)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1134)[03:19:50 WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:918)[03:19:50 WARN]: at java.lang.Thread.run(Unknown Source)
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to kain_mercer:
Thanks for the error. Ill patch it out as soon as I can. If you wish to still use ships in the mean time you can use the newer block finder (the old one is giving the bug). You can swap the finder using the /ships config set config command