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 25, 2019In reply to Mosemister:
Excellent, thanks for info.
Should I just leave the newer block finder enabled permanently?
Any pros/cons between the two?
I really appreciate the work you've put into this plugin. My server loves it.
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to kain_mercer:
There is a pro con list between the two.
Pros for the old one:
Its faster. Much faster
Pros for the new one:
It can detect a unlimited amount of blocks as it doesnt attempt to detect everything at once.
The cons are the vice versa. Such as the new one is much slower
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to Mosemister:
Could you tell me the exact command?
I'm assuming it's something like "/ships config set ships 6"
the syntax is slightly confusing for me, sorry!
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to kain_mercer:
I dont have a computer infront of me so i can not give the exact however the suggestions (shown on the players screen or by hitting tab on the console) will show the suggestions.
/Ships config set config Advanced.Block.Finder block_finder_ships_six
The part i am unsure about is the last two arguments, the Advanced.Block.Finder is the key argument, i am 90% sure its that (100% something like that) and the next argument is the value, there should be 2 options in the suggedtions, one ending in ships six and the other ending in ships five
-
View User Profile
-
Send Message
Posted Aug 25, 2019In reply to Mosemister:
Okay, I should be able to work it out from there. Thanks again!
EDIT here is the exact command for anyone reading :)
/ships config set config Advanced.Block.Finder ships:blockfinder_ships_five (or six)
-
View User Profile
-
Send Message
Posted Aug 26, 2019In reply to kain_mercer:
So I have just fixed the error in my dev build of Ships. I got it wrong, the issue comes from a complete different part of Ships. The issue stems from the progress bar not being shown. While progressbar is disabled in your config, there are some parts of the code that didnt get the message that it is and attempts to update a progress bar that isnt there.
The quick fix would be to enable the progress bar (minecraft calls it a bossbar so thats what it is called in the config)
-
View User Profile
-
Send Message
Posted Aug 22, 2019Just uploaded Ships 6.0.0.0 R2 Alpha 2.3, ready to download.
-
View User Profile
-
Send Message
Posted Aug 23, 2019In reply to Mosemister:
Ok, I am trying the new version. I will let you know if there are any problems.
Currently only found that the new version of the plugin almost does not match the old file, I will confirm the other issues.
Yesterday I went to see you live live show, modify the plugin configuration
Although I don't understand (the dense programming language), I also watched nearly 2 hours.
See that you have modified each object and grammar repeatedly
I only feel that you are really good at programming.
In the future, the program you design will definitely create great achievements for you.
Thank you very much for everything you paid for the plugin.
I like this plugin and prefer your work attitude.
-
View User Profile
-
Send Message
Posted Aug 23, 2019In reply to kevinhsneh:
Thanks for watching. Sorry you didnt understand the code but nice to know i kept you entertained.
Grammar is not my forte, so you may see it get corrected every so often. On the live show I was mainly modifing the new command system that would make it a lot more simple for me to add command, it would also gain access to more peemissions with the commands.
As for the current version almost not matching the old file. I have done a lot of work on the new movement and block tracking algorithms that has greatly improved stability.
I am aware of a few issues with them though and plan to mitigate the issues as soon as possible. Current issues I know about that are new to 2.3 are the following:
The new fast loader may crash ships due to async activity
EOT ignores if the ship has done moving and attempts to move the ship even before it is done resulting in a ship you can not stop.
I am also aware that the new tracking algorithm takes a while to track, i have some ideas for optimizations but it means rewriting a small part of Ships, so stay tuned.
-
View User Profile
-
Send Message
Posted Aug 24, 2019In reply to Mosemister:
HI Thank you for your explanation, I am happy to see your live live design program.
Although you know that there are some problems at present, based on the reasons for making you more aware of the problem, I still need to report to you the results of my test of the new version.
I started the server and found that after the new version did not match the old one, I immediately used the clean Ships-b 6.0.0.0 R2 Alpha 2.3.1 new version plugin to generate the file.
And copy my old BlockList.yml back to replace the original file.
After the first successful start of the server, I entered the minecraft game.
Then I created each new SIGN for an aircraft, including ([Move], [Altitude], [Wheel]).
Finally create the [Ships] type as opship and use the right mouse button to click and sneak click to register.
Leave the game without doing anything.
I once again started the server and the following error log appeared:
------------------------------------
下午 07:29:52 [Thread-11/WARN]: Exception in thread "Thread-11"下午 07:29:52 [Thread-11/WARN]: Exception in thread "Thread-11"下午 07:29:52 [Thread-11/WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=757, y=71, z=-62},type=OAK_WALL_SIGN,data=Block{minecraft:oak_wall_sign}[facing=south,waterlogged=false],fluid=net.minecraft.server.v1_14_R1.FluidTypeEmpty@50d13246}下午 07:29:52 [Thread-11/WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:444)下午 07:29:52 [Thread-11/WARN]: at org.bukkit.craftbukkit.v1_14_R1.block.CraftBlockEntityState.<init>(CraftBlockEntityState.java:28)
--------------------------------------------------------------
I tried to solve it over and over again, testing it many times, without breaking away from such a result.
Does this mean that the plugin does not detect the sign, and the ships file contains the registration file?
Maybe this is not a big problem, I can still enter the game and then move the plane, but clicking [Altitude] does not work, so I think the new version of this problem will cause the plugin to fail to run smoothly, I hope and expect you Subsequent optimization.
-
View User Profile
-
Send Message
Posted Aug 24, 2019In reply to kevinhsneh:
So the issue you arr refering to is the async quick loading. I have fixed it on my internal server and will be releasing it soon.
Basically whats happening is minecraft itself doesnt like it when you interact with the world on a separate thread. Due to the fact that loading the structure of the ship i thought won't interact with the world as its loading 3dVectors (XYZ) i put the code for loading the structure on a separate thread. However the issue is that if the structure loaded has any slight hickup and ships quickly attempts to fix the issue, one of the issues is it not knowing where the licence sign is compared to the structure, so it checks where the sign is out of the structure to resync it, this being a interaction with the world.
The fix I have done is taken them off the second thread and back on the main thread, loads slower but way more reliable
-
View User Profile
-
Send Message
Posted Aug 21, 2019hi I have a few questions that need to be reported to you.
First, the submarine's [altitude] sign is clicked, and I found that the submarine will continue to fly into the air (in fact, the best stopping point is that the bottom material is in contact with water)
Clicking on the [Altitude] sign will almost leave air in the sea or deform the sea.
Perhaps the material contains half bricks, and I will continue to test to determine the cause.
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to kevinhsneh:
Thanks for the report. Ill be able to test it soon and see what I can do
-
View User Profile
-
Send Message
Posted Aug 23, 2019In reply to kevinhsneh:
The submarine altitude issue is fixed in Alpha 2.2. It should also have fixed the deformation of the sea
-
View User Profile
-
Send Message
Posted Aug 21, 2019I've been using this plugin, really love it, everyone really does enjoy it. I do wish there was more Cannons and ChairsReloaded Compatibility. (Perhaps making a newer version of the ShipsDamage plugin)
However , whenever a ship makes a movement, especially large ships, 4k blocks +, it takes a heavy toll on the TPS and it dips quite a lot, however bounces back soon after the movement is complete.
Is there anyway to help with this issue or any plans to work on it at all?
Edit: Whenever a Water Ship makes a movement* (Idk if its different for air ships since there's no blocks interacting with water.)
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to bradyykennyy:
As for more compatibility. As you may have seen im still working towards a stable build of Ships 6.0.0.0 however after that I plan to update all the first party addons to Ships with some exceptions (some of the plugins ships added onto didnt make the jump to 1.13+).
As for the tps drop, there is, as long as your using Ships 6. The short answer is to change the values in the config for Movement Algorithm and Block Detection from Ships 5 to Ships 6. You can do this using the /ships config command.
The long answer is, the tps is dropping due to the amount of steps required to be done in a single tick of the server. The ship needs to be detected, updated structure and then moved all in a single tick. Minecraft hates when you attempt to do what any other game does which is to use more Threads (a thread is a section of code that is ran, and depending on the processor your server is running on, can mean that multiple sections of code can be ran at once). The Ships 6 block detection and movement algorithm do all the same steps, however do it over multiple ticks, giving the server time to breathe. This does mean that the moving of the ship is slower but it reduces the lag so much that in my testing I didnt have any tps drop.
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to Mosemister:
Thank you for responding so quickly.
(have been using the latest version)
In game:
/ships config set config Advanced.Block.Finder ships:blockfinder_ships_six
When entered it didn't have a response but I assumed it still changed, is there somthing about the movement algorithm specifically in the config, or the Block Detection value in the config file that I have to change? Like from the Detection default value: 4000 (I think)
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to bradyykennyy:
The config command will change the config value without needing to go into the config itself. So it should be in effect, you can test using the /ships config view config command.
Based on what you have said so far. It seems you havent changed the movement algorithm (the movement algorithm makes the largest change to tps).
As for the tracking limit (default value being 4000) this is the limit that the block finder algorithm will give up trying to find more blocks. With Ships 5 block finder it can be used lower tps by lowering the value, with the ships 6 block finder it is used to speed up the movement of ships by lowering
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to Mosemister:
I don't know what to do anymore cause it seems I should be using Ships 6 since its the latest but I want to fix tps.
(like where is the movement algorithm)
-
View User Profile
-
Send Message
Posted Aug 21, 2019In reply to bradyykennyy:
If you are able to change the block finder then you are able to change the movement algorithm, type the following command in exactly to change the movement algorithm.
ships config set config Advanced.Block.Movement ships:movement_ships_six