From a8093f071c5611c2229dd41745edb54ce82d4446 Mon Sep 17 00:00:00 2001 From: Borys Kostka Date: Sun, 25 Apr 2021 23:11:44 +0200 Subject: [PATCH] Initial commit --- .gitignore | 2 + .idea/.gitignore | 3 + .idea/.name | 1 + .idea/artifacts/Lobby_control_jar.xml | 9 +++ .idea/misc.xml | 11 ++++ .idea/modules.xml | 8 +++ Lobby control.iml | 29 ++++++++ src/com/lubek/lobbycontrol/cmds/commands.java | 28 ++++++++ .../events/lobbycontrolevents.java | 66 +++++++++++++++++++ src/com/lubek/lobbycontrol/files/config.java | 43 ++++++++++++ src/com/lubek/lobbycontrol/files/jumps.java | 43 ++++++++++++ .../lubek/lobbycontrol/files/scoreboard.java | 37 +++++++++++ src/com/lubek/lobbycontrol/lobbycontrol.java | 45 +++++++++++++ src/com/lubek/lobbycontrol/stats/lcstats.java | 7 ++ src/config.yml | 22 +++++++ src/plugin.yml | 12 ++++ 16 files changed, 366 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/artifacts/Lobby_control_jar.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 Lobby control.iml create mode 100644 src/com/lubek/lobbycontrol/cmds/commands.java create mode 100644 src/com/lubek/lobbycontrol/events/lobbycontrolevents.java create mode 100644 src/com/lubek/lobbycontrol/files/config.java create mode 100644 src/com/lubek/lobbycontrol/files/jumps.java create mode 100644 src/com/lubek/lobbycontrol/files/scoreboard.java create mode 100644 src/com/lubek/lobbycontrol/lobbycontrol.java create mode 100644 src/com/lubek/lobbycontrol/stats/lcstats.java create mode 100644 src/config.yml create mode 100644 src/plugin.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..21b4487 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Project exclude paths +/out/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..63a6866 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Lobby control.iml \ No newline at end of file diff --git a/.idea/artifacts/Lobby_control_jar.xml b/.idea/artifacts/Lobby_control_jar.xml new file mode 100644 index 0000000..71f3af5 --- /dev/null +++ b/.idea/artifacts/Lobby_control_jar.xml @@ -0,0 +1,9 @@ + + + $PROJECT_DIR$/../Server/plugins + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7e90f9e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..547dbbb --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Lobby control.iml b/Lobby control.iml new file mode 100644 index 0000000..8feb542 --- /dev/null +++ b/Lobby control.iml @@ -0,0 +1,29 @@ + + + + + + + SPIGOT + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/lubek/lobbycontrol/cmds/commands.java b/src/com/lubek/lobbycontrol/cmds/commands.java new file mode 100644 index 0000000..b323667 --- /dev/null +++ b/src/com/lubek/lobbycontrol/cmds/commands.java @@ -0,0 +1,28 @@ +package com.lubek.lobbycontrol.cmds; + +import com.lubek.lobbycontrol.files.config; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.*; + +public class commands implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + String prefix_lc = ChatColor.BLUE +"[Lobby Control] "; + if (!(sender instanceof Player)) { + sender.sendMessage(prefix_lc+"only players can use this command"); + return true; + } + Player player = (Player) sender; + if (cmd.getName().equalsIgnoreCase("reloadlc")) { + config.reload(); + } + + + return true; + } +} diff --git a/src/com/lubek/lobbycontrol/events/lobbycontrolevents.java b/src/com/lubek/lobbycontrol/events/lobbycontrolevents.java new file mode 100644 index 0000000..5d3d30b --- /dev/null +++ b/src/com/lubek/lobbycontrol/events/lobbycontrolevents.java @@ -0,0 +1,66 @@ +package com.lubek.lobbycontrol.events; + +import com.lubek.lobbycontrol.files.config; +import com.lubek.lobbycontrol.files.jumps; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Particle; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.scoreboard.*; +import com.lubek.lobbycontrol.files.scoreboard; +import java.util.List; + +public class lobbycontrolevents implements Listener { + @EventHandler + public static void OnPlayerJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + jumps.get().addDefault(player.getName(),0); + jumps.get().options().copyDefaults(true); + jumps.save(); + scoreboard.resetscoreboard(player); + } + @EventHandler + public static void onWorldChange(PlayerChangedWorldEvent event) { + scoreboard.resetscoreboard(event.getPlayer()); + } + @EventHandler + public static void onPlayerWalk(PlayerMoveEvent event) { + Player player = event.getPlayer(); + PotionEffect potionEffect = new PotionEffect(PotionEffectType.JUMP, 25, 3); + List whitelist = config.get().getStringList("Whitelist"); + int x = player.getLocation().getBlockX(); + int y = player.getLocation().getBlockY(); + int z = player.getLocation().getBlockZ(); + Material block = player.getWorld().getBlockAt(x,y-1,z).getType(); + if(block.equals(Material.BLACK_WOOL)) { + for(int i = 0; i < whitelist.size(); i++) { + if (player.getWorld().getName().equals(whitelist.get(i))) { + + player.addPotionEffect(potionEffect); + } else { + if(config.get().getBoolean("Debug")) { + player.sendMessage("Else world index: "+i); + } + + } + } + } + if(player.getWorld().getBlockAt(x,y-2,z).getType().equals(Material.BLACK_WOOL)&& !player.isOnGround() && config.get().getBoolean("Particles")) { + player.getWorld().spawnParticle(Particle.TOTEM,x,y,z,5); + jumps.get().set(player.getName(),jumps.get().getInt(player.getName())+1); + jumps.get().options().copyDefaults(true); + jumps.save(); + scoreboard.resetscoreboard(player); + } + + } + +} diff --git a/src/com/lubek/lobbycontrol/files/config.java b/src/com/lubek/lobbycontrol/files/config.java new file mode 100644 index 0000000..cd7260e --- /dev/null +++ b/src/com/lubek/lobbycontrol/files/config.java @@ -0,0 +1,43 @@ +package com.lubek.lobbycontrol.files; + +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.io.IOException; + +public class config { + private static File file; + private static FileConfiguration customFile; + //finds or generates the custom config file + public static void setup(){ + file = new File(Bukkit.getServer().getPluginManager().getPlugin("LobbyControl").getDataFolder(), "config.yml"); + if(!file.exists()){ + try { + file.createNewFile(); + } + catch (IOException e) { + //owww + } + } + customFile = YamlConfiguration.loadConfiguration(file); + } + + public static FileConfiguration get(){ + return customFile; + } + + public static void save() { + try { + customFile.save(file); + } + catch (IOException e) { + System.out.println("Couldnt save file"); + } + } + + public static void reload(){ + customFile = YamlConfiguration.loadConfiguration(file); + } +} diff --git a/src/com/lubek/lobbycontrol/files/jumps.java b/src/com/lubek/lobbycontrol/files/jumps.java new file mode 100644 index 0000000..d42ab23 --- /dev/null +++ b/src/com/lubek/lobbycontrol/files/jumps.java @@ -0,0 +1,43 @@ +package com.lubek.lobbycontrol.files; + +import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.io.IOException; + +public class jumps { + private static File file; + private static FileConfiguration customFile; + //finds or generates the custom config file + public static void setup(){ + file = new File(Bukkit.getServer().getPluginManager().getPlugin("LobbyControl").getDataFolder(), "jumps.yml"); + if(!file.exists()){ + try { + file.createNewFile(); + } + catch (IOException e) { + //owww + } + } + customFile = YamlConfiguration.loadConfiguration(file); + } + + public static FileConfiguration get(){ + return customFile; + } + + public static void save() { + try { + customFile.save(file); + } + catch (IOException e) { + System.out.println("Couldnt save file"); + } + } + + public static void reload(){ + customFile = YamlConfiguration.loadConfiguration(file); + } +} diff --git a/src/com/lubek/lobbycontrol/files/scoreboard.java b/src/com/lubek/lobbycontrol/files/scoreboard.java new file mode 100644 index 0000000..ac524e0 --- /dev/null +++ b/src/com/lubek/lobbycontrol/files/scoreboard.java @@ -0,0 +1,37 @@ +package com.lubek.lobbycontrol.files; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.*; + +import java.util.List; + +public class scoreboard { + + public static void resetscoreboard(Player player) { + List scoreboardworlds = config.get().getStringList("ScoreboardWorld"); + for(int i = 0; i < scoreboardworlds.size(); i++) { + if (player.getWorld().getName().equals(scoreboardworlds.get(i))) { + + jumps.get().addDefault(player.getName(), 0); + jumps.get().options().copyDefaults(true); + jumps.save(); + ScoreboardManager m = Bukkit.getScoreboardManager(); + Scoreboard b = m.getNewScoreboard(); + Objective o = b.registerNewObjective("Gold", ""); + o.setDisplaySlot(DisplaySlot.SIDEBAR); + o.setDisplayName(ChatColor.GREEN + "[LUBEK SERVER]"); + Score Przywitanie = o.getScore("Witaj Drogi graczu"); + Score plr = o.getScore("Nazwa: " + player.getName()); + + Score diamond = o.getScore("Skoków: " + com.lubek.lobbycontrol.files.jumps.get().getInt(player.getName())); + Przywitanie.setScore(9); + plr.setScore(8); + diamond.setScore(7); + + player.setScoreboard(b); + } + } + } +} diff --git a/src/com/lubek/lobbycontrol/lobbycontrol.java b/src/com/lubek/lobbycontrol/lobbycontrol.java new file mode 100644 index 0000000..011d3f8 --- /dev/null +++ b/src/com/lubek/lobbycontrol/lobbycontrol.java @@ -0,0 +1,45 @@ +package com.lubek.lobbycontrol; +import com.lubek.lobbycontrol.cmds.commands; +import com.lubek.lobbycontrol.events.lobbycontrolevents; +import org.bukkit.ChatColor; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.util.List; + +public class lobbycontrol extends JavaPlugin { + @Override + public void onEnable() { + com.lubek.lobbycontrol.stats.lcstats.setup(); + commands allcommands = new commands(); + getServer().getPluginManager().registerEvents(new lobbycontrolevents(), this); + getCommand("reloadlc").setExecutor(allcommands); + getServer().getConsoleSender().sendMessage(ChatColor.GREEN+"[Lobby Control]: Plugin started"); + getConfig().options().copyDefaults(); + saveDefaultConfig(); + + com.lubek.lobbycontrol.files.config.setup(); + com.lubek.lobbycontrol.files.config.get().options().copyDefaults(true); + Plugin[] Plugins = getServer().getPluginManager().getPlugins(); + for(int i = 0; i < Plugins.length; i++) { + if (Plugins[i].getName().equals("Sandbox")) { + com.lubek.lobbycontrol.files.config.get().addDefault("SandboxWorld","World"); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-gold-X",86); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-gold-Y",222); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-gold-Z",000); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-diamond-X",86); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-diamond-Y",222); + com.lubek.lobbycontrol.files.config.get().addDefault("Sandbox-diamond-Z",000); + } + } + com.lubek.lobbycontrol.files.config.save(); + com.lubek.lobbycontrol.files.jumps.setup(); + com.lubek.lobbycontrol.files.jumps.get().options().copyDefaults(true); + com.lubek.lobbycontrol.files.jumps.save(); + + } + public void onDisable() { + getServer().getConsoleSender().sendMessage(ChatColor.RED+"[Lobby Control]: Plugin disabled"); + } +} diff --git a/src/com/lubek/lobbycontrol/stats/lcstats.java b/src/com/lubek/lobbycontrol/stats/lcstats.java new file mode 100644 index 0000000..71def79 --- /dev/null +++ b/src/com/lubek/lobbycontrol/stats/lcstats.java @@ -0,0 +1,7 @@ +package com.lubek.lobbycontrol.stats; + +public class lcstats { + public static void setup() { + int jumps; + } +} diff --git a/src/config.yml b/src/config.yml new file mode 100644 index 0000000..bfc0147 --- /dev/null +++ b/src/config.yml @@ -0,0 +1,22 @@ + +# bbbbbbbb +# LLLLLLLLLLL b::::::b kkkkkkkk +# L:::::::::L b::::::b k::::::k +# L:::::::::L b::::::b k::::::k +# LL:::::::LL b:::::b k::::::k +# L:::::L uuuuuu uuuuuu b:::::bbbbbbbbb eeeeeeeeeeee k:::::k kkkkkkk +# L:::::L u::::u u::::u b::::::::::::::bb ee::::::::::::ee k:::::k k:::::k +# L:::::L u::::u u::::u b::::::::::::::::b e::::::eeeee:::::eek:::::k k:::::k +# L:::::L u::::u u::::u b:::::bbbbb:::::::be::::::e e:::::ek:::::k k:::::k +# L:::::L u::::u u::::u b:::::b b::::::be:::::::eeeee::::::ek::::::k:::::k +# L:::::L u::::u u::::u b:::::b b:::::be:::::::::::::::::e k:::::::::::k +# L:::::L u::::u u::::u b:::::b b:::::be::::::eeeeeeeeeee k:::::::::::k +# L:::::L LLLLLLu:::::uuuu:::::u b:::::b b:::::be:::::::e k::::::k:::::k +# LL:::::::LLLLLLLLL:::::Lu:::::::::::::::uub:::::bbbbbb::::::be::::::::e k::::::k k:::::k +# L::::::::::::::::::::::L u:::::::::::::::ub::::::::::::::::b e::::::::eeeeeeee k::::::k k:::::k +# L::::::::::::::::::::::L uu::::::::uu:::ub:::::::::::::::b ee:::::::::::::e k::::::k k:::::k +# LLLLLLLLLLLLLLLLLLLLLLLL uuuuuuuu uuuubbbbbbbbbbbbbbbb eeeeeeeeeeeeee kkkkkkkk kkkkkkk +Whitelist: ['EXAMPLE','EXAMPLE'] +Particles: True +ScoreboardWorld: ['world','world'] +Debug: False \ No newline at end of file diff --git a/src/plugin.yml b/src/plugin.yml new file mode 100644 index 0000000..5211833 --- /dev/null +++ b/src/plugin.yml @@ -0,0 +1,12 @@ +name: LobbyControl +main: com.lubek.lobbycontrol.lobbycontrol +version: 1.1 +author: lubek +api-version: 1.16 +commands: + reloadlc: + description: Removes world from blacklist + usage: / + permission: lc.rmworld + aliases: + - rlc \ No newline at end of file