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 Feb 5, 2021In reply to timmety_debetz:
When you made the changes to the materials list. Did you turn off the server and then make the changes and then turn it back on?
-
View User Profile
-
Send Message
Posted Feb 5, 2021In reply to mosemister:
yes i restarted the server twice, and blocks that used to work now also are detect collide
-
View User Profile
-
Send Message
Posted Feb 5, 2021In reply to timmety_debetz:
That sounds like the file became unreadable (just a spelling mistake, tab, etc can do this), so Ships will use the default in code version of the materials list which is simply everything is detect_collide. While it doesnt change the file while reading, when the server turns off or you reload ships it will save all the blocks to what ships believes them to be.
Sorry for the inconvenience
-
View User Profile
-
Send Message
Posted Feb 5, 2021In reply to mosemister:
fuck, imma read through the whole file again, see if i can find it, totally my mistake as always XD
thx again lad
-
View User Profile
-
Send Message
Posted Jan 28, 2021I was using your ships plugin but I logged off while i was using it now im stuck floating/flying and use the ship as it says processing requirements. If you know of any ways to fix this that would be much appreciated
-
View User Profile
-
Send Message
Posted Jan 28, 2021In reply to soapy_sappy:
The stuck in the air issue is known as no gravity, there are three fixes for it. The first is if you have ships legacy commands disabled (requires a plugin reload) then you can use the command
/Ships fix nogravity
The next one is to simply move another ship with you on it
The last is to delete your playerdata
As for the issue with the ship. What shiptype is it?
-
View User Profile
-
Send Message
Posted Jan 21, 2021New update inbound.
The long awaited fix for the plane and submarine are coming in the next update but also a fundamental change to the way that UnknownEntitySnapshot works in Core for Bukkit.
This change will mostly fix entities loosing/resetting data when moved on ships.
Time for the technical stuff for those who want to know.
How snapshot data works in ShipsCore is it uses a forking idea. Essentially if the data is for a real (Live) or fake (Snapshot), ShipsCore doesn't care, instead all the data comes in as a general interface. Here is a example.
Both ZombieSnapshot and LiveZombie extend Zombie. Zombie holds all the functions to get data specific to Zombie. Zombie then extends Entity which also has a Live and Snapshot varient. This means you can generalize data between snapshot and live across the whole plugin which is great .... Until you need to implement them as you need to essentially do everything twice. One for live and one for snapshot as data is stored in different ways between the two.
Because UnknownEntity is well ... Unknown, it cannot assume that the entity attached to it has any extra data then the generic Entity data which resulted in more specific data towards that entity (such as varient, age, etc) being lost/reset.
This new way that UnknownEntity works is it assumes that it is every single known type of entity (its the combo of cow, creeper, zombie, ender dragon, etc) and attempts to store the data of it in a snapshot. This doesnt fix that the entitysnapshot is still generic (so plugins that listen directly at ShipsCore in generic platform mode cannot work out any traits of the entity) but it should prevent data loss to all known entity types. This of course doesn't work if a new entity type is added in a future version of minecraft or more data is exposed to the Bukkit API.
Once again, this comes down the Bukkit API being limited as the Sponge version has been able to store all data in unknown since the beginning and will store all data on unknown Minecraft version as well as compatibile sponge versions as Sponge has its own EntitySnapshot. For me personally I would love to just be able to grab the NBT data of the entity and store it into another on Bukkit but you cannot do that unless you go into NMS which defeats the point of Bukkit to begin with
-
View User Profile
-
Send Message
Posted Jan 1, 2021This appears in console, any suggestions please? (new at this btw):
[17:14:43 WARN]: Path: Block.Fuel.Slot
[17:14:43 WARN]: Value: (java.lang.Boolean) 'false'
[17:14:43 WARN]: java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class java.lang.Enum (java.lang.Boolean and java.lang.Enum are in module java.base of loader 'bootstrap')
[17:14:43 WARN]: at org.core.config.parser.parsers.StringToEnumParser.unparse(StringToEnumParser.java:12)
[17:14:43 WARN]: at org.core.config.ConfigurationStream.set(ConfigurationStream.java:67)
[17:14:43 WARN]: at org.core.config.ConfigurationStream.set(ConfigurationStream.java:80)
[17:14:43 WARN]: at org.ships.vessel.common.loader.shipsvessel.ShipsFileLoader.setSingleInFile(ShipsFileLoader.java:289)
[17:14:43 WARN]: at org.ships.vessel.common.loader.shipsvessel.ShipsFileLoader.lambda$save$4(ShipsFileLoader.java:134)
[17:14:43 WARN]: at java.base/java.util.HashMap.forEach(HashMap.java:1336)
[17:14:43 WARN]: at org.ships.vessel.common.loader.shipsvessel.ShipsFileLoader.save(ShipsFileLoader.java:132)
[17:14:43 WARN]: at org.ships.vessel.common.types.typical.AbstractShipsVessel.save(AbstractShipsVessel.java:129)
[17:14:43 WARN]: at org.ships.event.listener.CoreEventListener.lambda$onPlayerLeaveEvent$7(CoreEventListener.java:142)
[17:14:43 WARN]: at org.ships.vessel.common.types.Vessel.lambda$getEntitiesOvertime$7(Vessel.java:136)
[17:14:43 WARN]: at org.ships.implementation.bukkit.scheduler.BScheduler$RunAfterScheduler.run(BScheduler.java:15)
[17:14:43 WARN]: at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:99)
[17:14:43 WARN]: at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468)
[17:14:43 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1294)
[17:14:43 WARN]: at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:377)
[17:14:43 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1209)
[17:14:43 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:997)
[17:14:43 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:178)
[17:14:43 WARN]: at java.base/java.lang.Thread.run(Thread.java:834)
-
View User Profile
-
Send Message
Posted Jan 1, 2021In reply to kurodclxvi:
Hi. So when reporting crashes its best to put it in a site such as pastebin and then copy the link over as they keep the formatting making it easier to read.
As for whats going wrong, whats the shiptype?
-
View User Profile
-
Send Message
Posted Dec 31, 2020Hi
After installing the plugin and tried to use it my avatar has become hard to navigate up and down. I can not land and walk. If I try to change gamemode to survival I get kicked out because flying is not permitted on the server. Anyone who has experienced this?
-
View User Profile
-
Send Message
Posted Dec 31, 2020In reply to nordassteinsvik:
Its sadly a common issue. Ive been attempting to find out why its happening.
There are three ways to fix it.
1) fly on a ship again, it should correct itself
2) use the command to fix it (/ships fix nogravity)
3) delete your player data
Could you state the sign that you used to get into that state?
-
View User Profile
-
Send Message
Posted Dec 31, 2020In reply to mosemister:
I believe I used the "wheel" to turn the airship (its been a while now). Didn't get it to work properly so I abandoned the hole thing and then the problem started.
I will try what you are suggesting.
Suggesting 2 didn't fix it, replayed ships <arg>
-
View User Profile
-
Send Message
Posted Dec 31, 2020In reply to nordassteinsvik:
Oh you need to enable the new commands. Still in the process of adding it to the old commands.
In the config you will see LegayCommands, change that to false to enable the new commands.
-
View User Profile
-
Send Message
Posted Dec 25, 2020Just a quick question, I am using a Server and whenever I try to access the configs folder, I can't find the config file for the plugin. Am I just stupid or is there another location I should check?
-
View User Profile
-
Send Message
Posted Dec 26, 2020In reply to aye_caramba1234:
The config file for Ships is located in the following.
/plugins/Ships/Configuration/config.yml
If it is not appearing then make sure the plugin is actually loading by using the command "/pl" if Ships is shown up in red or not showing up at all, then something is going wrong.
-
View User Profile
-
Send Message
Posted Dec 25, 2020Typically I give a update as a xmas present and while 9.3/9.4 has come out close to xmas, it wasnt planned as the xmas gift.
Though out this year, I have been getting requests for documentation, mostly for Ships 6 itself, but some on how to program for or in Ships. While documentation for Ships in general is coming, I have started on ShipsBuildTools which would allow you to easily setup a environment to program on or with Ships. This would also allow those who want to get the updates before they are approved.
Release will be coming along
-
View User Profile
-
Send Message
Posted Dec 20, 2020Hello,
I'm having an issue on my server where when I create a plane/watership with at least the required special blocks and in the right medium, when I place the license sign a "Complete" bar appears at the top of the screen. I believe this means that the ship isn't finished, even though I'm pretty sure I got the requirements correctly.
It's possible I messed up the fuel, what's the right way to do it for a plane? I've also made sure that my blocks are connected and the other signs respond, so I don't think that's an issue
-
View User Profile
-
Send Message
Posted Dec 20, 2020In reply to kaya_reis:
Im assuming the issue here is that the "complete" bar stays?
The complete bar doesn't actually have anything to do with the requirements, but instead the tracking of the ship. Tracking a ship takes a long time so there is a bar to show percentage on how much it has done.
If the bar remains at the top of the screen, it typically means that a crash has occured right at the end, so please check your console log for any crashes and report them here.
Otherwise, as long as the licence sign is coloured (which should happen at the same point as the bar saying complete) then it is safe to attempt to move the ship.
Hope that helps
-
View User Profile
-
Send Message
Posted Dec 21, 2020In reply to mosemister:
You'd be right about the "complete" bar staying. I probably should've been more clear but the reason I noticed that there was a problem was because the license sign was not colored, but the other signs were. I didn't notice any logs from crashes or anything like that though.
I'm under the impression that I've done everything right, but it's possible that I missed some important information that was discussed somewhere else.
Very sorry if the problem is sounding vague, I guess I'm just asking for what are the exact requirements for a plane in case I'm missing something?
By the way thank you very much for the quick response, it's really encouraging to see dedication from a dev like this. Keep up the good work!
-
View User Profile
-
Send Message
Posted Dec 21, 2020In reply to kaya_reis:
As mentioned before, the complete bar has nothing to do with requirements. You can actually create a licence sign with no requirements met without any issues.
Just looking at the code between the bar saying complete and the bar being removed are the following stages in order
- the Vessel is actually created
- the found structure is set onto the new vessel
- your set as owner of the vessel
- a event is fired (pre create)
- vessel is saved
- vessel is registered
- another event is fired (post create)
This means unless you have a addon for Ships or a Bukkit implementation that needs updating (spigot, paper, glowstone, etc) then it will be crashing somewhere. After the bar disappears the colouring takes effect.
As for quick response. I always try to respond within 24 hours (however its typically much quicker then that). Your last message was actually long for me and so is this one. My last one I was sleeping and this one im on my break from work. Hope the next one is quicker ;)