package net.sourceforge.pain.logic.fn; import net.sourceforge.pain.*; import net.sourceforge.pain.network.console.*; import net.sourceforge.pain.util.*; import java.io.*; public final class LogoFn { private static final String VERSION_TOKEN = "$VERSION$"; public static void showLogo(Console console) { String currentLogo; if (logo == null) { try { loadLogo(); currentLogo = logo; } catch (IOException e) { Log.error(e.getMessage(), e); currentLogo = logo2; } } else { currentLogo = logo; } MessageOutFn.out(console, currentLogo); } private static void loadLogo() throws IOException { FileReader reader = new FileReader(Core.getApplicationPath() + "/etc/logo"); try { StringBuffer buf = new StringBuffer(); do { int c = reader.read(); if (c == -1) { break; } buf.append((char) c); } while (true); logo = insertVersionInfo(buf.toString()); } finally { reader.close(); } } public static String insertVersionInfo(String template) { int versionStart = template.indexOf(VERSION_TOKEN); int versionEnd = versionStart + VERSION_TOKEN.length(); return (template.substring(0, versionStart) + Core.VERSION + template.substring(versionEnd)); } private static String logo = null; private static String logo2 = " .. : \n" + " . . . . . \n" + " . . . .. . . * \n" + " * . .. . \n" + " . . . : . . . . \n" + " . . . . . . \n" + " . . *:. . . \n" + ". . . . .. . . \n" + " . . . . ... . . * \n" + " . . . . . . . . . \n" + " . . . ... .. . . . \n" + " . . . *. . . \n" + " . :. . . \n" + " . . . . \n" + " . . . . Original PAiN MUD Server by Michael Foursov \n" + " . .. :. . Based on maps from DIKU, MERC, ROM, ANATOLIA \n" + " . ... . . . \n" + " . :. . . *. PAiN $VERSION$ copyright (c) 2002 Michael Foursov (fmike)\n" + " . *. . \n" + " . . . . *. . \n" + " \n"; static { logo2 = insertVersionInfo(logo2); } }