Hello is it possible to block a Packet from a server then create a new one and sent it back to the same server (to simulate an answer) ?
Something like this:
@Override
public void interceptPacket(Packet packet, Session session, boolean incoming, boolean processed) throws PacketRejectedException {
if (packet instanceof IQ && !incoming && !processed && packet.toString().contains("SOMETHING") {
throw new PacketRejectedException();
}
Packet responsePacket = (Packet) createElt(packet.getID(), packet.getTo().toString(), packet.getFrom().toString());
XMPPServer.getInstance().getPacketRouter().route(responsePacket);
}
private static Element createElement(String id, String from, String to) {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("iq");
root.addAttribute("type", "result").addAttribute("id", id).addAttribute("from", from).addAttribute("to", to);
Element queryElt = root.addElement("query", "http://jabber.org/protocol/disco#info");
.......
return document.getRootElement();
}