Added bug report for acis 372, and when sending without a message, this error is skipped. How can you solved?
code:
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.l2j.gameserver.model.actor.instance;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.StringTokenizer;
import net.sf.l2j.commons.random.Rnd;
import net.sf.l2j.gameserver.model.World;
import net.sf.l2j.gameserver.model.actor.Npc;
import net.sf.l2j.gameserver.model.actor.ai.CtrlIntention;
import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.network.clientpackets.Say2;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
/**
* @author squallcs
*
* @Reworked Abyssal
*/
public class L2BugReportInstance extends Folk
{
private static String _type;
public L2BugReportInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onBypassFeedback(Player player, String command)
{
if (command.startsWith("send_report"))
{
StringTokenizer st = new StringTokenizer(command);
st.nextToken();
String msg = "";
String type = null;
type = st.nextToken();
st.nextToken();
try
{
while (st.hasMoreTokens())
{
msg = msg + " " + st.nextToken();
}
sendReport(player, type, msg);
}
catch (StringIndexOutOfBoundsException e)
{
}
}
}
static
{
new File("log/BugReports/").mkdirs();
}
private void sendReport(Player player, String command, String msg)
{
String type = command;
L2GameClient info = player.getClient().getConnection().getClient();
if (type.equals("General"))
_type = "General";
if (type.equals("Fatal"))
_type = "Fatal";
if (type.equals("Misuse"))
_type = "Misuse";
if (type.equals("Balance"))
_type = "Balance";
if (type.equals("Other"))
_type = "Other";
try
{
String fname = "log/BugReports/" + player.getName() + ".txt";
File file = new File(fname);
boolean exist = file.createNewFile();
if (!exist)
{
player.sendMessage("You have already sent a bug report, GMs must check it first.");
return;
}
FileWriter fstream = new FileWriter(fname);
BufferedWriter out = new BufferedWriter(fstream);
out.write("Character Info: " + info + "\r\nBug Type: " + _type + "\r\nMessage: " + msg);
player.sendMessage("Report sent. GMs will check it soon. Thanks...");
for (Player allgms : World.getInstance().getPlayers())
allgms.sendPacket(new CreatureSay(0, Say2.SHOUT, "Bug Report Manager", player.getName() + " sent a bug report."));
System.out.println("Character: " + player.getName() + " sent a bug report.");
out.close();
}
catch (Exception e)
{
player.sendMessage("Something went wrong try again.");
}
}
@Override
public void onAction(Player player)
{
// Set the target of the player
if (player.getTarget() != this)
player.setTarget(this);
else
{
// Check if the player is attackable (without a forced attack) and isn't dead
if (isAutoAttackable(player))
{
player.getAI().setIntention(CtrlIntention.ATTACK, this);
}
else
{
// Calculate the distance between the Player and the L2Npc
if (!canInteract(player))
{
// Notify the Player AI with INTERACT
player.getAI().setIntention(CtrlIntention.INTERACT, this);
}
else
{
// Stop moving if we're already in interact range.
if (player.isMoving())
player.getAI().setIntention(CtrlIntention.IDLE);
// Rotate the player to face the instance
player.sendPacket(new MoveToPawn(player, this, Npc.INTERACTION_DISTANCE));
// Send ActionFailed to the player in order to avoid he stucks
player.sendPacket(ActionFailed.STATIC_PACKET);
if (hasRandomAnimation())
onRandomAnimation(Rnd.get(8));
showHtmlWindow(player);
}
}
}
}
private void showHtmlWindow(Player activeChar)
{
NpcHtmlMessage nhm = new NpcHtmlMessage(5);
StringBuilder replyMSG = new StringBuilder("");
replyMSG.append("<html><title>Bug Report Manager</title>");
replyMSG.append("<body><br><br><center>");
replyMSG.append("<table border=0 height=10 bgcolor=\"444444\" width=240>");
replyMSG.append("<tr><td align=center><font color=\"00FFFF\">Hello " + activeChar.getName() + ".</font></td></tr>");
replyMSG.append("<tr><td align=center><font color=\"00FFFF\">There are no Gms online</font></td></tr>");
replyMSG.append("<tr><td align=center><font color=\"00FFFF\">and you want to report something?</font></td></tr>");
replyMSG.append("</table><br>");
replyMSG.append("<img src=\"L2UI.SquareWhite\" width=280 height=1><br><br>");
replyMSG.append("<table width=250><tr>");
replyMSG.append("<td><font color=\"LEVEL\">Select Report Type:</font></td>");
replyMSG.append("<td><combobox width=105 var=type list=General;Fatal;Misuse;Balance;Other></td>");
replyMSG.append("</tr></table><br><br>");
replyMSG.append("<multiedit var=\"msg\" width=250 height=50><br>");
replyMSG.append("<br><img src=\"L2UI.SquareWhite\" width=280 height=1><br><br><br><br><br><br><br>");
replyMSG.append("<button value=\"Send Report\" action=\"bypass -h npc_" + getObjectId() + "_send_report $type $msg\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">");
replyMSG.append("</center></body></html>");
nhm.setHtml(replyMSG.toString());
activeChar.sendPacket(nhm);
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
}
}
error:
http://joxi.net/5mdqa9ZSv7lK52
thanks!