Jump to content
  • 0

high five [L2J] Bug Report Manager Problem


Question

Posted

Hello Maxcheaters..!

so i've got a bug report manager from here from -=DoctorNo=- Version 2.3

 

I have L2J High Five (unstable)

the problem is:
when i'm pressing the button to create the report file, it doesn't work..!

it's like the button saying to close the window... the window is closing and nothing happened... no errors, no logs... just nothing...

 

the code:

package custom.BugReport;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.StringTokenizer;
import java.util.logging.Logger;

import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;

/**
 * @author -=DoctorNo=- Version 2.3
 */
public class BugReport extends Quest
{
	private final Logger _log = Logger.getLogger(BugReport.class.getName());
	private static final int NpcId = 40000; // npc id here
	private static String htmlLoc = "data/scripts/custom/BugReport/1.html";
	
	public BugReport(int questId, String name, String descr)
	{
		super(questId, name, descr);
		addFirstTalkId(NpcId);
		addTalkId(NpcId);
		addStartNpc(NpcId);
		_log.warning("Test 1");
	}
	
	@Override
	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
	{
	_log.warning("Test 2");
		if (event.startsWith("report"))
		{
			sendReport(event, npc, player, event);
		}
		return "";
	}
	
	private void sendReport(String event, L2Npc npc, L2PcInstance player, String command)
	{
		StringTokenizer st = new StringTokenizer(command);
		st.nextToken();
		_log.warning("Test 3");
		
		String message = "";
		String _type = null; // General, Fatal, Misuse, Balance, Other
		L2GameClient info = player.getClient().getConnection().getClient();
		
		try
		{
		_log.warning("Test 4");
			_type = st.nextToken();
			while (st.hasMoreTokens())
			{
				message = message + st.nextToken() + " ";
			}
			
			if (message.equals(""))
			{
				player.sendMessage("Message box cannot be empty.");
				return;
			}
			
			String fname = "data/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: " + message);
			player.sendMessage("Report sent. GMs will check it soon. Thanks...");
			
			for (L2PcInstance allgms : L2World.getInstance().getAllGMs())
			{
				allgms.sendPacket(new CreatureSay(0, Say2.SHOUT, "Bug Report Manager", player.getName() + " sent a bug report."));
				allgms.sendPacket(new CreatureSay(0, Say2.SHOUT, "Report Type", _type + "."));
			}
			
			_log.info("Character: " + player.getName() + " sent a bug report.");
			out.close();
		}
		catch (Exception e)
		{
			player.sendMessage("Something went wrong try again.");
		}
	}
	
	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
	_log.warning("Test 5");
		final int npcId = npc.getId();
		if (player.getQuestState(getName()) == null)
		{
			newQuestState(player);
		}
		
		if (npcId == NpcId)
		{
			String html = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), htmlLoc);
			html = html.replaceAll("%player%", player.getName());
			
			NpcHtmlMessage npcHtml = new NpcHtmlMessage(0);
			npcHtml.setHtml(html);
			player.sendPacket(npcHtml);
		}
		return "";
	}
	
	public static void main(final String[] args)
	{
		new BugReport(-1, BugReport.class.getSimpleName(), "custom");
		System.out.println("CUSTOM: BugReport Manager loaded");
	}
}

and the action from the button on html:

action="bypass -h Quest BugReport $report $type $msg"

any Idea?!

13 answers to this question

Recommended Posts

  • 0
Posted

Instead of logging "test" stuff, log the way the command is cutted. If nothing happens, it probably means the bypass isn't correctly cutted.

 

Probably "report" instead of "$report" in your bypass should make it work.

  • 0
Posted (edited)

Are you adding the proper line inside scripts.cfg?

if not, the text wont open... cause it's reading the html from the code..!

 

Instead of logging "test" stuff, log the way the command is cutted. If nothing happens, it probably means the bypass isn't correctly cutted.

 

Probably "report" instead of "$report" in your bypass should make it work.

 

hmmm.... i think you are right... i'm gonna test it!

 

edit: the logging commands is from me to check...!

       the call report instead of $report doesn't work too!

Edited by xXObanXx
  • 0
Posted (edited)

if not, the text wont open... cause it's reading the html from the code..!

True soz, my newbie question filter didn't work properly... let me figure out what's wrong...

Post full html pls :P

U sure that what Tryskell said isn't working?

Edited by ^Wyatt
  • 0
Posted

True soz, my newbie question filter didn't work properly... let me figure out what's wrong...

Post full html pls :P

U sure that what Tryskell said isn't working?

<html>
<title>Bug Report Manager</title>
<body>
<br><br>
<center>
<table border="0" height=10 bgcolor="444444" width=240>
<tr><td align=center><font color="00FFFF">Hello %player%.</font></td></tr>
<tr><td align=center><font color="00FFFF">There are no Gms online</font></td></tr>
<tr><td align=center><font color="00FFFF">and you want to report something?</font></td></tr>
<tr><td align=center><font color="00FFFF">Now it is possible.</font></td></tr>
</table>
<br>
<img src="L2UI.SquareWhite" width=280 height=1>
<br><br>
<table width=250>
<tr>
<td><font color="LEVEL">Select Report Type:</font></td>
<td><combobox width=105 var=type list=General;Npc;Event;Balance;Other></td>
</tr>
</table>
<br><br>
<multiedit var="msg" width="250" height="50"><br>
<button value="Report It" action="bypass -h Quest BugReport $report type message" width="128" height="26" back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
<br>
<img src="L2UI.SquareWhite" width=280 height=1>
<br>
<img src="L2UI.SquareWhite" width=280 height=1>
</center>
</body></html>

pretty sure...

i've tried with the following calls:

action="bypass -h Quest BugReport report type msg"
action="bypass -h Quest BugReport report type message"
action="bypass -h Quest BugReport report _type msg"
action="bypass -h Quest BugReport report _type message"
  • 0
Posted (edited)

It's the only thing I can see that could be causing it hm....

 

U could try to change this but I don't think it can affect.

<td><combobox width=105 var=type list=General;Npc;Event;Balance;Other></td>
to

<td><combobox width="105" var="type" list="General;Npc;Event;Balance;Other"></td>
Edited by ^Wyatt
  • 0
Posted (edited)

It's the only thing I can see that could be causing it hm....

 

U could try to change this but I don't think it can affect.

<td><combobox width=105 var=type list=General;Npc;Event;Balance;Other></td>
to

<td><combobox width="105" var="type" list="General;Npc;Event;Balance;Other"></td>

nah... on html that is not a wrong code... but with " " is more "stable"

 

btw don't work too!

Edited by xXObanXx
  • 0
Posted (edited)

I have an idea... i was thinking... the call is $report $type $msg but...

few days ago i've seen that on tvt the %max% for max players is handling from this line inside the TvTEvent.java

npcHtmlMessage.replace("%max%", String.valueOf(Config.TVT_EVENT_MAX_LVL));

so... if we were put a code like this? couldn't work?

Edited by xXObanXx

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Acabei de liberar no TopL2.com o nosso MOD Oficial de VoteSystem, criado para servidores Lineage 2 que querem parar de sofrer com voto “fake” e reward entregue sem controle.   O que ele faz? O mod integra seu GameServer com o site TopL2, valida o voto do jogador e só então libera a recompensa — tudo com mais segurança, rastreio e controle.   Principais vantagens Voto verificado: o servidor confirma o voto registrado no site Reward mais seguro: evita abuso/duplicação e reduz exploit Cooldown configurável por jogador Logs e rastreio para auditoria e suporte   Instalação rápida, com arquivos organizados e prontos para copiar/aplicar   Disponível para download no https://TopL2.com   Se você é admin e quer profissionalizar seu sistema de votos e entregar reward com segurança, esse mod é pra você.  
    • Geia sas paidia eimai new edw mesa kai tha ithela na kanw mia erwtisi an kapoios mporei na me voithisei! Exw highfive (L2JMobius) kai thelw na valw custom weapons alla den exw sql file mporw na ta perasw xwris sql file kai na exw mono ta xml arxeia gia na ta valw stats/items?
    • ## [1.4.0] - 2026-01-28   ### ✨ New Features - **Vote System**: Lineage 2 servers can now use our vote–reward system. Players vote on the website and claim rewards in-game (1 vote = 1 claim) - **Vote Page**: On each server’s page (`/servers/<server>`), a **“Vote for Server”** button opens a dedicated vote page with cooldown info and optional Turnstile verification - **By Votes View**: The **“By Votes”** tab on the main page shows **actual vote counts** per server - **API Documentation**: New **API Docs** page at `/docs` (and footer link) with HMAC auth, endpoints, and examples for game server integration - **Vote API (My Servers)**: Server owners can open **“Vote API”** in My Servers to manage credentials, cooldown, allowed IPs, and open the docs   ### 🔄 Improvements - **Server Pages**: Single-server data is cached and loads faster; server pages can be opened by ID or by name (e.g. `/servers/my-server-name`) - **API Root**: Visiting the API root redirects to the docs URL configured in admin (default: site docs page) - **Admin Panel**: New **“Vote System”** tab for global settings (Turnstile, API security, default cooldown, docs URL)   ### 🔐 Security & Reliability - Turnstile (CAPTCHA) support for vote submissions to reduce abuse - HMAC-protected game server API for secure vote check/claim and stats
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..