use of com.eintosti.buildsystem.object.world.Builder in project BuildSystem by Trichtern.
the class BuilderInventory method addItems.
private void addItems(BuildWorld buildWorld, Player player) {
List<Builder> builders = buildWorld.getBuilders();
this.numBuilders = builders.size();
int numInventories = (numBuilders % MAX_BUILDERS == 0 ? numBuilders : numBuilders + 1) != 0 ? (numBuilders % MAX_BUILDERS == 0 ? numBuilders : numBuilders + 1) : 1;
int index = 0;
Inventory inventory = createInventory(buildWorld, player);
inventories = new Inventory[numInventories];
inventories[index] = inventory;
int columnSkull = 9, maxColumnSkull = 17;
for (Builder builder : builders) {
String builderName = builder.getName();
inventoryManager.addSkull(inventory, columnSkull++, plugin.getString("worldeditor_builders_builder_item").replace("%builder%", builderName), builderName, plugin.getStringList("worldeditor_builders_builder_lore"));
if (columnSkull > maxColumnSkull) {
columnSkull = 9;
inventory = createInventory(buildWorld, player);
inventories[++index] = inventory;
}
}
}
use of com.eintosti.buildsystem.object.world.Builder in project BuildSystem by einTosti.
the class WorldsCommand method getAddBuilderInput.
public void getAddBuilderInput(Player player, boolean closeInventory) {
BuildWorld buildWorld = playerManager.getSelectedWorld().get(player.getUniqueId());
if (buildWorld == null) {
player.closeInventory();
player.sendMessage(plugin.getString("worlds_addbuilder_error"));
return;
}
new PlayerChatInput(plugin, player, "enter_player_name", input -> {
String builderName = input.trim();
Player builderPlayer = Bukkit.getPlayer(builderName);
Builder builder;
UUID builderId;
if (builderPlayer == null) {
builderId = UUIDFetcher.getUUID(builderName);
if (builderId == null) {
player.sendMessage(plugin.getString("worlds_addbuilder_player_not_found"));
player.closeInventory();
return;
}
builder = new Builder(builderId, builderName);
} else {
builder = new Builder(builderPlayer);
builderId = builderPlayer.getUniqueId();
}
if (buildWorld.getCreatorId() != null && buildWorld.getCreatorId().equals(builderId)) {
player.sendMessage(plugin.getString("worlds_addbuilder_already_creator"));
player.closeInventory();
return;
}
if (buildWorld.isBuilder(builderId)) {
player.sendMessage(plugin.getString("worlds_addbuilder_already_added"));
player.closeInventory();
return;
}
buildWorld.addBuilder(builder);
XSound.ENTITY_PLAYER_LEVELUP.play(player);
player.sendMessage(plugin.getString("worlds_addbuilder_added").replace("%builder%", builderName));
if (closeInventory) {
player.closeInventory();
} else {
player.openInventory(plugin.getBuilderInventory().getInventory(buildWorld, player));
}
});
}
use of com.eintosti.buildsystem.object.world.Builder in project BuildSystem by einTosti.
the class WorldManager method parseBuilders.
private List<Builder> parseBuilders(FileConfiguration configuration, String worldName) {
List<Builder> builders = new ArrayList<>();
if (configuration.isString("worlds." + worldName + ".builders")) {
String buildersString = configuration.getString("worlds." + worldName + ".builders");
if (buildersString != null && !buildersString.isEmpty()) {
String[] splitBuilders = buildersString.split(";");
for (String builder : splitBuilders) {
String[] information = builder.split(",");
builders.add(new Builder(UUID.fromString(information[0]), information[1]));
}
}
}
return builders;
}
use of com.eintosti.buildsystem.object.world.Builder in project BuildSystem by Trichtern.
the class WorldsCommand method getAddBuilderInput.
public void getAddBuilderInput(Player player, boolean closeInventory) {
BuildWorld buildWorld = playerManager.getSelectedWorld().get(player.getUniqueId());
if (buildWorld == null) {
player.closeInventory();
player.sendMessage(plugin.getString("worlds_addbuilder_error"));
return;
}
new PlayerChatInput(plugin, player, "enter_player_name", input -> {
String builderName = input.trim();
Player builderPlayer = Bukkit.getPlayerExact(builderName);
Builder builder;
UUID builderId;
if (builderPlayer == null) {
builderId = UUIDFetcher.getUUID(builderName);
if (builderId == null) {
player.sendMessage(plugin.getString("worlds_addbuilder_player_not_found"));
player.closeInventory();
return;
}
builder = new Builder(builderId, builderName);
} else {
builder = new Builder(builderPlayer);
builderId = builderPlayer.getUniqueId();
}
if (builderId.equals(player.getUniqueId()) && buildWorld.isCreator(player)) {
player.sendMessage(plugin.getString("worlds_addbuilder_already_creator"));
player.closeInventory();
return;
}
if (buildWorld.isBuilder(builderId)) {
player.sendMessage(plugin.getString("worlds_addbuilder_already_added"));
player.closeInventory();
return;
}
buildWorld.addBuilder(builder);
XSound.ENTITY_PLAYER_LEVELUP.play(player);
player.sendMessage(plugin.getString("worlds_addbuilder_added").replace("%builder%", builderName));
if (closeInventory) {
player.closeInventory();
} else {
player.openInventory(plugin.getBuilderInventory().getInventory(buildWorld, player));
}
});
}
use of com.eintosti.buildsystem.object.world.Builder in project BuildSystem by Trichtern.
the class WorldManager method loadWorld.
public BuildWorld loadWorld(String worldName) {
FileConfiguration configuration = worldConfig.getFile();
if (configuration == null) {
return null;
}
String creator = configuration.isString("worlds." + worldName + ".creator") ? configuration.getString("worlds." + worldName + ".creator") : "-";
UUID creatorId = parseCreatorId(configuration, worldName, creator);
WorldType worldType = configuration.isString("worlds." + worldName + ".type") ? WorldType.valueOf(configuration.getString("worlds." + worldName + ".type")) : WorldType.UNKNOWN;
boolean privateWorld = configuration.isBoolean("worlds." + worldName + ".private") && configuration.getBoolean("worlds." + worldName + ".private");
XMaterial material = parseMaterial(configuration, worldName);
WorldStatus worldStatus = WorldStatus.valueOf(configuration.getString("worlds." + worldName + ".status"));
String project = configuration.getString("worlds." + worldName + ".project");
String permission = configuration.getString("worlds." + worldName + ".permission");
long date = configuration.isLong("worlds." + worldName + ".date") ? configuration.getLong("worlds." + worldName + ".date") : -1;
boolean physics = configuration.getBoolean("worlds." + worldName + ".physics");
boolean explosions = !configuration.isBoolean("worlds." + worldName + ".explosions") || configuration.getBoolean("worlds." + worldName + ".explosions");
boolean mobAI = !configuration.isBoolean("worlds." + worldName + ".mobai") || configuration.getBoolean("worlds." + worldName + ".mobai");
String customSpawn = configuration.getString("worlds." + worldName + ".spawn");
boolean blockBreaking = !configuration.isBoolean("worlds." + worldName + ".block-breaking") || configuration.getBoolean("worlds." + worldName + ".block-breaking");
boolean blockPlacement = !configuration.isBoolean("worlds." + worldName + ".block-placement") || configuration.getBoolean("worlds." + worldName + ".block-placement");
boolean blockInteractions = !configuration.isBoolean("worlds." + worldName + ".block-interactions") || configuration.getBoolean("worlds." + worldName + ".block-interactions");
boolean buildersEnabled = configuration.isBoolean("worlds." + worldName + ".builders-enabled") && configuration.getBoolean("worlds." + worldName + ".builders-enabled");
Difficulty difficulty = Difficulty.valueOf(configuration.getString("worlds." + worldName + ".difficulty", "PEACEFUL").toUpperCase());
List<Builder> builders = parseBuilders(configuration, worldName);
String chunkGeneratorString = configuration.getString("worlds." + worldName + ".chunk-generator");
ChunkGenerator chunkGenerator = parseChunkGenerator(configuration, worldName);
BuildWorld buildWorld = new BuildWorld(plugin, worldName, creator, creatorId, worldType, privateWorld, material, worldStatus, project, permission, date, physics, explosions, mobAI, customSpawn, blockBreaking, blockPlacement, blockInteractions, buildersEnabled, difficulty, builders, chunkGenerator, chunkGeneratorString);
buildWorlds.add(buildWorld);
return buildWorld;
}
Aggregations