Need To check messages fonctionnality

This commit is contained in:
Florian Bouillon 2017-01-09 23:03:53 +01:00
parent 2734ad2e07
commit 711c171f53
7 changed files with 258 additions and 170 deletions

View File

@ -1,11 +1,16 @@
config: config:
#time to let the player answer #time to let the player answer
timeout: 60
isbroadcasted: true isbroadcasted: true
messages: messages:
accepted: you have accepted the proposition !
already-married: "&cSorry, but you are already married with someone."
blocked: Sorry but you are blocked from this player
broadcast: "&c %p1% has been married with %p2% !"
miss-spell: "&cYou have miss-spelled somethings !" miss-spell: "&cYou have miss-spelled somethings !"
notMarried: You are not married notMarried: You are not married
divorced: You have divorced with %otherplayer%
other-divorced: %otherplayer% have divorced with you
noHome: You don't have any home noHome: You don't have any home
tp-home: You were teleported to your home tp-home: You were teleported to your home
tp-to: Your were teleported to your partner tp-to: Your were teleported to your partner
@ -13,9 +18,6 @@ messages:
sethome: Your partner home was set ! sethome: Your partner home was set !
homedeleted: Your home were deleted homedeleted: Your home were deleted
no-proposition: "&cThe &8%player% &chasn't sended a proposition" no-proposition: "&cThe &8%player% &chasn't sended a proposition"
accepted: you have accepted the proposition !
broadcast: "&c %p1% has been married with %p2% !"
already-married: "&cSorry, but you are already married with someone."
proposition: Dear %receiver%, \nWould you like to marry me ? \nFrom %sender%. \n\(You have %time% seconds to send your answer !\) \n\(use '/marry accept %player%' to accept the proposition\) proposition: Dear %receiver%, \nWould you like to marry me ? \nFrom %sender%. \n\(You have %time% seconds to send your answer !\) \n\(use '/marry accept %player%' to accept the proposition\)
# don't touch under this !!! # don't touch under this !!!
partners: #each players have the sames infos ! partners: #each players have the sames infos !
@ -24,7 +26,6 @@ partners: #each players have the sames infos !
propositions: propositions:
otherplayer: otherplayer:
isblocked: true isblocked: true
timeout: 60
home: # coords of the home home: # coords of the home
x: 0 x: 0
y: 0 y: 0

View File

@ -0,0 +1,43 @@
package net.DeltaWings.Minecraft.Marriage;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
/**
* Created by Delta Wings on 09/01/2017 at.20:35
*/
public class Divorce implements CommandExecutor {
private Main pl;
private FileConfiguration config;
public Divorce(Main main) {
this.pl = main;
this.config = pl.getConfig();
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
if(cmd.getName().equalsIgnoreCase("divorce")) {
if (sender instanceof Player ) {
Player p = (Player)sender;
if ( pl.hasPermission(cmd, args, p) ) {
p.sendMessage( config.getString("messages.divorced".replace("&", "£").replace("%otherplayer%", config.getString("partners."+p.getName()+".who"))));
for ( Player player : Bukkit.getServer().getOnlinePlayers() ) {
if ( player.getName().equalsIgnoreCase(config.getString( "partners."+p.getName()+".who")) ) player.sendMessage(config.getString("messages.other-divorced".replace("&", "£").replace("%otherplayer%", config.getString(p.getName()))));
}
config.set("partners."+config.getString( "partners."+p.getName()+".who")+".who", "none");
config.set("partners."+config.getString( "partners."+p.getName()+".who")+".home", null);
config.set("partners."+p.getName()+".who", "none");
config.set("partners."+p.getName()+".home", null);
pl.saveConfig();
}
}
}
return false;
}
}

View File

@ -1,9 +1,14 @@
package net.DeltaWings.Minecraft.Marriage; package net.DeltaWings.Minecraft.Marriage;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.List;
/** /**
* Created by Delta Wings on 19/12/2016 at.18:15 * Created by Delta Wings on 19/12/2016 at.18:15
*/ */
@ -12,6 +17,7 @@ public class Main extends JavaPlugin implements Listener{
public void onEnable(){ public void onEnable(){
getCommand("Marry").setExecutor(new Marry(this)); getCommand("Marry").setExecutor(new Marry(this));
getCommand("Partner").setExecutor(new Partner(this)); getCommand("Partner").setExecutor(new Partner(this));
getCommand("divorce").setExecutor(new Divorce(this));
//load the config //load the config
getConfig().options().copyDefaults(true); getConfig().options().copyDefaults(true);
@ -24,4 +30,30 @@ public class Main extends JavaPlugin implements Listener{
} }
public Boolean hasPermission(Command command, String[] arguments, Player player) {
Command cmd = command;
String[] args = arguments;
Player p = player;
List<String> perms = new ArrayList<>();
perms.add("deltawings.marriage.all");
// divorce command
if( cmd.getName().equalsIgnoreCase("divorce") ) perms.add("deltawings.marriage.divorce");
// marry command
if( cmd.getName().equalsIgnoreCase("marry") ) perms.add("deltawings.marriage.marry");
//partner command
if( cmd.getName().equalsIgnoreCase("partner") ) {
perms.add("deltawings.marriage.partner.all");
if ( args[0].equalsIgnoreCase("info") ) perms.add("deltawings.marriage.info");
if ( args[0].equalsIgnoreCase("join") ) perms.add("deltawings.marriage.join");
if ( args[0].equalsIgnoreCase("sethome") ) perms.add("deltawings.marriage.sethome");
if ( args[0].equalsIgnoreCase("home") ) perms.add("deltawings.marriage.home");
if ( args[0].equalsIgnoreCase("delhome") ) perms.add("deltawings.marriage.delhome");
if ( args[0].equalsIgnoreCase("message") ) perms.add("deltawings.marriage.message");
if ( args[0].equalsIgnoreCase("gift") ) perms.add("deltawings.marriage.gift");
if ( args[0].equalsIgnoreCase("help") ) perms.add("deltawings.marriage.help");
}
for ( String permission : perms ) if ( p.hasPermission(permission) ) return true;
return true;
}
} }

View File

@ -24,49 +24,58 @@ public class Marry implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(sender instanceof Player) { if(cmd.getName().equalsIgnoreCase("marry")) {
Player p = (Player)sender; if(sender instanceof Player) {
if(cmd.getName().equalsIgnoreCase("marry")) { Player p = (Player)sender;
// /marry <player> to ask a player to marry him/her if ( pl.hasPermission(cmd, args, p) ) {
if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) { // /marry <player> to ask a player to marry him/her
Boolean found = false; if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) {
for(Player player : Bukkit.getServer().getOnlinePlayers()) { Boolean found = false;
if(player.getName().equalsIgnoreCase(args[0])) { for(Player player : Bukkit.getServer().getOnlinePlayers()) {
found = true; if(player.getName().equalsIgnoreCase(args[0])) {
if(!config.getBoolean("partners."+player.getName()+".married")) { found = true;
//config messages.proposition if(!config.getBoolean("partners."+player.getName()+".married")) {
player.sendMessage(config.getString("messages.proposition".replace("%sender%",p.getName()).replace("%receiver%", player.getName()).replace("%time%",Integer.toString(config.getInt("config.timeout"))).replace("&", "§"))); //config messages.proposition
} if ( config.getBoolean("partners."+player.getName()+".propositions."+p.getName()+".isblocked", false) ) p.sendMessage(config.getString("messages.blocked").replace("&", "§"));
} else {
} config.set("partners."+player.getName()+".propositions", p.getName());
if(!found) { pl.saveConfig();
//send message "Player isn't online or is not correctly typed" player.sendMessage(config.getString("messages.proposition".replace("%sender%",p.getName()).replace("%receiver%", player.getName()).replace("%time%",Integer.toString(config.getInt("config.timeout"))).replace("&", "§")));
p.sendMessage(args[0]+" isn't online or you haven't correctly typed his/her name !"); }
} }
// /marry accept <player> }
} else if (args.length == 2 && args[0].equalsIgnoreCase("accept")) { }
if (!config.getString("partners." + p.getName() + ".who").equalsIgnoreCase("none")) if(!found) {
p.sendMessage((config.getString("messages.already-married").replace("&", "§"))); //send message "Player isn't online or is not correctly typed"
else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) { p.sendMessage(args[0]+" isn't online or you haven't correctly typed his/her name !");
String conf = "partners." + p.getName() + "."; }
config.set(conf + "who", args[1]); // /marry accept <player>
config.set(conf + "propositions", null); } else if (args.length == 2 && args[0].equalsIgnoreCase("accept")) {
p.sendMessage(config.getString("messages.accepted")); if (!config.getString("partners." + p.getName() + ".who").equalsIgnoreCase("none"))
if (config.getBoolean("config.isbroadcasted")) p.sendMessage((config.getString("messages.already-married").replace("&", "§")));
Bukkit.broadcastMessage(config.getString("messages.broadcast").replace("&", "§").replace("%p1%", p.getName()).replace("%p2%", args[1])); else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) {
} else p.sendMessage(config.getString("messages.no-proposition").replace("%player%", args[1]).replace("&", "§")); String conf = "partners." + p.getName() + ".";
//check si marrié config.set(conf + "who", args[1]);
//msg t'es déjà marrié sale con ! config.set("partners." + args[1] + ".who", p.getName());
//sinon check si le joueur lui a proposée config.set(conf + "propositions", null);
//message you have accepted the proposition config.set("partners." + args[1] + ".propositions", null);
//bd %p1 and %p2 has been married ! pl.saveConfig();
//sinon message le joueur ne t'a pas proposée de te marrié avc lui/elle p.sendMessage(config.getString("messages.accepted"));
} else { if (config.getBoolean("config.isbroadcasted"))
p.sendMessage(config.getString("messages.miss-spell").replace("&", "§")); Bukkit.broadcastMessage(config.getString("messages.broadcast").replace("&", "§").replace("%p1%", p.getName()).replace("%p2%", args[1]));
} } else p.sendMessage(config.getString("messages.no-proposition").replace("%player%", args[1]).replace("&", "§"));
//check si marrié
//msg t'es déjà marrié sale con !
//sinon check si le joueur lui a proposée
//message you have accepted the proposition
//bd %p1 and %p2 has been married !
//sinon message le joueur ne t'a pas proposée de te marrié avc lui/elle
} else {
p.sendMessage(config.getString("messages.miss-spell").replace("&", "§"));
}
}
} }
} }
pl.saveConfig();
return true; return true;
} }
} }

View File

@ -24,128 +24,133 @@ public class Partner implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(sender instanceof Player) { if (cmd.getName().equalsIgnoreCase("partner")) {
Player p = (Player) sender; if(sender instanceof Player) {
if (cmd.getName().equalsIgnoreCase("partner")) { Player p = (Player) sender;
/** if ( pl.hasPermission(cmd, args, p) ) {
* infos/info TODO /**
* join DONE * infos/info TODO
* sethome/shome DONE * join DONE WORK
* home DONE * sethome/shome DONE WORK
* delhome/dhome DONE * home DONE WORK
* message/msg DONE * delhome/dhome DONE WORK
* sendgift/gift TODO * message/msg <message>DONE
*/ * sendgift/gift TODO
if (args.length == 1 && (args[0].equalsIgnoreCase("infos") || args[0].equalsIgnoreCase("info"))) { * help TODO
// /partner infos */
p.sendMessage("Work in Progress"); if (args.length == 1 && (args[0].equalsIgnoreCase("infos") || args[0].equalsIgnoreCase("info"))) {
} else if (args.length == 1 && args[0].equalsIgnoreCase("join")) { // /partner infos
// /partner join p.sendMessage("Work in Progress");
String partner = config.getString("partners."+p.getName()+".who"); } else if (args.length == 1 && args[0].equalsIgnoreCase("join")) {
if (!partner.equalsIgnoreCase("none")) { // /partner join
for (Player player : Bukkit.getServer().getOnlinePlayers()) { String partner = config.getString("partners."+p.getName()+".who");
if (player.getName().equalsIgnoreCase(partner)) { if (!partner.equalsIgnoreCase("none")) {
p.teleport(player); for (Player player : Bukkit.getServer().getOnlinePlayers()) {
// message tp to if (player.getName().equalsIgnoreCase(partner)) {
p.sendMessage(config.getString("messages.tp-to").replace("&", "§")); p.teleport(player);
// message tp from // message tp to
player.sendMessage(config.getString("messages.tp-from").replace("&", "§")); p.sendMessage(config.getString("messages.tp-to").replace("&", "§"));
} // message tp from
} player.sendMessage(config.getString("messages.tp-from").replace("&", "§"));
} }
} else if (args.length == 1 && (args[0].equalsIgnoreCase("sethome") || args[0].equalsIgnoreCase("shome"))) { }
// /partner sethome/shome }
} else if (args.length == 1 && (args[0].equalsIgnoreCase("sethome") || args[0].equalsIgnoreCase("shome"))) {
// /partner sethome/shome
String partner = config.getString("partners."+p.getName()+".who"); String partner = config.getString("partners."+p.getName()+".who");
if (!partner.equalsIgnoreCase("none")) { if (!partner.equalsIgnoreCase("none")) {
String playerPath = "partner."+p.getName()+".home"; String playerPath = "partners."+p.getName()+".home";
if (!config.isSet("partner."+p.getName()+".home")) { if (!config.isSet("partners."+p.getName()+".home")) {
config.createSection(playerPath+".home"); config.createSection(playerPath);
config.createSection(playerPath+".home.x"); config.createSection(playerPath+".x");
config.createSection(playerPath+".home.y "); config.createSection(playerPath+".y");
config.createSection(playerPath+".home.z"); config.createSection(playerPath+".z");
config.createSection(playerPath+".home.world"); config.createSection(playerPath+".world");
} }
Location playerLoc = p.getLocation(); Location playerLoc = p.getLocation();
config.set(playerPath+".home.x", playerLoc.getX()); config.set(playerPath+".x", playerLoc.getX());
config.set(playerPath+".home.y", playerLoc.getY()); config.set(playerPath+".y", playerLoc.getY());
config.set(playerPath+".home.z", playerLoc.getZ()); config.set(playerPath+".z", playerLoc.getZ());
config.set(playerPath+".home.world", playerLoc.getWorld()); config.set(playerPath+".world", playerLoc.getWorld().getName());
String partnerPath = "partner."+partner+".home"; String partnerPath = "partners."+partner+".home";
if (!config.isSet(partnerPath)) { if (!config.isSet(partnerPath)) {
config.createSection(partnerPath); config.createSection(partnerPath);
config.createSection(partnerPath+".x"); config.createSection(partnerPath+".x");
config.createSection(partnerPath+".y "); config.createSection(partnerPath+".y ");
config.createSection(partnerPath+".z"); config.createSection(partnerPath+".z");
config.createSection(partnerPath+".world"); config.createSection(partnerPath+".world");
} }
config.set(partnerPath+".x", playerLoc.getX()); config.set(partnerPath+".x", playerLoc.getX());
config.set(partnerPath+".y", playerLoc.getY()); config.set(partnerPath+".y", playerLoc.getY());
config.set(partnerPath+".z", playerLoc.getZ()); config.set(partnerPath+".z", playerLoc.getZ());
config.set(partnerPath+".world", playerLoc.getWorld()); config.set(partnerPath+".world", playerLoc.getWorld().getName());
//message home mis //message home mis
p.sendMessage(config.getString("messages.sethome")); p.sendMessage(config.getString("messages.sethome"));
pl.saveConfig(); pl.saveConfig();
} }
} else if (args.length == 1 && (args[0].equalsIgnoreCase("home"))) { } else if (args.length == 1 && args[0].equalsIgnoreCase("home")) {
// /partner home // /partner home
if ((!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) && config.isSet("partner."+p.getName()+".home")) { if ((!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) && config.isSet("partners."+p.getName()+".home")) {
// teleport // teleport
String playerPath = "partner."+p.getName()+".home"; String playerPath = "partners."+p.getName()+".home";
p.teleport(new Location(Bukkit.getServer().getWorld(config.getString(playerPath+".world")), config.getDouble(playerPath+".x"), config.getDouble(playerPath+".y"), config.getDouble(playerPath+".z"))); p.teleport(new Location(Bukkit.getServer().getWorld(config.getString(playerPath+".world")), config.getDouble(playerPath+".x"), config.getDouble(playerPath+".y"), config.getDouble(playerPath+".z")));
// message joueur tp home // message joueur tp home
p.sendMessage(config.getString("messages.tp-home")); p.sendMessage(config.getString("messages.tp-home"));
} else if (!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) { } else if (!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) {
// pas marrié // pas marrié
p.sendMessage(config.getString("messages.notMarried")); p.sendMessage(config.getString("messages.notMarried"));
} }
} else if (args.length == 1 && (args[0].equalsIgnoreCase("delhome") || args[0].equalsIgnoreCase("dhome"))) { } else if (args.length == 1 && (args[0].equalsIgnoreCase("delhome") || args[0].equalsIgnoreCase("dhome"))) {
// /partner delhome/dhome // /partner delhome/dhome
if (!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none") && config.isSet("partner."+p.getName()+".home")) { if (!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none") && config.isSet("partners."+p.getName()+".home")) {
config.set("partner."+p.getName()+".home", null); config.set("partners."+p.getName()+".home", null);
config.set("partner."+config.getString("partner."+p.getName()+".who")+".home", null); config.set("partners."+config.getString("partners."+p.getName()+".who")+".home", null);
pl.saveConfig(); pl.saveConfig();
// message home supprimé // message home supprimé
p.sendMessage("messages.homedeleted"); p.sendMessage("messages.homedeleted");
} else if (!config.isSet("partner."+p.getName()+".home")) { } else if (!config.isSet("partner."+p.getName()+".home")) {
// tu n'as pas de home // tu n'as pas de home
p.sendMessage(config.getString("messages.noHome")); p.sendMessage(config.getString("messages.noHome"));
} else { } else {
//tu n'es pas marrié //tu n'es pas marrié
p.sendMessage(config.getString("messages.notMarried")); p.sendMessage(config.getString("messages.notMarried"));
} }
} else if (args.length > 1 && (args[0].equalsIgnoreCase("message") || args[0].equalsIgnoreCase("msg"))) { } else if (args.length > 1 && (args[0].equalsIgnoreCase("message") || args[0].equalsIgnoreCase("msg"))) {
// /partner message/msg // /partner message/msg
if (config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) { if (!config.getString("partners."+p.getName()+".who").equalsIgnoreCase("none")) {
for (Player player : Bukkit.getServer().getOnlinePlayers()) { for (Player player : Bukkit.getServer().getOnlinePlayers()) {
if (player.getName().equalsIgnoreCase(config.getString("partner."+p.getName()+".who"))) { p.sendMessage(player.getName());
String msg = ""; p.sendMessage(config.getString("partners."+p.getName()+".who"));
for (int a = 1; args.length-1 < a; a++) { if (player.getName().equalsIgnoreCase(config.getString("partners."+p.getName()+".who"))) {
msg += " "+args[a]; String msg = "";
} for (int a = 1; args.length-1 < a; a++) {
// message send message to other player msg += " "+args[a];
player.sendMessage(msg.replace("&", "§")); }
} // message send message to other player
} player.sendMessage(msg.replace("&", "§"));
} }
} else if (args.length == 1 && (args[0].equalsIgnoreCase("sendgift") || args[0].equalsIgnoreCase("gift"))) { }
// /partner sendgift/gift }
p.sendMessage("Work In Progress"); } else if (args.length == 1 && (args[0].equalsIgnoreCase("sendgift") || args[0].equalsIgnoreCase("gift"))) {
} else { // /partner sendgift/gift
// message miss-spell p.sendMessage("Work In Progress");
p.sendMessage(config.getString("messages.miss-spell").replace("&", "§")); } else {
} // message miss-spell
p.sendMessage(config.getString("messages.miss-spell").replace("&", "§"));
}
}
} }
} }
return true; return true;

View File

@ -23,18 +23,10 @@ public class PlayerJoin implements Listener {
public void onPlayerJoinEvent(PlayerJoinEvent e) { public void onPlayerJoinEvent(PlayerJoinEvent e) {
Player p = e.getPlayer(); Player p = e.getPlayer();
String Base = "partners."+p.getName(); String Base = "partners."+p.getName();
if(!p.hasPlayedBefore()) { if (!config.isSet(Base)) {
config.createSection(Base); config.set(Base+".who", "none");
config.createSection(Base+".who"); config.createSection(Base+".propositions");
config.set(Base+".who", "none"); pl.saveConfig();
config.createSection(Base+".propositions");
} else if (!config.isSet(Base)) {
config.createSection(Base);
config.createSection(Base+".who");
config.set(Base+".who", "none");
config.createSection(Base+".propositions");
} }
pl.saveConfig();
} }
} }

View File

@ -5,5 +5,11 @@ main: net.DeltaWings.Minecraft.Marriage.Main
website: http://delta-wings.net/ website: http://delta-wings.net/
commands: commands:
marry: marry:
description: Marriage Command description: Command to marry with another player. More infos on : https://gitlab.com/Delta-Wings/Minecraft-Marriage/wikis/home
usage: /marry usage: usage : /marry <arg1> [<arg2>] More infos on : https://gitlab.com/Delta-Wings/Minecraft-Marriage/wikis/home
partner:
descripion: Command to do things with your partner. More infos on : https://gitlab.com/Delta-Wings/Minecraft-Marriage/wikis/home
usage: /partner <info/join/sethome/home/delhome/gift/help> <args>
divorce:
description: Command to divorce with your husband/wife. More infos on : https://gitlab.com/Delta-Wings/Minecraft-Marriage/wikis/home
usage: /divorce