builder.red("pickup").red("break").red("default").red("rename").red("speedlimit").red("setcollide").red("slowdown");
return builder.red("pushplayers").red("pushmobs").red("pushmisc").setSeparator(null).red("]");
}
public static void info(Player p, TrainProperties prop) {
MessageBuilder message = new MessageBuilder();
if (!prop.isOwner(p)) {
if (!prop.hasOwners()) {
message.newLine().yellow("Note: This train is not owned, claim it using /train claim!");
}
}
message.newLine().yellow("Train name: ").white(prop.getTrainName());
message.newLine().yellow("Keep nearby chunks loaded: ").white(prop.isKeepingChunksLoaded());
message.newLine().yellow("Slow down over time: ").white(prop.isSlowingDown());
message.newLine().yellow("Can collide: ").white(prop.getColliding());
// Collision states
message.newLine().yellow("When colliding this train ");
message.red(prop.mobCollision.getOperationName()).yellow(" mobs, ");
message.red(prop.playerCollision.getOperationName()).yellow(" players, ");
message.red(prop.miscCollision.getOperationName()).yellow(" misc entities and ");
message.red(prop.trainCollision.getOperationName()).yellow(" other trains");
message.newLine().yellow("Maximum speed: ").white(prop.getSpeedLimit(), " blocks/tick");
// Remaining common info
Commands.info(message, prop);
// Loaded message
if (prop.getHolder() == null) {
message.newLine().red("This train is unloaded! To keep it loaded, use:");
message.newLine().yellow(" /train keepchunksloaded true");
}
// Send
message.send(p);
}