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,9 +24,10 @@ 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(cmd.getName().equalsIgnoreCase("marry")) {
if(sender instanceof Player) { if(sender instanceof Player) {
Player p = (Player)sender; Player p = (Player)sender;
if(cmd.getName().equalsIgnoreCase("marry")) { if ( pl.hasPermission(cmd, args, p) ) {
// /marry <player> to ask a player to marry him/her // /marry <player> to ask a player to marry him/her
if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) { if(args.length == 1 && !args[0].equalsIgnoreCase("accept")) {
Boolean found = false; Boolean found = false;
@ -35,10 +36,15 @@ public class Marry implements CommandExecutor {
found = true; found = true;
if(!config.getBoolean("partners."+player.getName()+".married")) { if(!config.getBoolean("partners."+player.getName()+".married")) {
//config messages.proposition //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("&", "§"))); 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) { if(!found) {
//send message "Player isn't online or is not correctly typed" //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 !"); p.sendMessage(args[0]+" isn't online or you haven't correctly typed his/her name !");
@ -50,7 +56,10 @@ public class Marry implements CommandExecutor {
else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) { else if (config.getConfigurationSection("partners." + p.getName() + ".propositions").contains(args[1])) {
String conf = "partners." + p.getName() + "."; String conf = "partners." + p.getName() + ".";
config.set(conf + "who", args[1]); config.set(conf + "who", args[1]);
config.set("partners." + args[1] + ".who", p.getName());
config.set(conf + "propositions", null); config.set(conf + "propositions", null);
config.set("partners." + args[1] + ".propositions", null);
pl.saveConfig();
p.sendMessage(config.getString("messages.accepted")); p.sendMessage(config.getString("messages.accepted"));
if (config.getBoolean("config.isbroadcasted")) if (config.getBoolean("config.isbroadcasted"))
Bukkit.broadcastMessage(config.getString("messages.broadcast").replace("&", "§").replace("%p1%", p.getName()).replace("%p2%", args[1])); Bukkit.broadcastMessage(config.getString("messages.broadcast").replace("&", "§").replace("%p1%", p.getName()).replace("%p2%", args[1]));
@ -66,7 +75,7 @@ public class Marry implements CommandExecutor {
} }
} }
} }
pl.saveConfig(); }
return true; return true;
} }
} }

View File

@ -24,17 +24,19 @@ 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 (cmd.getName().equalsIgnoreCase("partner")) {
if(sender instanceof Player) { if(sender instanceof Player) {
Player p = (Player) sender; Player p = (Player) sender;
if (cmd.getName().equalsIgnoreCase("partner")) { if ( pl.hasPermission(cmd, args, p) ) {
/** /**
* infos/info TODO * infos/info TODO
* join DONE * join DONE WORK
* sethome/shome DONE * sethome/shome DONE WORK
* home DONE * home DONE WORK
* delhome/dhome DONE * delhome/dhome DONE WORK
* message/msg DONE * message/msg <message>DONE
* sendgift/gift TODO * sendgift/gift TODO
* help TODO
*/ */
if (args.length == 1 && (args[0].equalsIgnoreCase("infos") || args[0].equalsIgnoreCase("info"))) { if (args.length == 1 && (args[0].equalsIgnoreCase("infos") || args[0].equalsIgnoreCase("info"))) {
// /partner infos // /partner infos
@ -63,24 +65,24 @@ public class Partner implements CommandExecutor {
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);
@ -92,17 +94,17 @@ public class Partner implements CommandExecutor {
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"));
@ -112,9 +114,9 @@ public class Partner implements CommandExecutor {
} }
} 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");
@ -127,9 +129,11 @@ public class Partner implements CommandExecutor {
} }
} 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());
p.sendMessage(config.getString("partners."+p.getName()+".who"));
if (player.getName().equalsIgnoreCase(config.getString("partners."+p.getName()+".who"))) {
String msg = ""; String msg = "";
for (int a = 1; args.length-1 < a; a++) { for (int a = 1; args.length-1 < a; a++) {
msg += " "+args[a]; msg += " "+args[a];
@ -148,6 +152,7 @@ public class Partner implements CommandExecutor {
} }
} }
} }
}
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.createSection(Base+".who");
config.set(Base+".who", "none"); config.set(Base+".who", "none");
config.createSection(Base+".propositions"); 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(); 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