Skip to content
This repository has been archived by the owner on Nov 3, 2024. It is now read-only.

Commit

Permalink
fix 2.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Synchroneyes committed Jul 25, 2020
1 parent 3ddea5d commit 71c9cce
Show file tree
Hide file tree
Showing 31 changed files with 322 additions and 73 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>org.apache.maven.plugins</groupId>
<artifactId>MineralContest</artifactId>
<version>2.3.0.1</version>
<version>2.4.1</version>
<packaging>jar</packaging>

<name>Mineral Contest</name>
Expand Down
27 changes: 16 additions & 11 deletions src/main/java/fr/synchroneyes/groups/Core/Groupe.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import fr.synchroneyes.mineral.Core.Game.Game;
import fr.synchroneyes.mineral.Core.House;
import fr.synchroneyes.mineral.Core.Player.BaseItem.PlayerBaseItem;
import fr.synchroneyes.mineral.Core.Referee.Referee;
import fr.synchroneyes.mineral.Kits.KitManager;
import fr.synchroneyes.mineral.Settings.GameSettings;
import fr.synchroneyes.mineral.Shop.Players.PlayerBonus;
Expand All @@ -20,8 +19,9 @@
import fr.synchroneyes.mineral.Utils.DisconnectedPlayer;
import fr.synchroneyes.mineral.Utils.Player.CouplePlayer;
import fr.synchroneyes.mineral.mineralcontest;
import lombok.AccessLevel;
import lombok.Getter;
import org.bukkit.Location;
import lombok.Setter;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Item;
Expand All @@ -40,6 +40,9 @@ public class Groupe {
private LinkedList<Player> admins;
private LinkedList<Player> joueurs;
private LinkedList<Player> joueursInvites;


@Setter(AccessLevel.PROTECTED)
private World gameWorld;
private MapVote mapVote;

Expand Down Expand Up @@ -202,21 +205,22 @@ public boolean chargerMonde(String nomMonde) {
try {

sendToEveryone(mineralcontest.prefixGroupe + "Chargement de la map \"" + nomMonde + "\" en cours ...");
this.gameWorld = worldLoader.chargerMonde(nomMonde, getIdentifiant());
this.gameWorld.setAutoSave(false);
//this.gameWorld = worldLoader.chargerMonde(nomMonde, getIdentifiant());
//this.gameWorld.setAutoSave(false);

worldLoader.chargerMondeThreade(nomMonde, this);


} catch (Exception e) {
sendToadmin(mineralcontest.prefixErreur + " Impossible de charger le monde. Erreur: " + e.getMessage());
e.printStackTrace();
return false;
}

if (gameWorld == null) {
sendToadmin(mineralcontest.prefixErreur + " Impossible de charger le monde.");
return false;
}


Location worldSpawnLocation = gameWorld.getSpawnLocation();

/*Location worldSpawnLocation = gameWorld.getSpawnLocation();
try {
if (worldSpawnLocation.getX() == WorldLoader.defaultX && worldSpawnLocation.getY() == WorldLoader.defaultY && worldSpawnLocation.getZ() == WorldLoader.defaultZ)
Expand All @@ -241,10 +245,11 @@ public boolean chargerMonde(String nomMonde) {
setMapName(nomMonde);
if (this.mapVote != null) this.mapVote.clearVotes();
if (this.mapVote != null) this.mapVote.clearVotes();*/
return true;
}


/**
* Décharge un monde
*
Expand Down Expand Up @@ -490,7 +495,7 @@ public void playerHaveReconnected(Player p) {

// On remet le joueur dans son équipe
if (infoJoueur.getOldPlayerTeam() != null)
infoJoueur.getOldPlayerTeam().addPlayerToTeam(p, true, false);
infoJoueur.getOldPlayerTeam().addPlayerToTeam(p, false);

// Si le joueur était mort, on le remets
if (infoJoueur.wasPlayerDead()) {
Expand Down
72 changes: 72 additions & 0 deletions src/main/java/fr/synchroneyes/groups/Core/WorldLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import fr.synchroneyes.mineral.Core.Coffre.Coffres.CoffreArene;
import fr.synchroneyes.mineral.Core.Game.Game;
import fr.synchroneyes.mineral.Core.House;
import fr.synchroneyes.mineral.Core.Referee.Referee;
import fr.synchroneyes.mineral.Settings.GameSettings;
import fr.synchroneyes.mineral.Shop.NPCs.BonusSeller;
import fr.synchroneyes.mineral.Shop.ShopManager;
Expand All @@ -17,6 +18,8 @@
import org.bukkit.block.Block;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -116,6 +119,75 @@ private World doChargerMonde(String nomMap, String identifiant) throws Exception

}


/**
* Permet de charger un monde dans un thread séparé
*
* @param nomMap - nom de la map à charger
* @param groupe - groupe jouant cette carte
*/
protected void chargerMondeThreade(String nomMap, Groupe groupe) {

BukkitRunnable chargementMap = new BukkitRunnable() {
@Override
public void run() {
try {
World mondeCharge = doChargerMonde(nomMap, groupe.getIdentifiant());

mondeCharge.setAutoSave(false);
groupe.setGameWorld(mondeCharge);

Location worldSpawnLocation = mondeCharge.getSpawnLocation();

try {
if (worldSpawnLocation.getX() == WorldLoader.defaultX && worldSpawnLocation.getY() == WorldLoader.defaultY && worldSpawnLocation.getZ() == WorldLoader.defaultZ)
worldSpawnLocation = groupe.getGame().getArene().getCoffre().getLocation();
} catch (Exception e) {
worldSpawnLocation = mondeCharge.getSpawnLocation();
}


for (Player joueur : groupe.getPlayers()) {
joueur.getInventory().clear();

// Si le joueur est un arbitre, on lui donne le livre
if (groupe.getGame().isReferee(joueur))
joueur.getInventory().setItemInMainHand(Referee.getRefereeItem());

// Sinon, on lui donne le livre de selection d'équipe!
else if (groupe.getParametresPartie().getCVAR("mp_randomize_team").getValeurNumerique() == 0) {
joueur.getInventory().setItemInMainHand(Game.getTeamSelectionItem());
joueur.sendMessage(groupe.getParametresPartie().getCVAR("mp_randomize_team").getValeurNumerique() + "");
}
joueur.teleport(worldSpawnLocation);
joueur.sendMessage(mineralcontest.prefixPrive + Lang.set_yourself_as_ready_to_start_game.toString());
}

groupe.setMapName(nomMonde);


if (groupe.getMapVote() != null) groupe.getMapVote().clearVotes();


} catch (Exception e) {
e.printStackTrace();
}
}
};


File dossierMaps = new File(folder_name);

File[] maps = dossierMaps.listFiles();

for (File map : maps)
if (map.isDirectory())
if (nomMap.equalsIgnoreCase(map.getName())) {
chargementMap.runTask(mineralcontest.plugin);
break;
}
}

public void supprimerMonde(World world) {
String nomMonde = world.getName();
try {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/fr/synchroneyes/groups/Menus/MapItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public MapItem(String customName, Groupe playerGroup, InventoryTemplate inventai
public void performClick(Player joueur) {

groupe.getMapVote().enregistrerVoteJoueur(customName, joueur);
joueur.closeInventory();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
partie.removeReferee((Player) sender, false);
}

selectedHouse.getTeam().addPlayerToTeam(player, false, !(partie.isGameStarted() || partie.isGamePaused()));
selectedHouse.getTeam().addPlayerToTeam(player, !(partie.isGameStarted() || partie.isGamePaused()));
} catch (Exception e) {
e.printStackTrace();
Error.Report(e, partie);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,14 @@ public boolean performCommand(CommandSender commandSender, String command, Strin

}

if (cvar.getCommand().equalsIgnoreCase("enable_kits")) {
if (cvar.getValeurNumerique() == 1) {
playerGroup.getKitManager().setKitsEnabled(true);
} else {
playerGroup.getKitManager().setKitsEnabled(false);
}
}

return false;
}

Expand Down
30 changes: 22 additions & 8 deletions src/main/java/fr/synchroneyes/mineral/Core/Game/Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,9 @@ public void setPlayerReady(Player p) throws Exception {
// Si l'option de random est active, on génère les équipes aléatoirement
if (groupe.getParametresPartie().getCVAR("mp_randomize_team").getValeurNumerique() == 1) {
randomizeTeam(true);
demarrerPartie(false);
if (!groupe.getKitManager().doesAllPlayerHaveAKit(false))
groupe.getKitManager().openMenuToEveryone(false);

return;
} else {

Expand All @@ -388,7 +390,8 @@ public void setPlayerReady(Player p) throws Exception {
// Sinon, la game peut démarrer
else {
// On va ouvrir le menu de selection de kit à tous les joueurs, sauf les arbitres
groupe.getKitManager().openMenuToEveryone(false);
if (!groupe.getKitManager().doesAllPlayerHaveAKit(false))
groupe.getKitManager().openMenuToEveryone(false);

}
}
Expand Down Expand Up @@ -496,7 +499,7 @@ public void removeReferee(Player player, boolean switchToTeam) throws Exception
//PlayerBaseItem.givePlayerItems(player, PlayerBaseItem.onFirstSpawnName);


if (isGameStarted() || isPreGame() && switchToTeam) setPlayerRandomTeam(player);
if ((isGameStarted() || isPreGame()) && switchToTeam) setPlayerRandomTeam(player);
}

}
Expand All @@ -511,7 +514,7 @@ public void setPlayerRandomTeam(Player p) {

if (getPlayerTeam(p) != null) getPlayerTeam(p).removePlayer(p);
try {
equipes.get(nombreAleatoire).getTeam().addPlayerToTeam(p, true, true);
equipes.get(nombreAleatoire).getTeam().addPlayerToTeam(p, true);
} catch (Exception e) {
e.printStackTrace();
}
Expand Down Expand Up @@ -620,13 +623,15 @@ public void run() {
double y = Math.pow(firstDoorBlock.getZ() - playerLocation.getZ(), 2.0);

// Le joueur est trop loin de sa maison ...
if (Math.sqrt(x + y) > 5) continue;
if (Math.sqrt(x + y) > 5) {
maison.getPorte().playerIsNotNearDoor(online);
continue;
}

// Le joueur est proche, on vérifie si il peut ouvrir la porte ou non
for (DisplayBlock blockDePorte : maison.getPorte().getPorte()) {
if (Radius.isBlockInRadius(blockDePorte.getPosition(), online.getLocation(), rayonPorte)) {
maison.getPorte().playerIsNearDoor(online);
break;
} else {
//blockDePorte.display();
maison.getPorte().playerIsNotNearDoor(online);
Expand Down Expand Up @@ -1061,6 +1066,15 @@ public boolean demarrerPartie(boolean forceGameStart) throws Exception {
PreGameTimeLeft = groupe.getParametresPartie().getCVAR("pre_game_timer").getValeurNumerique();

if (!allPlayerHaveTeam()) randomizeTeam(forceGameStart);

// Si les kits sont actif, on met tout le monde ready, et on ouvre le menu
if (groupe.getKitManager().isKitsEnabled()) {

// Pour chaque joueur
for (Player joueur : groupe.getPlayers())
setPlayerReady(joueur);
return true;
}
}


Expand Down Expand Up @@ -1206,7 +1220,7 @@ public void randomizeTeam(boolean force) throws Exception {

Player joueuraAttribuer = joueursEnAttente.get(numeroJoueurRandom);
House equipeAAttribuer = equipesDispo.get(numeroEquipeRandom);
equipeAAttribuer.getTeam().addPlayerToTeam(joueuraAttribuer, false, true);
equipeAAttribuer.getTeam().addPlayerToTeam(joueuraAttribuer, true);

equipesDispo.remove(numeroEquipeRandom);
joueursEnAttente.remove(numeroJoueurRandom);
Expand All @@ -1222,7 +1236,7 @@ public void switchPlayer(Player joueur, String teamName) throws Exception {
for (House house : equipes) {
if (ChatColorString.toString(house.getTeam().getCouleur()).equalsIgnoreCase(teamName)) {
if (team != null) team.removePlayer(joueur);
house.getTeam().addPlayerToTeam(joueur, true, false);
house.getTeam().addPlayerToTeam(joueur, false);
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public void performClick(Player joueur) {

try {

this.team.addPlayerToTeam(joueur, true, !playerGroup.getGame().isGameStarted());
this.team.addPlayerToTeam(joueur, !playerGroup.getGame().isGameStarted());

} catch (Exception e) {
e.printStackTrace();
Expand Down
24 changes: 18 additions & 6 deletions src/main/java/fr/synchroneyes/mineral/Events/ChestEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
import org.bukkit.entity.Player;
import org.bukkit.entity.minecart.StorageMinecart;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ItemSpawnEvent;
Expand Down Expand Up @@ -172,16 +173,27 @@ public void onChestOpen(InventoryOpenEvent event) throws Exception {
return;
}

if (event.getInventory().getHolder() instanceof Chest) {
if (event.getInventory().getHolder() instanceof Chest || event.getInventory().getHolder() instanceof StorageMinecart) {

Chest openedChest = (Chest) event.getInventory().getHolder();
Block openedChestBlock = openedChest.getBlock();

// the inventory opened comes from a chest.
if (!game.isThisBlockAGameChest(openedChestBlock)) {
openedChest.getInventory().clear();
if (event.getInventory().getHolder() instanceof Chest) {
Chest openedChest = (Chest) event.getInventory().getHolder();
Block openedChestBlock = openedChest.getBlock();

// the inventory opened comes from a chest.
if (!game.isThisBlockAGameChest(openedChestBlock)) {
openedChest.getInventory().clear();
return;
}
}

if (event.getInventory().getHolder() instanceof StorageMinecart) {
StorageMinecart storageMinecart = (StorageMinecart) event.getInventory().getHolder();
storageMinecart.getInventory().clear();
return;
}


}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ public void onPlayerJoin(PlayerJoinEvent event) throws Exception {

// Le jouuer est OP
defaultGroupe.addAdmin(joueur);
defaultGroupe.getGame().addReferee(joueur);
} else {
// Le joueur n'est pas OP
defaultGroupe.addJoueur(joueur);
Expand Down
Loading

0 comments on commit 71c9cce

Please sign in to comment.