mirror of
https://github.com/zDevelopers/ImageOnMap.git
synced 2025-01-25 00:31:25 +01:00
Ajout de paramètres pour limiter le nombre de map par serveur et par joueur
This commit is contained in:
parent
3655cffd38
commit
770cff2fa8
@ -21,6 +21,9 @@ public final class ImageOnMap extends JavaPlugin
|
||||
// On ajoute si besoin les params par défaut du plugin
|
||||
ImgUtility.CreeSectionConfig(this);
|
||||
|
||||
System.out.println(ImgUtility.getNombreDeMaps(this));
|
||||
System.out.println(ImgUtility.getNombreDeMapsParJoueur(this, "moribus"));
|
||||
|
||||
if(dossierCree)
|
||||
{
|
||||
getCommand("tomap").setExecutor(new ImageRenduCommande(this));
|
||||
|
@ -14,13 +14,15 @@ public class ImageRenduCommande implements CommandExecutor
|
||||
{
|
||||
|
||||
Player joueur;
|
||||
boolean renderName;
|
||||
boolean renderName, imgSvg;
|
||||
ImageOnMap ca;
|
||||
boolean imgSvg;
|
||||
int nbMapServeur, nbMapJoueur;
|
||||
|
||||
public ImageRenduCommande(ImageOnMap plugin)
|
||||
{
|
||||
ca = plugin;
|
||||
nbMapServeur = ca.getConfig().getInt("Limit-map-by-server");
|
||||
nbMapJoueur = ca.getConfig().getInt("Limit-map-by-player");
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -67,10 +69,29 @@ public class ImageRenduCommande implements CommandExecutor
|
||||
else
|
||||
renderName = false;
|
||||
|
||||
imgSvg = true;
|
||||
// On crée une map
|
||||
Rendu ren = new Rendu(arg3[0], imgSvg, ca, renderName);
|
||||
// on crée une carte
|
||||
MapView carte = Bukkit.getMap(joueur.getItemInHand().getDurability());
|
||||
|
||||
// On vérifie que le nombre limite de map par serveur n'a pas été atteint.
|
||||
// Si la carte est déjà inscrite dans le fichier (== contient une image), on outrepasse la vérification
|
||||
// vu que le nb de map n'augmentera pas.
|
||||
// Si la limite = 0, on ignore cette vérification.
|
||||
if(!ImgUtility.EstDansFichier(ca, carte.getId()) && nbMapServeur != 0 && ImgUtility.getNombreDeMaps(ca) >= nbMapServeur)
|
||||
{
|
||||
joueur.sendMessage(ChatColor.RED + "The limit of map's number per server (" + nbMapServeur + ") have been reached !");
|
||||
return true;
|
||||
}
|
||||
|
||||
// Même chose, mais par joueur cette fois
|
||||
if(!ImgUtility.EstDansFichier(ca, carte.getId()) && nbMapJoueur != 0 && ImgUtility.getNombreDeMapsParJoueur(ca, joueur.getName()) >= nbMapJoueur)
|
||||
{
|
||||
joueur.sendMessage(ChatColor.RED + "You've reached the limit of maps per player (" + nbMapJoueur + ") ! Please delete or reuse one of your custom map.");
|
||||
return true;
|
||||
}
|
||||
|
||||
imgSvg = true;
|
||||
// On ajoute un rendu
|
||||
Rendu ren = new Rendu(arg3[0], imgSvg, ca, renderName);
|
||||
Rendu.SupprRendu(carte);
|
||||
carte.addRenderer(ren);
|
||||
joueur.setItemInHand(new ItemStack(Material.MAP, 1, carte.getId()));
|
||||
|
@ -50,14 +50,17 @@ public class ImageSupprCommande implements CommandExecutor
|
||||
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||
for (String s: cle)
|
||||
{
|
||||
if(carte.getId() == Short.parseShort(plugin.getConfig().getStringList(s).get(0)))
|
||||
if(plugin.getConfig().getStringList(s).size() >= 3)
|
||||
{
|
||||
Rendu.SupprRendu(carte);
|
||||
plugin.getConfig().set(s, null);
|
||||
plugin.saveConfig();
|
||||
new File("./plugins/ImageOnMap/" + s + ".png").delete();
|
||||
joueur.sendMessage("L'image a bien été supprimée");
|
||||
return true;
|
||||
if(carte.getId() == Short.parseShort(plugin.getConfig().getStringList(s).get(0)))
|
||||
{
|
||||
Rendu.SupprRendu(carte);
|
||||
plugin.getConfig().set(s, null);
|
||||
plugin.saveConfig();
|
||||
new File("./plugins/ImageOnMap/" + s + ".png").delete();
|
||||
joueur.sendMessage("L'image a bien été supprimée");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package fr.moribus.ImageOnMap;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.BlockCommandSender;
|
||||
@ -48,4 +49,58 @@ public class ImgUtility
|
||||
plugin.saveConfig();
|
||||
|
||||
}
|
||||
|
||||
static int getNombreDeMaps(ImageOnMap plugin)
|
||||
{
|
||||
int nombre = 0;
|
||||
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||
for (String s: cle)
|
||||
{
|
||||
if(plugin.getConfig().getStringList(s).size() >= 3)
|
||||
{
|
||||
nombre++;
|
||||
}
|
||||
}
|
||||
return nombre;
|
||||
}
|
||||
|
||||
static int getNombreDeMapsParJoueur(ImageOnMap plugin, String pseudo)
|
||||
{
|
||||
int nombre = 0;
|
||||
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||
for (String s: cle)
|
||||
{
|
||||
if(plugin.getConfig().getStringList(s).size() >= 3 && plugin.getConfig().getStringList(s).get(2).contentEquals(pseudo))
|
||||
{
|
||||
nombre++;
|
||||
}
|
||||
}
|
||||
return nombre;
|
||||
}
|
||||
|
||||
static boolean EstDansFichier(ImageOnMap plugin, short id)
|
||||
{
|
||||
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||
for (String s: cle)
|
||||
{
|
||||
if(plugin.getConfig().getStringList(s).size() >= 3 && Short.parseShort(plugin.getConfig().getStringList(s).get(0)) == id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean EstDansFichier(ImageOnMap plugin, short id, String pseudo)
|
||||
{
|
||||
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||
for (String s: cle)
|
||||
{
|
||||
if(plugin.getConfig().getStringList(s).size() >= 3 && Short.parseShort(plugin.getConfig().getStringList(s).get(0)) == id && plugin.getConfig().getStringList(s).get(2).contentEquals(pseudo))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user