Skip to content

Commit

Permalink
Merge pull request #14 from efrei-craft/development
Browse files Browse the repository at this point in the history
bump to 1.0.6
  • Loading branch information
Niilyx authored Oct 28, 2022
2 parents 8f27ba2 + 0658e36 commit 5964aea
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 37 deletions.
25 changes: 16 additions & 9 deletions src/main/java/fr/efreicraft/eclobby/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,22 @@

import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import fr.efreicraft.eclobby.commands.Join;
import fr.efreicraft.eclobby.commands.Lobby;
import fr.efreicraft.eclobby.commands.Menu;
import fr.efreicraft.eclobby.listeners.*;
import fr.efreicraft.eclobby.utils.Utils;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import fr.efreicraft.eclobby.commands.*;
import fr.efreicraft.eclobby.listeners.*;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandExecutor;

import java.util.Collections;
import java.util.Objects;
Expand Down Expand Up @@ -44,6 +46,7 @@ public void onEnable() {
registerCommand("lobby", new Lobby());
registerCommand("join", new Join());
registerCommand("menu", new Menu());

for (Player player : Bukkit.getOnlinePlayers()) {
fr.efreicraft.eclobby.utils.HUDManager.setScoreboard(player);
Location loc = player.getLocation();
Expand All @@ -64,6 +67,13 @@ void registerCommand(String command, CommandExecutor executor) {
}

public static void sendPlayerToServer(Player player, String server) {
if (!player.hasPermission("server." + server.toLowerCase())) {
Component nope = Component.text("Vous ne pouvez pas aller sur ce serveur !").color(NamedTextColor.RED);
player.sendMessage(nope);
INSTANCE.getLogger().info(player.getName() + " tried to join " + server + " but doesn't have permission to do so.");
return;
}

ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("Connect");
out.writeUTF(server);
Expand All @@ -76,13 +86,10 @@ void setupBoussole() {
ItemMeta meta = menuBoussole.getItemMeta();

meta.displayName(Component.text("Menu", NamedTextColor.GREEN, TextDecoration.BOLD));
meta.lore(Collections.singletonList(Component.text(colorize("&a&lClic droit pour ouvrir le menu !"))));
meta.lore(Collections.singletonList(Component.text(Utils.colorize("&a&lClic droit pour ouvrir le menu !"))));
menuBoussole.setItemMeta(meta);

Login.menuBoussole = menuBoussole;
}

public static String colorize(String msg) {
return ChatColor.translateAlternateColorCodes('&', msg);
}
}
15 changes: 12 additions & 3 deletions src/main/java/fr/efreicraft/eclobby/listeners/Click.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package fr.efreicraft.eclobby.listeners;

import net.kyori.adventure.text.Component;
import fr.efreicraft.eclobby.utils.Utils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand All @@ -12,11 +13,19 @@
import org.bukkit.event.player.PlayerInteractEvent;

public class Click implements Listener {

// D'où à où s'étendent les banrooms?
final Location corner1 = new Location(Bukkit.getServer().getWorld("world"),32, 300, 100);
final Location corner2 = new Location(Bukkit.getServer().getWorld("world"), -32, 210, -100);

@EventHandler
public void onClick(PlayerInteractEvent event) {
if (event.getPlayer().getGameMode() == GameMode.ADVENTURE) {
// Cancel all click events
event.setCancelled(true);
if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType().name().contains("_PLATE")) {
if (Utils.isInside(event.getPlayer().getLocation(), corner1, corner2))
event.setCancelled(false);
} else
event.setCancelled(true);
}
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) { // If player is right-clicking
if (event.getItem() != null) { // If item in player's hand is not null
Expand Down
30 changes: 14 additions & 16 deletions src/main/java/fr/efreicraft/eclobby/listeners/Login.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
package fr.efreicraft.eclobby.listeners;

import fr.efreicraft.eclobby.Main;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.CompassMeta;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.Collections;

import static fr.efreicraft.eclobby.Main.colorize;
import org.bukkit.scheduler.BukkitRunnable;

public class Login implements Listener {

Expand All @@ -34,13 +25,20 @@ public void onPlayerJoin(PlayerJoinEvent event) {
}
player.teleport(new Location(player.getWorld(), 0.5, 1, 0.5, 90, 0));
}, 1L);
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.INSTANCE, () -> {
fr.efreicraft.eclobby.utils.HUDManager.setScoreboard(player);
Location loc = player.getLocation();
if (loc.getY() < -30) {
player.teleport(new Location(player.getWorld(), 0.5, 1, 0.5, 90, 0));

BukkitRunnable runnable = new BukkitRunnable() {
@Override
public void run() {
fr.efreicraft.eclobby.utils.HUDManager.setScoreboard(player);
Location loc = player.getLocation();
if (loc.getY() < -30) {
player.teleport(new Location(player.getWorld(), 0.5, 1, 0.5, 90, 0));
}
}
}, 0L, 20L);
};
runnable.run();

runnable.runTaskTimer(Main.INSTANCE,0,20L);

player.getInventory().setItem(0, menuBoussole);
}
Expand Down
12 changes: 5 additions & 7 deletions src/main/java/fr/efreicraft/eclobby/utils/HUDManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,20 @@
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
import org.bukkit.scoreboard.*;

public class HUDManager {
public static void setScoreboard(Player player) {
ScoreboardManager manager = Bukkit.getScoreboardManager();
player.setScoreboard(manager.getNewScoreboard());

final Scoreboard board = manager.getNewScoreboard();
final Objective objective = board.registerNewObjective("efreicraft-" + player.getName(), "dummy",
final Objective objective = board.registerNewObjective("efreicraft-" + player.getName(), Criteria.DUMMY,
Component.text(" §e§lEFREI CRAFT "));
objective.setDisplaySlot(org.bukkit.scoreboard.DisplaySlot.SIDEBAR);
Score score10 = objective.getScore("§r ");
score10.setScore(9);
Score score9 = objective.getScore("§7Votre rôle : " + player.getDisplayName().split("§l")[0].split("\\[")[0] + player.getDisplayName().split("\\[")[1].split("]")[0]);
// Score score9 = objective.getScore("§7Votre rôle : " + player.getDisplayName().split("§l")[0].split("\\[")[0] + player.getDisplayName().split("\\[")[1].split("]")[0]);
Score score9 = objective.getScore("§7Votre rôle : " + player.getDisplayName().replaceAll("§l|\\[|\\].*", ""));
score9.setScore(8);
Score score8 = objective.getScore("§r ");
score8.setScore(7);
Expand Down
36 changes: 36 additions & 0 deletions src/main/java/fr/efreicraft/eclobby/utils/Utils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package fr.efreicraft.eclobby.utils;

import org.bukkit.ChatColor;
import org.bukkit.Location;

/**
* Classe générique utilitaire
*/
public class Utils {

/**
* @param location the location that is checked
* @param corner1 one of the corner of the bounding box created by corner1 and corner2
* @param corner2 the other one of the corner of the bounding box created by corner1 and corner2
* @return {@code true} if location is inside the bounding box
*/
public static boolean isInside(Location location, Location corner1, Location corner2) {
double x = location.getX();
double y = location.getY();
double z = location.getZ();

return (inRange(x, corner1.getX(), corner2.getX())) &&
(inRange(y, corner1.getY(), corner2.getY())) &&
(inRange(z, corner1.getZ(), corner2.getZ()));
}

// Dites moi dans quel monde ça existe pas cette fonction
public static boolean inRange(double x, double a, double b) {
return Math.min(a,b) <= x
&& Math.max(a,b) >= x;
}

public static String colorize(String msg) {
return ChatColor.translateAlternateColorCodes('&', msg);
}
}
4 changes: 2 additions & 2 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ name: ECLobby
version: '${version}'
main: fr.efreicraft.eclobby.Main
api-version: 1.19
authors: [ DocSystem ]
authors: [ DocSystem, Niilyx ]
description: Efrei Craft Lobby Plugin
website: https://github.com/efrei-craft/eclobby

loadbefore: # load eclobby before ECATUP
depend: # load eclobby AFTER ECATUP
- ECATUP

commands:
Expand Down

0 comments on commit 5964aea

Please sign in to comment.