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
In reply to Mosemister:
Exciting, looking forward to seeing what comes next.
In reply to Forge_User_50238638:
Ships -b 6.0.0.0 alpha 2.7 has now been uploaded, awaiting approval
Edit:
Approved
Due to technical issues, i wont be livestreaming today
Ships 2.6 is now out
Quick questions about 5.0.1.14 on a 1.12.2 CraftBukkit server. Sorry I have running list of things that I'm been dealing with. Thank you for keeping this project going for all these years, I've been using Ships since the version 2.0 days.
Each time I restart my server my ship signs have to be replaced... ideas? I can just recreate the ship sign and it works again.
The EOT sign is something I like to use... but I can't seem to get the speed setting where I would lke it.... I used to move 20 blocks per jump... now even after editing the configs ( vessel and main main config ) I can only get 2 blocks of movement. How can I adjust the speed?
Currently when I try to move a airship with the engine sign I get a message that the ship must be in the air..... all my ships are saying this... but of course are in the air.
One more ( sorry )
I've always wanted to make a submarine.. I can get the ship to create but nothing else seems to respond... I've made a sub hull underwater and also half in the water... still can't get it to work.
Thank you for all your work on this plugin... I really appreciate any guidance you can provide.
In reply to kiptacula:
Hi. Sorry for the late reply, didnt get the notification.
Those are all interesting issue that I can not find in my common issues with Ships 5.0.1.14.
I personally stopped testing Ships 5.0.1.14 soon after it came out to focus on Ships 5.1 and then ships 6.0.0.0 as MC 1.13 was going to be in demand. So the later versions of bukkit may have broke compatibility as it got closer to 1.13 code.
Ill retest it soon with the latest 1.12 build of bukkit to see if I can replicate the issues.
I also want to get as much information as possible just so i know what im looking for and to recreate the situation as best as possible.
When you restart your server and all the signs need to be replaced. Before you replace the signs what happens if you click a move sign? Does a message appear to the player? Does an error occur on the console?
When you are attempting to modify the eot speed and you say you modify the vessel. Is that the vessel type file or the vessel data?
Thanks for your patience and wow you have been with the project longer then I have (I came into the scene at the end of 2.1 lifecycle).
In reply to kiptacula:
After testing Ships 5.0.1.14 on the latest 1.12.2, I can not replicate the issue where you stated that you are needing to recreate the license signs.
As for changing the EOT speed, while some ships versions do support this, Ships 5.X was not one of them, so sadly it is not supported.
I am also failing to recreate the issue where Ships states that it needs to be in air. Just note that the checking for air is the regular air block, there are two other air block types that are not supported, VOID_AIR (can only spawn above the default build limit or under bedrock level) and CAVE_AIR (can only spawn naturally in cave structures), check that this is not on the ship instead of regular air.
As for submarines, they are working fine for me.
The only things i can suggest is to redownload ships 5.0.1.14 (some people have stated that has helped in one way or another even if there current version is 5.0.1.14). The other thing I can suggest is to remove the Ships files, there maybe some corrupt file that just need to be recreated.
Ships 6.0.0.0 alpha 2.6 update
As stated in the comment linked below. The next update is mainly focusing on the internal code shaping for the newer features of bukkit api.
In the mood of editing things I sort of fell in a hole and ... Well .... Ships on the inside has changed a lot, all in the name of "future proofing"
So there is a small community who develop plugins ontop of Ships, this community has liked Ships 6 to work on for a while however after adding a small feature such as the boss bar, it broke compatibility, it was a easy fix but it still broke there work. This would mean that every small feature I added that broke compatibility even slightly would bring annoyance to the community, so this update - while it breaks almost everything - fixes this issue.
I have also gone back to some older code within ships 6, in particular, EntitySnapshots and I have continued my work with it as well as fixing a lot of issues that were still present.
The reason I went back to EntitySnapshots is to provide better stability when handing entities on ships, EntitySnapshots are now used instead of handing the raw entity.
The last thing I have continued to work on is the new command code, adding in a few more commands to the new system. Not all commands have been added yet so the old command system is still in place but you can test it using the config.
Other noteworthy changes are all classes that add features that will be removed at full release (or before) such as the OPShip have been marked on the class file as deprecated. And the API docs for ships 6 will be updated soon after this post is ... Posted
https://dev.bukkit.org/projects/ships#c3507
Hello i am having a problem where its failing to find a burner on ship. but i have a nether rack burning plus a furnace with coal in. [Server thread/WARN]: Failed to know what to do: EventListener caused exception from org.ships.event.listener.CoreEventListener.onPlayerInteractWithBlock(AsPlayer arg0)
[23:41:13] [Server thread/WARN]: java.lang.NullPointerException
[23:41:13] [Server thread/WARN]: at org.ships.vessel.sign.AltitudeSign.onVesselMove(AltitudeSign.java:175)
[23:41:13] [Server thread/WARN]: at org.ships.vessel.sign.AltitudeSign.access$000(AltitudeSign.java:30)
[23:41:13] [Server thread/WARN]: at org.ships.vessel.sign.AltitudeSign$1.onStructureUpdate(AltitudeSign.java:92)
[23:41:13] [Server thread/WARN]: at org.ships.vessel.common.loader.ShipsOvertimeUpdateBlockLoader$OvertimeRunnable.onShipsStructureUpdated(ShipsOvertimeUpdateBlockLoader.java:41)
[23:41:13] [Server thread/WARN]: at org.ships.algorthum.blockfinder.Ships5BlockFinder.getConnectedBlocksOvertime(Ships5BlockFinder.java:70)
[23:41:13] [Server thread/WARN]: at org.ships.vessel.common.loader.ShipsOvertimeUpdateBlockLoader.loadOvertime(ShipsOvertimeUpdateBlockLoader.java:70)
[23:41:13] [Server thread/WARN]: at org.ships.vessel.sign.AltitudeSign.onSecondClick(AltitudeSign.java:123)
[23:41:13] [Server thread/WARN]: at org.ships.event.listener.CoreEventListener.lambda$onPlayerInteractWithBlock$6(CoreEventListener.java:96)
[23:41:13] [Server thread/WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.util.stream.ReferencePipeline.forEach(Unknown Source)
[23:41:13] [Server thread/WARN]: at org.ships.event.listener.CoreEventListener.onPlayerInteractWithBlock(CoreEventListener.java:95)
[23:41:13] [Server thread/WARN]: at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at org.ships.implementation.bukkit.event.BEventLaunch.run(BEventLaunch.java:25)
[23:41:13] [Server thread/WARN]: at org.ships.implementation.bukkit.event.BukkitListener.lambda$call$1(BukkitListener.java:170)
[23:41:13] [Server thread/WARN]: at java.lang.Iterable.forEach(Unknown Source)
[23:41:13] [Server thread/WARN]: at org.ships.implementation.bukkit.event.BukkitListener.call(BukkitListener.java:170)
[23:41:13] [Server thread/WARN]: at org.ships.implementation.bukkit.event.BukkitListener.onPlayerInteractWithBlockEvent(BukkitListener.java:127)
[23:41:13] [Server thread/WARN]: at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[23:41:13] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310)
[23:41:13] [Server thread/WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[23:41:13] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:528)
[23:41:13] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513)
[23:41:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:427)
[23:41:13] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:394)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.PlayerInteractManager.a(PlayerInteractManager.java:136)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1170)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.PacketPlayInBlockDig.a(SourceFile:40)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.PacketPlayInBlockDig.a(SourceFile:10)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:144)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:118)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.aX(MinecraftServer.java:867)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:860)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:844)
[23:41:13] [Server thread/WARN]: at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:784)
[23:41:13] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
[23:41:13] [Server thread/WARN]: Failed to know what to do: EventListener caused exception from org.ships.event.listener.
In reply to BigDaddyoofs:
The issue is that you are using ships 5.0.1.14 on a MC 1.13+ server. Ships 5.0.1.14 is designed for Mc 1.12.2 and does not work with backwards compatibility.
If you download Ships 6.0.0.0 from here, it will work. Here is a link to all Ships file, you can get this link by clicking the "File" tab near the top of the page.
https://dev.bukkit.org/projects/ships/files
Ships 2.6 update.
I recently found out that bukkit has added some more information with its events as well as adding new ones. So I have been updating core (the compatibility layer between ships and bukkit) to better suit this new information. This has added a new interface of BlockSnapshot, that is a BlockDetail with a Position. This has meant that some of the older parts of core have become slightly out of date, so I have been updating them. The issue is that the old BlockDetails are not thorwing a error or making themselves visible to me, so im having to go through manually and then check if the BlockDetail should be a BlockSnapshot in that situation.
What this relates to, and how i found the new information and events is that a new feature will come out that combined with disabling of the auto structure update would relate in a very fast structure detect that still gets updated. Essentially making ships move faster without loosing functionality.
Im yet to test this new feature so it may not fully make it out.
In other news ships alpha 2.6 will also fix a small issue that many players have experience with water logged blocks and moving them in ships. The stream will be stopped.
Thanks for being patient.
Is there a way to disable all the ships but normal seafaring ships?
In reply to grenademan:
This was a feature back in ships 4 however due to a lack of use it was never readded to either Ships 5 nor 6.
You can give the permission to create different ships, so you could only give the permission to create watership and Submarine.
In reply to Mosemister:
I dont use bukkit plugins and I recently upgraded from realms to using a hosting site. This is all fairly knew to me. What file would I edit to give permissions such as that persay and how would I write out the information?
Right now I made a work around and I edited the individual ship config files and made their speed: 0 and Altitude: 0 but that's it.
In reply to grenademan:
Ok. So you would use a permissions plugin that handles all permissions for players and you would give the players permission to use the water based ships.
However by default ships would say you dont have permission to do anything unless you have given permission level OP.
The permissions plugin i use is GroupManager however there are better ones out there, im just old school and know how to use it XD
Been testing the new 2.5 version, and so far no bugs :)
Would be nice to see if ship6 could be a bit faster tho, since it is very good on superlarge ships.
In reply to thetreethatgrows:
As mentioned before, I am working on optimising the Ships 6 tracker as I am aware it is painfully slow.
Love that this is still active, had tons of fun with this plugin back in the day.
In reply to Eliminator_V:
Im glad. I plan to keep it active for as long as I can.
I think I remember you, i regonise the username and image.
Hi!
Is there a way to change the altitude speed on the sign? Left-click and right-click seems to just change to either increase/decrease, but I cant change the speed.