better info command + removal of thread.sleep + economy bug fix on reload

This commit is contained in:
SuperRonanCraft
2020-08-08 01:02:25 -04:00
parent 3f2c8f2d10
commit e0392d9105
6 changed files with 87 additions and 23 deletions
@@ -19,17 +19,17 @@ import org.bukkit.plugin.java.JavaPlugin;
import java.util.List; import java.util.List;
public class Main extends JavaPlugin { public class Main extends JavaPlugin {
private Permissions perms = new Permissions(); private final Permissions perms = new Permissions();
private Messages text = new Messages(this); private final Messages text = new Messages(this);
private DepEconomy eco = new DepEconomy(); private final DepEconomy eco = new DepEconomy();
private Commands cmd = new Commands(this); private final Commands cmd = new Commands(this);
private RTP rtp = new RTP(); private final RTP rtp = new RTP();
private Listener listener = new Listener(); private final Listener listener = new Listener();
private static Main instance; private static Main instance;
private Files files = new Files(); private final Files files = new Files();
private RTPInventories invs = new RTPInventories(); private final RTPInventories invs = new RTPInventories();
private PlayerInfo pInfo = new PlayerInfo(); private final PlayerInfo pInfo = new PlayerInfo();
private Settings settings = new Settings(); private final Settings settings = new Settings();
public void onEnable() { public void onEnable() {
instance = this; instance = this;
@@ -16,9 +16,10 @@ public class RTPParticles {
private ParticleEffect effect; private ParticleEffect effect;
private String shape; private String shape;
private int radius = 30, precision = 180; //Vector weirdness if allowed to be editable private int radius = 30, precision = 180; //Vector weirdness if allowed to be editable
private double pHeight = 1.75;
//Some particles act very differently and might not care how they are shaped before animating, ex: EXPLOSION_NORMAL //Some particles act very differently and might not care how they are shaped before animating, ex: EXPLOSION_NORMAL
private String[] shapeTypes = { public static String[] shapeTypes = {
"SCAN", //Body scan "SCAN", //Body scan
"EXPLOSIVE", //Make an explosive entrance "EXPLOSIVE", //Make an explosive entrance
"TELEPORT" //Startrek type of portal "TELEPORT" //Startrek type of portal
@@ -59,7 +60,7 @@ public class RTPParticles {
} }
private void partScan(Player p) { //Particles with negative velocity private void partScan(Player p) { //Particles with negative velocity
Location loc = p.getLocation().add(new Vector(0, 2, 0)); Location loc = p.getLocation().add(new Vector(0, pHeight, 0));
for (int index = 1; index < precision; index++) { for (int index = 1; index < precision; index++) {
Vector vec = getVecCircle(index, precision, radius); Vector vec = getVecCircle(index, precision, radius);
effect.display(loc.clone().add(vec), new Vector(0, -0.125, 0), 1f, 0, null); effect.display(loc.clone().add(vec), new Vector(0, -0.125, 0), 1f, 0, null);
@@ -70,7 +71,7 @@ public class RTPParticles {
Random ran = new Random(); Random ran = new Random();
Location loc = p.getLocation().add(new Vector(0, 0, 0)); Location loc = p.getLocation().add(new Vector(0, 0, 0));
for (int index = 1; index < precision; index++) { for (int index = 1; index < precision; index++) {
double yran = ran.nextInt(2); double yran = ran.nextGaussian() * pHeight;
Vector vec = getVecCircle(index, precision, radius).add(new Vector(0, yran, 0)); Vector vec = getVecCircle(index, precision, radius).add(new Vector(0, yran, 0));
effect.display(loc.clone().add(vec)); effect.display(loc.clone().add(vec));
} }
@@ -18,7 +18,7 @@ import java.util.concurrent.CompletableFuture;
public class RTPTeleport { public class RTPTeleport {
private RTPParticles particles = new RTPParticles(); private final RTPParticles particles = new RTPParticles();
void load() { void load() {
particles.load(); particles.load();
@@ -64,13 +64,9 @@ public class RTPTeleport {
asyncChunks.add(chunk); asyncChunks.add(chunk);
} }
} }
while (!checkLoaded(asyncChunks)) { boolean loaded = false;
try { while (!loaded)
Thread.sleep(500); //Sleep and check again 0.5 seconds later loaded = checkLoaded(asyncChunks);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} }
private boolean checkLoaded(List<CompletableFuture<Chunk>> asyncChunks) { private boolean checkLoaded(List<CompletableFuture<Chunk>> asyncChunks) {
@@ -1,6 +1,8 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types; package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.Main; import me.SuperRonanCraft.BetterRTP.Main;
import me.SuperRonanCraft.BetterRTP.player.RTPParticles;
import me.SuperRonanCraft.BetterRTP.player.commands.CommandTypes;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.worlds.RTP_WORLD_TYPE; import me.SuperRonanCraft.BetterRTP.references.worlds.RTP_WORLD_TYPE;
@@ -8,13 +10,70 @@ import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.WorldBorder; import org.bukkit.WorldBorder;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import xyz.xenondevs.particle.ParticleEffect;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class CmdInfo implements RTPCommand { public class CmdInfo implements RTPCommand {
private String[] subCmds = {
"Particles" //Give a list of particles
};
public void execute(CommandSender sendi, String label, String[] args) { public void execute(CommandSender sendi, String label, String[] args) {
if (args.length > 1) {
if (args[1].equalsIgnoreCase(CmdInfoSub.PARTICLES.name()))
infoParticles(sendi);
else if (args[1].equalsIgnoreCase(CmdInfoSub.SHAPES.name()))
infoShapes(sendi);
else
infoWorlds(sendi);
} else
infoWorlds(sendi);
}
enum CmdInfoSub { //Sub commands, future expansions
PARTICLES, SHAPES
}
private void infoParticles(CommandSender sendi) {
List<String> info = new ArrayList<>();
Main pl = Main.getInstance();
for (ParticleEffect eff : ParticleEffect.VALUES) {
if (info.isEmpty()) {
info.add("&7" + eff.name() + "&r");
} else if (info.size() % 2 == 0) {
info.add("&7" + eff.name() + "&r");
} else
info.add("&f" + eff.name() + "&r");
}
info.forEach(str ->
info.set(info.indexOf(str), pl.getText().color(str)));
sendi.sendMessage(info.toString());
}
private void infoShapes(CommandSender sendi) {
List<String> info = new ArrayList<>();
Main pl = Main.getInstance();
for (String shape : RTPParticles.shapeTypes) {
if (info.isEmpty()) {
info.add("&7" + shape + "&r");
} else if (info.size() % 2 == 0) {
info.add("&7" + shape + "&r");
} else
info.add("&f" + shape + "&r");
}
info.forEach(str ->
info.set(info.indexOf(str), pl.getText().color(str)));
sendi.sendMessage(info.toString());
}
private void infoWorlds(CommandSender sendi) {
List<String> info = new ArrayList<>(); List<String> info = new ArrayList<>();
info.add("&e&m-----&6 BetterRTP Info &e&m-----"); info.add("&e&m-----&6 BetterRTP Info &e&m-----");
Main pl = Main.getInstance(); Main pl = Main.getInstance();
@@ -62,7 +121,13 @@ public class CmdInfo implements RTPCommand {
} }
public List<String> tabComplete(CommandSender sendi, String[] args) { public List<String> tabComplete(CommandSender sendi, String[] args) {
return null; List<String> info = new ArrayList<>();
if (args.length == 2) {
for (CmdInfoSub cmd : CmdInfoSub.values())
if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase()))
info.add(cmd.name().toLowerCase());
}
return info;
} }
public boolean permission(CommandSender sendi) { public boolean permission(CommandSender sendi) {
@@ -36,6 +36,8 @@ public class Default implements RTPWorld {
} }
if (Main.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled")) if (Main.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getBoolean("Economy.Enabled"))
price = Main.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getInt("Economy.Price"); price = Main.getInstance().getFiles().getType(FileBasics.FILETYPE.ECO).getInt("Economy.Price");
else
price = 0;
//Other //Other
this.Biomes = config.getStringList(pre + ".Biomes"); this.Biomes = config.getStringList(pre + ".Biomes");
} }
+1 -1
View File
@@ -27,7 +27,7 @@ Settings:
CancelOnMove: true CancelOnMove: true
Particles: Particles:
Enabled: true Enabled: true
Type: 'PORTAL' #list of particle types at https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java Type: 'REVERSE_PORTAL' #list of particle types at https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java
Amount: 180 Amount: 180
Shape: 'SCAN' #Types available are "Scan, Teleport and Explosive" Shape: 'SCAN' #Types available are "Scan, Teleport and Explosive"
DisableUpdater: false DisableUpdater: false