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:
#time to let the player answer
timeout: 60
isbroadcasted: true
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 !"
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
tp-home: You were teleported to your home
tp-to: Your were teleported to your partner
@ -13,9 +18,6 @@ messages:
sethome: Your partner home was set !
homedeleted: Your home were deleted
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\)
# don't touch under this !!!
partners: #each players have the sames infos !
@ -24,7 +26,6 @@ partners: #each players have the sames infos !
propositions:
otherplayer:
isblocked: true
timeout: 60
home: # coords of the home
x: 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;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
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
*/
@ -12,6 +17,7 @@ public class Main extends JavaPlugin implements Listener{
public void onEnable(){
getCommand("Marry").setExecutor(new Marry(this));
getCommand("Partner").setExecutor(new Partner(this));
getCommand("divorce").setExecutor(new Divorce(this));
//load the config
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
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(sender instanceof Player) {
Player p = (Player)sender;
if(cmd.getName().equalsIgnoreCase("marry")) {
// /marry <player> to ask a player to marry him/her
if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) {
Boolean found = false;
for(Player player : Bukkit.getServer().getOnlinePlayers()) {
if(player.getName().equalsIgnoreCase(args[0])) {
found = true;
if(!config.getBoolean("partners."+player.getName()+".married")) {
//config messages.proposition
player.sendMessage(config.getString("messages.proposition".replace("%sender%",p.getName()).replace("%receiver%", player.getName()).replace("%time%",Integer.toString(config.getInt("config.timeout"))).replace("&", "§")));
}
}
}
if(!found) {
//send message "Player isn't online or is not correctly typed"
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"))
p.sendMessage((config.getString("messages.already-married").replace("&", "§")));
else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) {
String conf = "partners." + p.getName() + ".";
config.set(conf + "who", args[1]);
config.set(conf + "propositions", null);
p.sendMessage(config.getString("messages.accepted"));
if (config.getBoolean("config.isbroadcasted"))
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("&", "§"));
}
if(cmd.getName().equalsIgnoreCase("marry")) {
if(sender instanceof Player) {
Player p = (Player)sender;
if ( pl.hasPermission(cmd, args, p) ) {
// /marry <player> to ask a player to marry him/her
if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) {
Boolean found = false;
for(Player player : Bukkit.getServer().getOnlinePlayers()) {
if(player.getName().equalsIgnoreCase(args[0])) {
found = true;
if(!config.getBoolean("partners."+player.getName()+".married")) {
//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());
pl.saveConfig();
player.sendMessage(config.getString("messages.proposition".replace("%sender%",p.getName()).replace("%receiver%", player.getName()).replace("%time%",Integer.toString(config.getInt("config.timeout"))).replace("&", "§")));
}
}
}
}
if(!found) {
//send message "Player isn't online or is not correctly typed"
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"))
p.sendMessage((config.getString("messages.already-married").replace("&", "§")));
else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) {
String conf = "partners." + p.getName() + ".";
config.set(conf + "who", args[1]);
config.set("partners." + args[1] + ".who", p.getName());
config.set(conf + "propositions", null);
config.set("partners." + args[1] + ".propositions", null);
pl.saveConfig();
p.sendMessage(config.getString("messages.accepted"));
if (config.getBoolean("config.isbroadcasted"))
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;
}
}

View File

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

View File

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

View File

@ -5,5 +5,11 @@ main: net.DeltaWings.Minecraft.Marriage.Main
website: http://delta-wings.net/
commands:
marry:
description: Marriage Command
usage: /marry
description: Command to marry with another player. More infos on : https://gitlab.com/Delta-Wings/Minecraft-Marriage/wikis/home
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