/* * Decompiled with CFR 0.152. */ package gearth.extensions; import gearth.extensions.InternalExtension; import gearth.misc.HostInfo; import gearth.protocol.HMessage; import gearth.protocol.HPacket; import gearth.protocol.connection.HClient; import gearth.services.extension_handler.extensions.ExtensionType; import gearth.services.extension_handler.extensions.GEarthExtension; import gearth.services.packet_info.PacketInfoManager; public class InternalExtensionBuilder extends GEarthExtension { private final InternalExtension extension; public InternalExtensionBuilder(InternalExtension extension) { this.extension = extension; extension.setCommunicator(new InternalExtension.InternalExtensionCommunicator(){ @Override public void sendToClient(HPacket packet) { InternalExtensionBuilder.this.sendMessage(HMessage.Direction.TOCLIENT, packet); } @Override public void sendToServer(HPacket packet) { InternalExtensionBuilder.this.sendMessage(HMessage.Direction.TOSERVER, packet); } @Override public void writeToConsole(String s) { InternalExtensionBuilder.this.log(s); } }); } @Override public String getAuthor() { return this.extension.getInfoAnnotations().Author(); } @Override public String getDescription() { return this.extension.getInfoAnnotations().Description(); } @Override public String getTitle() { return this.extension.getInfoAnnotations().Title(); } @Override public String getVersion() { return this.extension.getInfoAnnotations().Version(); } @Override public boolean isFireButtonUsed() { for (Class c = this.extension.getClass(); c != InternalExtension.class; c = c.getSuperclass()) { try { c.getDeclaredMethod("onClick", new Class[0]); return true; } catch (NoSuchMethodException noSuchMethodException) { continue; } } return false; } @Override public boolean isDeleteButtonVisible() { return this.extension.canDelete(); } @Override public boolean isLeaveButtonVisible() { return this.extension.canLeave(); } @Override public boolean isInstalledExtension() { return false; } @Override public void doubleclick() { this.extension.onClick(); } @Override public void packetIntercept(HMessage hMessage) { this.extension.modifyMessage(hMessage); this.sendManipulatedPacket(hMessage); } @Override public void provideFlags(String[] flags) { } @Override public void connectionStart(String host, int port, String hotelVersion, String clientIdentifier, HClient clientType, PacketInfoManager packetInfoManager) { this.extension.setPacketInfoManager(packetInfoManager); this.extension.getOnConnectionObservable().fireEvent(l -> l.onConnection(host, port, hotelVersion, clientIdentifier, clientType)); this.extension.onStartConnection(); } @Override public void connectionEnd() { this.extension.onEndConnection(); } @Override public void init(boolean isConnected, HostInfo hostInfo) { this.extension.initExtension(); this.extension.updateHostInfo(hostInfo); } @Override public void close() { } @Override public void updateHostInfo(HostInfo hostInfo) { this.extension.updateHostInfo(hostInfo); } @Override public void packetToStringResponse(String string, String expression) { } @Override public void stringToPacketResponse(HPacket packet) { } @Override public ExtensionType extensionType() { return ExtensionType.INTERNAL; } }