mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2025-02-21 13:22:37 +01:00
packet names in replaceblockpackets
This commit is contained in:
parent
60992d9e38
commit
71496b8a30
@ -183,4 +183,7 @@ public class PacketInfoManager {
|
|||||||
hPacket.appendBoolean(packetInfo.getDestination() == HMessage.Direction.TOSERVER);
|
hPacket.appendBoolean(packetInfo.getDestination() == HMessage.Direction.TOSERVER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static PacketInfoManager EMPTY = new PacketInfoManager(new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,12 @@ package gearth.services.internal_extensions.blockreplacepackets;
|
|||||||
import gearth.Main;
|
import gearth.Main;
|
||||||
import gearth.extensions.ExtensionForm;
|
import gearth.extensions.ExtensionForm;
|
||||||
import gearth.extensions.ExtensionInfo;
|
import gearth.extensions.ExtensionInfo;
|
||||||
|
import gearth.extensions.OnConnectionListener;
|
||||||
|
import gearth.misc.packet_info.PacketInfo;
|
||||||
|
import gearth.misc.packet_info.PacketInfoManager;
|
||||||
import gearth.protocol.HMessage;
|
import gearth.protocol.HMessage;
|
||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
|
import gearth.protocol.connection.HClient;
|
||||||
import gearth.services.internal_extensions.blockreplacepackets.rules.BlockReplaceRule;
|
import gearth.services.internal_extensions.blockreplacepackets.rules.BlockReplaceRule;
|
||||||
import gearth.services.internal_extensions.blockreplacepackets.rules.RuleFactory;
|
import gearth.services.internal_extensions.blockreplacepackets.rules.RuleFactory;
|
||||||
import gearth.ui.GEarthController;
|
import gearth.ui.GEarthController;
|
||||||
@ -49,6 +53,8 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
|
|
||||||
List<BlockReplaceRule> rules = new ArrayList<>();
|
List<BlockReplaceRule> rules = new ArrayList<>();
|
||||||
|
|
||||||
|
private PacketInfoManager packetInfoManager = PacketInfoManager.EMPTY;
|
||||||
|
|
||||||
// public static void main(String[] args) {
|
// public static void main(String[] args) {
|
||||||
// runExtensionForm(args, BlockAndReplacePackets.class);
|
// runExtensionForm(args, BlockAndReplacePackets.class);
|
||||||
// }
|
// }
|
||||||
@ -71,6 +77,26 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getVal() {
|
||||||
|
String val = txt_value.getText();
|
||||||
|
String type = cmb_type.getSelectionModel().getSelectedItem();
|
||||||
|
String side = cmb_side.getSelectionModel().getSelectedItem();
|
||||||
|
|
||||||
|
if (type.endsWith("packet")) {
|
||||||
|
HMessage.Direction dir = side.equals("Outgoing") ? HMessage.Direction.TOSERVER : HMessage.Direction.TOCLIENT;
|
||||||
|
PacketInfo fromName = packetInfoManager.getPacketInfoFromName(dir, val);
|
||||||
|
PacketInfo fromHash = packetInfoManager.getPacketInfoFromHash(dir, val);
|
||||||
|
if (fromName != null) {
|
||||||
|
val = fromName.getHeaderId() +"";
|
||||||
|
}
|
||||||
|
else if (fromHash != null) {
|
||||||
|
val = fromHash.getHeaderId() +"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
private void refreshOptions() {
|
private void refreshOptions() {
|
||||||
txt_replacement.setDisable(cmb_type.getSelectionModel().getSelectedItem().startsWith("Block"));
|
txt_replacement.setDisable(cmb_type.getSelectionModel().getSelectedItem().startsWith("Block"));
|
||||||
if (cmb_side.getItems().size() == 2 && !cmb_type.getSelectionModel().getSelectedItem().endsWith("packet")) {
|
if (cmb_side.getItems().size() == 2 && !cmb_type.getSelectionModel().getSelectedItem().endsWith("packet")) {
|
||||||
@ -84,7 +110,7 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean isValid = false;
|
boolean isValid = false;
|
||||||
String val = txt_value.getText();
|
String val = getVal();
|
||||||
String repl = txt_replacement.getText();
|
String repl = txt_replacement.getText();
|
||||||
String type = cmb_type.getSelectionModel().getSelectedItem();
|
String type = cmb_type.getSelectionModel().getSelectedItem();
|
||||||
String side = cmb_side.getSelectionModel().getSelectedItem();
|
String side = cmb_side.getSelectionModel().getSelectedItem();
|
||||||
@ -155,7 +181,7 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
|
|
||||||
if (val.equals("")) {
|
if (val.equals("")) {
|
||||||
if (spl[1].equals("packet")) {
|
if (spl[1].equals("packet")) {
|
||||||
txt_value.setPromptText("Enter the headerID");
|
txt_value.setPromptText("Enter headerID/name");
|
||||||
}
|
}
|
||||||
else if (spl[1].equals("integer")) {
|
else if (spl[1].equals("integer")) {
|
||||||
txt_value.setPromptText("Enter an integer");
|
txt_value.setPromptText("Enter an integer");
|
||||||
@ -186,6 +212,10 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
|
|
||||||
intercept(HMessage.Direction.TOSERVER, messageListener);
|
intercept(HMessage.Direction.TOSERVER, messageListener);
|
||||||
intercept(HMessage.Direction.TOCLIENT, messageListener);
|
intercept(HMessage.Direction.TOCLIENT, messageListener);
|
||||||
|
|
||||||
|
onConnect((host, port, hotelversion, clientIdentifier, clientType, packetInfoManager) -> {
|
||||||
|
this.packetInfoManager = packetInfoManager;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -208,7 +238,8 @@ public class BlockAndReplacePackets extends ExtensionForm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void click_btnAddRule(ActionEvent actionEvent) {
|
public void click_btnAddRule(ActionEvent actionEvent) {
|
||||||
BlockReplaceRule rule = RuleFactory.getRule(cmb_type.getSelectionModel().getSelectedItem(), cmb_side.getSelectionModel().getSelectedItem(), txt_value.getText(), txt_replacement.getText());
|
BlockReplaceRule rule = RuleFactory.getRule(cmb_type.getSelectionModel().getSelectedItem(),
|
||||||
|
cmb_side.getSelectionModel().getSelectedItem(), getVal(), txt_replacement.getText(), packetInfoManager);
|
||||||
rules.add(rule);
|
rules.add(rule);
|
||||||
rule.onDelete(observable -> rules.remove(rule));
|
rule.onDelete(observable -> rules.remove(rule));
|
||||||
new RuleContainer(rule, vbox);
|
new RuleContainer(rule, vbox);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package gearth.services.internal_extensions.blockreplacepackets.rules;
|
package gearth.services.internal_extensions.blockreplacepackets.rules;
|
||||||
|
|
||||||
|
import gearth.misc.packet_info.PacketInfoManager;
|
||||||
|
import gearth.protocol.HMessage;
|
||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -7,7 +9,7 @@ import gearth.protocol.HPacket;
|
|||||||
*/
|
*/
|
||||||
public class RuleFactory {
|
public class RuleFactory {
|
||||||
|
|
||||||
public static BlockReplaceRule getRule(String type, String side, String value, String replacement) {
|
public static BlockReplaceRule getRule(String type, String side, String value, String replacement, PacketInfoManager packetInfoManager) {
|
||||||
BlockReplaceRule.Option rOption = BlockReplaceRule.Option.valueOf(type.split(" ")[0].toUpperCase());
|
BlockReplaceRule.Option rOption = BlockReplaceRule.Option.valueOf(type.split(" ")[0].toUpperCase());
|
||||||
BlockReplaceRule.Type rType = BlockReplaceRule.Type.valueOf(type.split(" ")[1].toUpperCase());
|
BlockReplaceRule.Type rType = BlockReplaceRule.Type.valueOf(type.split(" ")[1].toUpperCase());
|
||||||
BlockReplaceRule.Side rSide = BlockReplaceRule.Side.valueOf(side.toUpperCase());
|
BlockReplaceRule.Side rSide = BlockReplaceRule.Side.valueOf(side.toUpperCase());
|
||||||
@ -24,7 +26,11 @@ public class RuleFactory {
|
|||||||
return new ReplaceIntegerRule(rSide, Integer.parseInt(value), Integer.parseInt(replacement));
|
return new ReplaceIntegerRule(rSide, Integer.parseInt(value), Integer.parseInt(replacement));
|
||||||
}
|
}
|
||||||
if (rType == BlockReplaceRule.Type.PACKET) {
|
if (rType == BlockReplaceRule.Type.PACKET) {
|
||||||
return new ReplacePacketRule(rSide, Integer.parseInt(value), new HPacket(replacement));
|
HPacket packet = new HPacket(replacement);
|
||||||
|
if (!packet.isPacketComplete()) {
|
||||||
|
packet.completePacket(rSide == BlockReplaceRule.Side.INCOMING ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER, packetInfoManager);
|
||||||
|
}
|
||||||
|
return new ReplacePacketRule(rSide, Integer.parseInt(value), packet);
|
||||||
}
|
}
|
||||||
if (rType == BlockReplaceRule.Type.STRING) {
|
if (rType == BlockReplaceRule.Type.STRING) {
|
||||||
return new ReplaceStringRule(rSide, value, replacement);
|
return new ReplaceStringRule(rSide, value, replacement);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user