Skip to content

Commit

Permalink
1.2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
nightwolf93 committed Aug 24, 2020
1 parent 70bd136 commit 09e715a
Show file tree
Hide file tree
Showing 12 changed files with 128 additions and 7 deletions.
5 changes: 5 additions & 0 deletions src/main/java/fr/yuki/yrpf/YukiRPFrameworkPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ public void onEnable() {
Onset.registerRemoteEvent("Vehicle:OnHornCasted");
Onset.registerRemoteEvent("Character:HandsUp");
Onset.registerRemoteEvent("Phone:DeleteContact");
Onset.registerRemoteEvent("WUI:RequestSync");

// Init discord bot
if(!WorldManager.getServerConfig().getDiscordBotToken().equals("")) {
Expand Down Expand Up @@ -615,6 +616,10 @@ public void onRemoteEvent(PlayerRemoteEvent evt) {
case "Phone:DeleteContact":
PhoneManager.handleDeletePhoneContact(evt.getPlayer(), (evt.getArgs()[0]).toString());
break;

case "WUI:RequestSync":
WorldUIManager.handleRequestSync(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
break;
}
}
catch (Exception ex) {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/fr/yuki/yrpf/luaapi/LuaAPIManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import fr.yuki.yrpf.luaapi.vehicle.*;
import fr.yuki.yrpf.luaapi.worldui.CreateWorldUIEF;
import fr.yuki.yrpf.luaapi.worldui.DestroyWUIEF;
import fr.yuki.yrpf.luaapi.worldui.SetImageWUIEF;
import fr.yuki.yrpf.luaapi.worldui.SetProgressWUIEF;
import net.onfirenetwork.onsetjava.Onset;

Expand Down Expand Up @@ -85,5 +86,6 @@ public static void init() {
Onset.getServer().addFunctionExport("CreateWUI", new CreateWorldUIEF());
Onset.getServer().addFunctionExport("DestroyWUI", new DestroyWUIEF());
Onset.getServer().addFunctionExport("SetProgressWUI", new SetProgressWUIEF());
Onset.getServer().addFunctionExport("SetImageWUI", new SetImageWUIEF());
}
}
10 changes: 10 additions & 0 deletions src/main/java/fr/yuki/yrpf/luaapi/map/AddMapCustomMarkerEF.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package fr.yuki.yrpf.luaapi.map;

import net.onfirenetwork.onsetjava.plugin.ExportFunction;

public class AddMapCustomMarkerEF implements ExportFunction {
@Override
public Object call(Object[] objects) {
return null;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.yuki.yrpf.luaapi.worldui;

import fr.yuki.yrpf.manager.WorldUIManager;
import fr.yuki.yrpf.world.WImageContainerWUI;
import fr.yuki.yrpf.world.WProgressBarWUI;
import fr.yuki.yrpf.world.WorldUI;
import net.onfirenetwork.onsetjava.data.Vector;
Expand All @@ -19,6 +20,11 @@ public Object call(Object[] objects) {
worldUI = new WProgressBarWUI(position, rotation, Integer.parseInt(objects[6].toString()), Integer.parseInt(objects[7].toString()),
objects[8].toString());
break;

case "wImageContainer":
worldUI = new WImageContainerWUI(position, rotation, Integer.parseInt(objects[6].toString()), Integer.parseInt(objects[7].toString()),
objects[8].toString());
break;
}
if(worldUI == null) return -1;
WorldUIManager.getWorldUIS().add(worldUI);
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/fr/yuki/yrpf/luaapi/worldui/SetImageWUIEF.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package fr.yuki.yrpf.luaapi.worldui;

import fr.yuki.yrpf.manager.WorldUIManager;
import fr.yuki.yrpf.world.WImageContainerWUI;
import fr.yuki.yrpf.world.WProgressBarWUI;
import fr.yuki.yrpf.world.WorldUI;
import net.onfirenetwork.onsetjava.plugin.ExportFunction;

public class SetImageWUIEF implements ExportFunction {
@Override
public Object call(Object[] objects) {
WorldUI worldUI = WorldUIManager.findWorldUIByID(Integer.parseInt(objects[0].toString()));
if(worldUI == null) return false;
if(!worldUI.getUiType().equals("wImageContainer")) {
return false;
}
WImageContainerWUI wImageContainerWUI = (WImageContainerWUI)worldUI;
wImageContainerWUI.setImageUrl(objects[1].toString());
return true;
}
}
2 changes: 2 additions & 0 deletions src/main/java/fr/yuki/yrpf/manager/MapManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;

public class MapManager {
private static GameMapConfig mapConfig;
@Getter @Setter
private static int markerId = 1;
public HashMap<String, String> customMarkers = new HashMap<>();

public static void init() throws FileNotFoundException {
new File("yrpf").mkdir();
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/fr/yuki/yrpf/manager/WorldManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,20 @@ public static void init() throws SQLException, IOException {
outfitPoints = Repo.get(OutfitPoint.class).all();
Onset.print("Loaded " + outfitPoints.size() + " outfit point(s) from the database");
spawnOutfitPoints();

Onset.timer(60000 * 5, () -> {
saveAll();
});
}

public static void saveAll() {
Onset.print("Autosave players ..");
for (Player player : Onset.getPlayers()) {
try {
savePlayer(player);
}catch (Exception ex) {}
}
Onset.print("Autosave done");
}

public static void initServerConfig() throws IOException {
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/fr/yuki/yrpf/manager/WorldUIManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import fr.yuki.yrpf.world.WorldUI;
import lombok.Getter;
import net.onfirenetwork.onsetjava.Onset;
import net.onfirenetwork.onsetjava.entity.Player;

import java.util.ArrayList;

Expand All @@ -12,4 +14,11 @@ public class WorldUIManager {
public static WorldUI findWorldUIByID(int id) {
return worldUIS.stream().filter(x -> x.getId() == id).findFirst().orElse(null);
}

public static void handleRequestSync(Player player, int uiID) {
Onset.print("Request sync for WUI id="+uiID);
WorldUI worldUI = findWorldUIByID(uiID);
if(worldUI == null) return;
worldUI.sync(player);
}
}
19 changes: 19 additions & 0 deletions src/main/java/fr/yuki/yrpf/net/payload/SetImageWUIPayload.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package fr.yuki.yrpf.net.payload;

public class SetImageWUIPayload {
private String imageUrl;
private String type;

public SetImageWUIPayload(String imageUrl) {
this.type = "SET_IMAGE_WUI";
this.imageUrl = imageUrl;
}

public String getImageUrl() {
return imageUrl;
}

public String getType() {
return type;
}
}
29 changes: 29 additions & 0 deletions src/main/java/fr/yuki/yrpf/world/WImageContainerWUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package fr.yuki.yrpf.world;

import com.google.gson.Gson;
import fr.yuki.yrpf.net.payload.SetImageWUIPayload;
import fr.yuki.yrpf.net.payload.SetProgressWUIPayload;
import net.onfirenetwork.onsetjava.data.Vector;
import net.onfirenetwork.onsetjava.entity.Player;

public class WImageContainerWUI extends WorldUI {
private String imageUrl = "";

public WImageContainerWUI(Vector position, Vector rotation, int width, int height, String uiType) {
super(position, rotation, width, height, uiType);
}

public void setImageUrl(String url) {
if(url.startsWith("http")) {
this.imageUrl = url;
} else {
this.imageUrl = "../../../../" + url;
}
this.syncAll();
}

@Override
public void sync(Player player) {
this.dispatchToPlayerUI(player, new Gson().toJson(new SetImageWUIPayload(this.imageUrl)));
}
}
9 changes: 3 additions & 6 deletions src/main/java/fr/yuki/yrpf/world/WProgressBarWUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,11 @@ public WProgressBarWUI(Vector position, Vector rotation, int width, int height,

public void setProgress(int progress) {
this.progress = progress;
this.sync();
this.syncAll();
}

@Override
public void sync() {
Onset.print("sync progress: " + this.progress);
for(Player player : this.getPlayersInRange()) {
this.dispatchToPlayerUI(player, new Gson().toJson(new SetProgressWUIPayload(this.progress)));
}
public void sync(Player player) {
this.dispatchToPlayerUI(player, new Gson().toJson(new SetProgressWUIPayload(this.progress)));
}
}
9 changes: 8 additions & 1 deletion src/main/java/fr/yuki/yrpf/world/WorldUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,11 @@ public WorldUI(Vector position, Vector rotation, int width, int height, String u
this.spawn();
}

public abstract void sync();
public abstract void sync(Player player);

private void spawn() {
this.worldObject = Onset.getServer().createObject(this.position, 1);
this.worldObject.setRotation(this.rotation);
this.worldObject.setProperty("isWorldUI", "true", true);
this.worldObject.setProperty("uiID", this.id, true);
this.worldObject.setProperty("uiType", this.uiType, true);
Expand All @@ -60,6 +61,12 @@ public void destroy() {
}
}

public void syncAll() {
for(Player player : this.getPlayersInRange()) {
this.sync(player);
}
}

protected ArrayList<Player> getPlayersInRange() {
return new ArrayList<>(Onset.getPlayers().stream().filter(x -> x.getLocation().distance(this.position) <= this.streamDistance)
.collect(Collectors.toList()));
Expand Down

0 comments on commit 09e715a

Please sign in to comment.