changes in extensions

This commit is contained in:
sirjonasxx 2018-09-27 15:05:38 +02:00
parent bb608102a7
commit 072bf1d273
6 changed files with 53 additions and 31 deletions

View File

@ -23,7 +23,11 @@ public abstract class Extension {
void act(String[] args);
}
protected static final boolean CANLEAVE = true; // can you disconnect the ext
protected static final boolean CANDELETE = true; // can you delete the ext (will be false for some built-in extensions)
private String[] args;
private boolean isCorrupted = false;
private static final String[] PORT_FLAG = {"--port", "-p"};
private static final String[] FILE_FLAG = {"--filename", "-f"};
@ -49,6 +53,8 @@ public abstract class Extension {
*/
public Extension(String[] args) {
//obtain port
this.args = args;
if (getInfoAnnotations() == null) {
System.err.println("Extension info not found\n\n" +
@ -59,6 +65,17 @@ public abstract class Extension {
" Version = \"...\",\n" +
" Author = \"...\"" +
"\n)");
isCorrupted = true;
}
if (getArgument(args, PORT_FLAG) == null) {
System.err.println("Don't forget to include G-Earth's port as program parameters (-p {port})");
isCorrupted = true;
}
}
public void run() {
if (isCorrupted) {
return;
}
@ -67,7 +84,7 @@ public abstract class Extension {
Socket gEarthExtensionServer = null;
try {
gEarthExtensionServer = new Socket("127.0.0.2", port);
gEarthExtensionServer = new Socket("127.0.0.1", port);
InputStream in = gEarthExtensionServer.getInputStream();
DataInputStream dIn = new DataInputStream(in);
out = gEarthExtensionServer.getOutputStream();
@ -105,7 +122,9 @@ public abstract class Extension {
.appendString(info.Description())
.appendBoolean(isOnClickMethodUsed())
.appendBoolean(file == null)
.appendString(file == null ? "": file);
.appendString(file == null ? "": file)
.appendBoolean(CANLEAVE)
.appendBoolean(CANDELETE);
writeToStream(response.toBytes());
}
else if (packet.headerId() == Extensions.OUTGOING_MESSAGES_IDS.CONNECTIONSTART) {

View File

@ -55,6 +55,7 @@ public abstract class ExtensionForm extends Application {
return extInfo;
}
};
extension.run();
// Platform.runLater(primaryStage::close);
//when the extension has ended, close this process
Platform.exit();

View File

@ -20,7 +20,7 @@ import main.protocol.HPacket;
public class AdminOnConnect extends Extension {
public static void main(String[] args) {
new AdminOnConnect(args);
new AdminOnConnect(args).run();
}
public AdminOnConnect(String[] args) {
super(args);

View File

@ -25,7 +25,7 @@ import java.util.Random;
public class SpeechColorizer extends Extension {
public static void main(String[] args) {
new SpeechColorizer(args);
new SpeechColorizer(args).run();
}
private SpeechColorizer(String[] args) {
super(args);

View File

@ -70,16 +70,14 @@ public class ExtensionItemContainer extends GridPane {
exitButton.show();
exitButton.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> item.isRemoveClickTrigger());
SimpleClickButton clickButton = new SimpleClickButton();
clickButton.show();
clickButton.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> item.isClickTrigger());
HBox buttonsBox = new HBox(clickButton, exitButton);
if (item.isFireButtonUsed()) {
clickButton.show();
}
else {
HBox.setMargin(exitButton, new Insets(0,0,0,24));
}
buttonsBox.setSpacing(item.isFireButtonUsed() ? 8 : 0);
clickButton.setVisible(item.isFireButtonUsed());
exitButton.setVisible(item.isLeaveButtonVisible());
buttonsBox.setSpacing(8);
buttonsBox.setAlignment(Pos.CENTER);
GridPane.setMargin(buttonsBox, new Insets(0, 5, 0, 5));
add(buttonsBox, 4, 0);

View File

@ -19,7 +19,10 @@ public class GEarthExtension {
private String author;
private String version;
private String description;
private boolean fireEventButtonVisible;
private boolean leaveButtonVisible;
private boolean deleteButtonVisible;
private boolean isInstalledExtension; // <- extension is in the extensions directory
private String fileName;
@ -53,13 +56,7 @@ public class GEarthExtension {
if (packet.headerId() == Extensions.INCOMING_MESSAGES_IDS.EXTENSIONINFO) {
GEarthExtension gEarthExtension = new GEarthExtension(
packet.readString(),
packet.readString(),
packet.readString(),
packet.readString(),
packet.readBoolean(),
packet.readBoolean(),
packet.readString(),
packet,
connection,
onDisconnectedCallback
);
@ -73,15 +70,21 @@ public class GEarthExtension {
}
private GEarthExtension(String title, String author, String version, String description, boolean fireEventButtonVisible, boolean isInstalledExtension, String fileName, Socket connection, OnDisconnectedCallback onDisconnectedCallback) {
this.title = title;
this.author = author;
this.version = version;
this.description = description;
this.fireEventButtonVisible = fireEventButtonVisible;
private GEarthExtension(HPacket extensionInfo, Socket connection, OnDisconnectedCallback onDisconnectedCallback) {
this.isInstalledExtension = isInstalledExtension;
this.fileName = fileName;
this.title = extensionInfo.readString();
this.author = extensionInfo.readString();
this.version = extensionInfo.readString();
this.description = extensionInfo.readString();
this.fireEventButtonVisible = extensionInfo.readBoolean();
this.isInstalledExtension = extensionInfo.readBoolean();
this.fileName = extensionInfo.readString();
this.leaveButtonVisible = extensionInfo.readBoolean();
this.deleteButtonVisible = extensionInfo.readBoolean();
this.connection = connection;
@ -134,26 +137,27 @@ public class GEarthExtension {
public String getAuthor() {
return author;
}
public String getDescription() {
return description;
}
public String getTitle() {
return title;
}
public String getVersion() {
return version;
}
public boolean isFireButtonUsed() {
return fireEventButtonVisible;
}
public String getFileName() {
return fileName;
}
public boolean isDeleteButtonVisible() {
return deleteButtonVisible;
}
public boolean isLeaveButtonVisible() {
return leaveButtonVisible;
}
public boolean isInstalledExtension() {
return isInstalledExtension;