more events and addon fixes

This commit is contained in:
SuperRonanCraft
2020-11-12 00:30:40 -05:00
parent 08607beef4
commit be3c7cadb8
21 changed files with 358 additions and 51 deletions

View File

@@ -0,0 +1,21 @@
package me.SuperRonanCraft.BetterRTPAddons;
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
public interface Addon extends Listener {
boolean isEnabled();
void load();
default void register() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
default void disable() {
HandlerList.unregisterAll(this);
}
}

View File

@@ -0,0 +1,52 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTPAddons.flashBack.AddonFlashback;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
public class AddonsHandler {
List<Addons> addons = new ArrayList<>();
public void load() {
for (Addons addon : addons) {
addon.disable();
}
addons.clear();
for (Addons addon : Addons.values())
if (addon.isEnabled()) {
addon.load();
addons.add(addon);
} else {
Main.getInstance().getLogger().log(Level.INFO, "Addon was not loaded " + addon.name());
}
}
enum Addons {
FLASH_BACK(new AddonFlashback());
Addon addon;
Addons(Addon addon) {
this.addon = addon;
}
boolean isEnabled() {
return addon.isEnabled();
}
void load() {
Main.getInstance().getLogger().log(Level.INFO, "Addon loaded " + this.name());
addon.register();
addon.load();
}
void disable() {
addon.disable();
}
}
}

View File

@@ -0,0 +1,25 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.command.CommandSender;
import java.util.List;
public interface AddonsMessages {
default void sms(CommandSender sendi, String msg) {
BetterRTP.getInstance().getText().sms(sendi, msg);
}
default void sms(CommandSender sendi, List<String> msg) {
BetterRTP.getInstance().getText().sms(sendi, msg);
}
default String color(String str) {
return BetterRTP.getInstance().getText().color(str);
}
default String colorPre(String str) {
return BetterRTP.getInstance().getText().colorPre(str);
}
}

View File

@@ -1,20 +0,0 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class Events implements Listener {
void load() {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
@EventHandler
void onTeleport(RTP_TeleportEvent e) {
System.out.println("Player " + e.getPlayer().getName() + " was rtp'd!");
new PlayerFlashback(e.getPlayer(), e.getOldLocation(), 20L * 10);
}
}

View File

@@ -0,0 +1,111 @@
package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Files {
List<FILETYPE> types = new ArrayList<>();
void load() {
types.clear();
for (FILETYPE type : FILETYPE.values()) {
type.load();
types.add(type);
}
}
public enum FILETYPE {
CONFIG("config"), EFFECTS("flashback");
private final String fileName;
private final YamlConfiguration config = new YamlConfiguration();
private final File file;
FILETYPE(String str) {
this.fileName = str + ".yml";
this.file = new File(Main.getInstance().getDataFolder(), fileName);
}
//PUBLIC
public String getString(String path) {
if (config.isString(path))
return config.getString(path);
return "SOMETHING WENT WRONG";
}
public boolean getBoolean(String path) {
return config.getBoolean(path);
}
public int getInt(String path) {
return config.getInt(path);
}
public List<String> getStringList(String path) {
if (config.isList(path))
return config.getStringList(path);
return new ArrayList<>();
}
public ConfigurationSection getConfigurationSection(String path) {
return config.getConfigurationSection(path);
}
public boolean isString(String path) {
return config.isString(path);
}
public boolean isList(String path) {
return config.isList(path);
}
public List<Map<?, ?>> getMapList(String path) {
return config.getMapList(path);
}
public YamlConfiguration getConfig() {
return config;
}
public File getFile() {
return file;
}
public void setValue(String path, Object value) {
config.set(path, value);
}
//PROCCESSING
private void load() {
if (!file.exists()) {
Main.getInstance().saveResource(fileName, false);
try {
config.load(file);
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
config.load(file);
final InputStream in = BetterRTP.getInstance().getResource(fileName);
if (in != null) {
config.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(in)));
config.options().copyDefaults(true);
in.close();
}
config.save(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

View File

@@ -5,7 +5,8 @@ import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
private static Main instance;
private final Events events = new Events();
private final AddonsHandler addonsHandler = new AddonsHandler();
private final Files files = new Files();
@Override
public void onEnable() {
@@ -14,7 +15,8 @@ public class Main extends JavaPlugin {
}
void load() {
events.load();
files.load();
addonsHandler.load();
}
public static Main getInstance() {

View File

@@ -0,0 +1,28 @@
package me.SuperRonanCraft.BetterRTPAddons.flashBack;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import org.bukkit.event.EventHandler;
public class AddonFlashback implements Addon {
private Long time;
public MessagesFlashback msgs = new MessagesFlashback();
public boolean isEnabled() {
return Files.FILETYPE.EFFECTS.getBoolean("Enabled");
}
@Override
public void load() {
Files.FILETYPE file = Files.FILETYPE.EFFECTS;
this.time = file.getConfig().getLong("Time");
}
@EventHandler
void onTeleport(RTP_TeleportPostEvent e) {
System.out.println("Player " + e.getPlayer().getName() + " was rtp'd!");
new PlayerFlashback(this, e.getPlayer(), e.getOldLocation(), 20L * time);
}
}

View File

@@ -0,0 +1,17 @@
package me.SuperRonanCraft.BetterRTPAddons.flashBack;
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
import me.SuperRonanCraft.BetterRTPAddons.Files;
import org.bukkit.command.CommandSender;
public class MessagesFlashback implements AddonsMessages {
private static String preM = "Messages";
private Files.FILETYPE getLang() {
return Files.FILETYPE.EFFECTS;
}
public void getWarning(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Warning"));
}
}

View File

@@ -1,16 +1,18 @@
package me.SuperRonanCraft.BetterRTPAddons;
package me.SuperRonanCraft.BetterRTPAddons.flashBack;
import io.papermc.lib.PaperLib;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
public class PlayerFlashback {
Player p;
Location oldLoc;
AddonFlashback plugin;
PlayerFlashback(Player p, Location oldLoc, Long delayInTicks) {
public PlayerFlashback(AddonFlashback plugin, Player p, Location oldLoc, Long delayInTicks) {
this.plugin = plugin;
this.p = p;
this.oldLoc = oldLoc;
Bukkit.getScheduler().runTaskLater(Main.getInstance(), getTimedFlash(), delayInTicks);
@@ -18,8 +20,9 @@ public class PlayerFlashback {
private Runnable getTimedFlash() {
return () -> {
System.out.println("Player teleported back to old spot!");
plugin.msgs.getWarning(p);
PaperLib.teleportAsync(p, oldLoc);
};
}
}

View File

@@ -0,0 +1,2 @@
Enabled: false
Time: 120 #In seconds