package net.diamonddominion.esaych.survival; import java.io.File; import java.io.IOException; import java.util.ArrayList; import net.diamonddominion.esaych.CustomPlugin; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; public class WelcomeBook { private CustomPlugin plugin; public WelcomeBook(CustomPlugin plugin) { this.plugin = plugin; } ItemStack book = new ItemStack(Material.WRITTEN_BOOK); public void enable() { writeBook(); log("Enabled"); } public void writeBook() { BookMeta bm = (BookMeta)book.getItemMeta(); bm.setAuthor("DD Staff"); bm.setTitle("Diamond Dominion Server Guide"); ArrayList<String> pages = new ArrayList<String>(); pages.add(ChatColor.translateAlternateColorCodes('&', "Welcome to the\n&1&oDiamond Dominion!\n\n" + "&0Our rules can be seen by typing &2/rules\n" + "&0All issues should be brought up to &cAdmins&0, &aModerators&0, or &6VIMods\n\n" + "&0You can always return to spawn with &2/spawn" )); pages.add(ChatColor.translateAlternateColorCodes('&', "&1&lOur chat format:\n\n" + "&bFaction\n&3<World&a(Channel)&3>\n&e<&6Donor Prefix&e>\n&cRankColor&0+&8Name:\n&0Message\n\n" + "&0Message players:\n&2/msg [player] [msg]\n" + "&0Reply to messages:\n&2/r [msg]" )); pages.add(ChatColor.translateAlternateColorCodes('&', "&1&lUseful warps:\n\n" + "&2/warp &1shop\n" + "&2/warp &1info\n" + "&2/warp &1rules\n" + "&2/warp &1modapps\n" + "&2/warp &1portals\n" + "&2/warp &1contest\n" + "&2/warp &3<World>\n\n" + "&0Replace &3<World> &0with the name/abbreviation of the server worlds in next pages." )); pages.add(ChatColor.translateAlternateColorCodes('&', "&3<SV> &4&lSurvival&r&0:\n" + "Our Grief World. Claim and protect land using Factions, type /f help for faction help. Raiding, and tnt usage all allowed.\n\n" + "&3<N> &4&lNether&r&0\n" + "&3<E> &6&lEnd&r&0\n" + "Typical Nether and End linked to Survival." )); pages.add(ChatColor.translateAlternateColorCodes('&', "&3<GF> &1&lTownyWorld&r&0:\n" + "Griefing and Raiding is NOT allowed. PvP disabled, peaceful living. Use /towny for help.\n\n" + "&3<SB> &2&lSkyBlock&e&0:\n" + "SkyBlock world! Survive on floating islands. Build up your island rank." )); pages.add(ChatColor.translateAlternateColorCodes('&', "&3<B> &6&lBuild&r&0:\n" + "Creative plot world. Claiming help provided. Griefing not allowed. Specialty extensions for all designers.\n\n" + "Build world extensions:\n" + "&3<RS> &4&lRedstone&r&0\n" + "&3<PX> &1&lPixelArt&r&0\n" + "&3<RS> &2&lFreeBuild&r&0\n\n" + "&3<DS> &4&l&oDestruction&4&0" )); pages.add(ChatColor.translateAlternateColorCodes('&', "&3<EW> &1&lEventWorld&r&0:\n" + "Many games including MobArena, WalkInPvP, Hockey, Spleef, CTF, Trampoline, PaintBall, Parkour.\n\n" + "&3<SG> &4&lSurvivalGames&r&0:\n" + "Join games and fight to the death with others in the famous Survival Games, with great maps." )); pages.add(ChatColor.translateAlternateColorCodes('&', "&1&lUseful tips:&r&0\n" + " Playing for 24 hours will give you &bRespected\n" + "&0 Voting 60 times a month with &2/vote&0 can buy you a donor rank\n" + " Spawn and creative worlds provide beast sprint. &2/sprint&0 toggles\n" + " Smelting &4rotten flesh &0gives you leather\n" )); pages.add(ChatColor.translateAlternateColorCodes('&', " Mob spawners change mob like noteblocks change note" + " Plots in creative world link when claimed together\n" + " We have a secret potion shop\n" + " Build launch pads like the ones at warzone anywhere.\n" + " &4R&6a&2i&1n&5b&4o&6w &0armor is only for $20+ donors\n" )); bm.setPages(pages); book.setItemMeta(bm); } public void onKitStarterGiven(Player player) { File File = new File("plugins/Essentials/userdata/" + player.getName().toLowerCase() + ".yml"); FileConfiguration YMLFile = YamlConfiguration.loadConfiguration(File); if (YMLFile.getString("starterbook") == null) { player.getInventory().addItem(book); YMLFile.set("starterbook", true); try { YMLFile.save(File); } catch (IOException e) { e.printStackTrace(); } } } public void onCommandPreprocess(PlayerCommandPreprocessEvent event) { if ((event.getMessage().toLowerCase().startsWith("/kit starter"))) { onKitStarterGiven(event.getPlayer()); } } public void log(String info) { plugin.getLogger().info("<WelcomeBook> " + info); } }