/
area/
classes/net/sourceforge/pain/logic/
classes/net/sourceforge/pain/logic/event/
classes/net/sourceforge/pain/logic/fn/util/
classes/net/sourceforge/pain/network/console/
classes/net/sourceforge/pain/plugin/
classes/net/sourceforge/pain/plugin/reset/
classes/net/sourceforge/pain/plugin/shutdown/
classes/net/sourceforge/pain/plugin/social/
classest/net/sourceforge/pain/db/data/
doc/
doc/paindb/resources/
src/net/sourceforge/pain/logic/
src/net/sourceforge/pain/logic/event/
src/net/sourceforge/pain/logic/fn/util/
src/net/sourceforge/pain/network/console/
src/net/sourceforge/pain/network/console/telnet/
src/net/sourceforge/pain/plugin/
src/net/sourceforge/pain/plugin/command/
src/net/sourceforge/pain/plugin/reset/
src/net/sourceforge/pain/plugin/shutdown/
src/net/sourceforge/pain/plugin/social/
src/net/sourceforge/pain/util/
tests/
tests/net/sourceforge/pain/db/data/
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);
	}

}