From 90f8b90339134efe218a0dd2178017c8e904d992 Mon Sep 17 00:00:00 2001
From: Zoey76 <zoey_76@msn.com>
Date: Fri, 13 Jan 2012 21:39:51 +0000
Subject: [PATCH] BETA: Fix for [8597] and #L5884

---
 .../AdminEventEngine.java                     | 39 +++++++++++--------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java
index 6f0289357e..78cad8c108 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java
@@ -145,26 +145,22 @@ public class AdminEventEngine implements IAdminCommandHandler
 				file.delete();
 				showMainPage(activeChar);
 			}
-			
 			else if (actualCommand.startsWith("admin_event_name"))
 			{
 				// There is an exception here for not using the ST. We use spaces (ST delim) for the event name.
 				tempName += command.substring(17);
 				showNewEventPage(activeChar);
 			}
-			
 			else if (actualCommand.equalsIgnoreCase("admin_delete_buffer"))
 			{
 				tempBuffer = "";
 				showNewEventPage(activeChar);
 			}
-			
 			else if (actualCommand.startsWith("admin_event_store"))
 			{
-				
 				try
 				{
-					FileOutputStream file = new FileOutputStream(Config.DATAPACK_ROOT+"data/events/" + tempName);
+					FileOutputStream file = new FileOutputStream(new File(Config.DATAPACK_ROOT, "data/events/" + tempName));
 					PrintStream p = new PrintStream(file);
 					p.println(activeChar.getName());
 					p.println(tempBuffer);
@@ -263,7 +259,6 @@ public class AdminEventEngine implements IAdminCommandHandler
 				}
 				showEventControl(activeChar);
 			}
-			
 			else if (actualCommand.startsWith("admin_event_control_sit"))
 			{
 				while (st.hasMoreElements()) // Every next ST should be a team number
@@ -328,7 +323,6 @@ public class AdminEventEngine implements IAdminCommandHandler
 					player.sendPacket(info2);
 					player.broadcastPacket(new ExBrExtraUserInfo(player));
 				}
-				
 				showEventControl(activeChar);
 			}
 			else if (actualCommand.startsWith("admin_event_control_unpoly"))
@@ -365,7 +359,6 @@ public class AdminEventEngine implements IAdminCommandHandler
 					if (!TransformationManager.getInstance().transformPlayer(transId, player))
 						GmListTable.broadcastMessageToGMs("EventEngine: Unknow transformation id: " + transId);
 				}
-				
 				showEventControl(activeChar);
 			}
 			else if (actualCommand.startsWith("admin_event_control_untransform"))
@@ -419,7 +412,6 @@ public class AdminEventEngine implements IAdminCommandHandler
 			e.printStackTrace(); 
 			GmListTable.broadcastMessageToGMs("EventEngine: Error! Possible blank boxes while executing a command which requires a value in the box?"); 
 		}
-		
 		return true;
 	}
 	
@@ -429,19 +421,32 @@ public class AdminEventEngine implements IAdminCommandHandler
 		return ADMIN_COMMANDS;
 	}
 	
-	String showStoredEvents()
+	private String showStoredEvents()
 	{
-		File dir = new File(Config.DATAPACK_ROOT+"/data/events");
-		String[] files = dir.list();
+		final File dir = new File(Config.DATAPACK_ROOT, "/data/events");
+		if (dir.isFile())
+		{
+			return "<font color=\"FF0000\">The directory '"+ dir.getAbsolutePath() + "' is a file or is corrupted!<font><br>";
+		}
 		
-		if (files == null) {
-			return "<font color=\"FF0000\"> No 'data/events' directory! <font> <BR>" + 
-					"<font color=\"FF0000\"> UNABLE TO CREATE AN EVENT! Please create this folder. <font>";
+		String note = "";
+		if (!dir.exists())
+		{
+			note = "<font color=\"FF0000\">The directory '"+ dir.getAbsolutePath() + "' does not exist!<font><br><font color=\"0099FF\">Trying to create it now...<br><font><br>";
+			if (dir.mkdirs())
+			{
+				note += "<font color=\"006600\">The directory '"+ dir.getAbsolutePath() + "' has been created!<font><br>";
+			}
+			else
+			{
+				note += "<font color=\"FF0000\">The directory '"+ dir.getAbsolutePath() + "' hasn't been created!<font><br>";
+				return note;
+			}
 		}
 		
+		final String[] files = dir.list();
 		final StringBuilder result = new StringBuilder(files.length * 500);
 		result.append("<table>");
-		
 		for (String fileName : files) 
 		{
 			StringUtil.append(result,
@@ -460,7 +465,7 @@ public class AdminEventEngine implements IAdminCommandHandler
 		
 		result.append("</table>");
 		
-		return result.toString();
+		return note + result.toString();
 	}
 	
 	public void showMainPage(L2PcInstance activeChar)
-- 
GitLab