mirror of
https://github.com/zDevelopers/ImageOnMap.git
synced 2025-01-26 09:11:27 +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
|
// On ajoute si besoin les params par défaut du plugin
|
||||||
ImgUtility.CreeSectionConfig(this);
|
ImgUtility.CreeSectionConfig(this);
|
||||||
|
|
||||||
|
System.out.println(ImgUtility.getNombreDeMaps(this));
|
||||||
|
System.out.println(ImgUtility.getNombreDeMapsParJoueur(this, "moribus"));
|
||||||
|
|
||||||
if(dossierCree)
|
if(dossierCree)
|
||||||
{
|
{
|
||||||
getCommand("tomap").setExecutor(new ImageRenduCommande(this));
|
getCommand("tomap").setExecutor(new ImageRenduCommande(this));
|
||||||
|
@ -14,13 +14,15 @@ public class ImageRenduCommande implements CommandExecutor
|
|||||||
{
|
{
|
||||||
|
|
||||||
Player joueur;
|
Player joueur;
|
||||||
boolean renderName;
|
boolean renderName, imgSvg;
|
||||||
ImageOnMap ca;
|
ImageOnMap ca;
|
||||||
boolean imgSvg;
|
int nbMapServeur, nbMapJoueur;
|
||||||
|
|
||||||
public ImageRenduCommande(ImageOnMap plugin)
|
public ImageRenduCommande(ImageOnMap plugin)
|
||||||
{
|
{
|
||||||
ca = plugin;
|
ca = plugin;
|
||||||
|
nbMapServeur = ca.getConfig().getInt("Limit-map-by-server");
|
||||||
|
nbMapJoueur = ca.getConfig().getInt("Limit-map-by-player");
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@ -67,10 +69,29 @@ public class ImageRenduCommande implements CommandExecutor
|
|||||||
else
|
else
|
||||||
renderName = false;
|
renderName = false;
|
||||||
|
|
||||||
imgSvg = true;
|
// on crée une carte
|
||||||
// On crée une map
|
|
||||||
Rendu ren = new Rendu(arg3[0], imgSvg, ca, renderName);
|
|
||||||
MapView carte = Bukkit.getMap(joueur.getItemInHand().getDurability());
|
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);
|
Rendu.SupprRendu(carte);
|
||||||
carte.addRenderer(ren);
|
carte.addRenderer(ren);
|
||||||
joueur.setItemInHand(new ItemStack(Material.MAP, 1, carte.getId()));
|
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);
|
Set<String> cle = plugin.getConfig().getKeys(false);
|
||||||
for (String s: cle)
|
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);
|
if(carte.getId() == Short.parseShort(plugin.getConfig().getStringList(s).get(0)))
|
||||||
plugin.getConfig().set(s, null);
|
{
|
||||||
plugin.saveConfig();
|
Rendu.SupprRendu(carte);
|
||||||
new File("./plugins/ImageOnMap/" + s + ".png").delete();
|
plugin.getConfig().set(s, null);
|
||||||
joueur.sendMessage("L'image a bien été supprimée");
|
plugin.saveConfig();
|
||||||
return true;
|
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;
|
package fr.moribus.ImageOnMap;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.BlockCommandSender;
|
import org.bukkit.command.BlockCommandSender;
|
||||||
@ -48,4 +49,58 @@ public class ImgUtility
|
|||||||
plugin.saveConfig();
|
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