mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-18 01:25:45 +00:00
Party Leave and Kick commands complete
This commit is contained in:
parent
ba99c7957b
commit
22eff44288
@ -19,7 +19,8 @@ import java.util.List;
|
|||||||
public class PartyData {
|
public class PartyData {
|
||||||
|
|
||||||
@Getter private final Player leader;
|
@Getter private final Player leader;
|
||||||
private final HashMap<Player, Boolean> members = new HashMap<>();
|
@Getter private final HashMap<Player, Boolean> members = new HashMap<>();
|
||||||
|
@Getter private final List<Player> invited = new ArrayList<>();
|
||||||
|
|
||||||
public PartyData(Player leader) {
|
public PartyData(Player leader) {
|
||||||
this.leader = leader;
|
this.leader = leader;
|
||||||
@ -33,6 +34,14 @@ public class PartyData {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean invite(Player p) {
|
||||||
|
if (!invited.contains(p)) {
|
||||||
|
invited.add(p);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean remove(Player p) {
|
public boolean remove(Player p) {
|
||||||
return members.remove(p) != null;
|
return members.remove(p) != null;
|
||||||
}
|
}
|
||||||
@ -49,9 +58,12 @@ public class PartyData {
|
|||||||
return !members.containsValue(false);
|
return !members.containsValue(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void readyUp(Player p) {
|
public boolean readyUp(Player p) {
|
||||||
if (members.containsKey(p))
|
if (members.containsKey(p) && !members.get(p)) {
|
||||||
members.put(p, true);
|
members.put(p, true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
|
@ -3,8 +3,11 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
|||||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
|
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
|
||||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
|
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
|
||||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
|
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
public class PartyHandler implements Listener {
|
public class PartyHandler implements Listener {
|
||||||
|
|
||||||
@ -33,4 +36,16 @@ public class PartyHandler implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onLeave(PlayerQuitEvent e) {
|
||||||
|
PartyData party = HelperParty.getParty(e.getPlayer());
|
||||||
|
if (party != null) {
|
||||||
|
if (party.isLeader(e.getPlayer())) {
|
||||||
|
AddonParty.getInstance().parties.remove(party);
|
||||||
|
for (Player member : party.getMembers().keySet())
|
||||||
|
AddonParty.getInstance().msgs.getMembers_LeaderLeft(member);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,16 @@ public class PartyMessages implements AddonsMessages {
|
|||||||
}
|
}
|
||||||
//Invite
|
//Invite
|
||||||
|
|
||||||
public void getInvite(CommandSender sendi, String name) {
|
public void getInvite_Invited(CommandSender sendi, String name) {
|
||||||
sms(sendi, getLang().getString(preM + "Invite").replace("%name%", name));
|
sms(sendi, getLang().getString(preM + "Invite.Invited").replace("%name%", name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getInvite_Notification(CommandSender sendi, String name) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Invite.Notification").replace("%name%", name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getInvite_Already(CommandSender sendi, String name) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Invite.Already").replace("%name%", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Usages
|
//Usages
|
||||||
@ -60,6 +68,13 @@ public class PartyMessages implements AddonsMessages {
|
|||||||
sms(sendi, getLang().getString(preM + "Members.Ready"));
|
sms(sendi, getLang().getString(preM + "Members.Ready"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getMembers_LeaderLeft(CommandSender sendi) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Members.LeaderLeft"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getMembers_Leave(CommandSender sendi, String leader) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Members.Leave").replace("%name%", leader));
|
||||||
|
}
|
||||||
//Kick
|
//Kick
|
||||||
|
|
||||||
public void getKick_Kicked(CommandSender sendi, String kicked) {
|
public void getKick_Kicked(CommandSender sendi, String kicked) {
|
||||||
|
@ -69,6 +69,7 @@ public class PartyCommand implements RTPCommand, RTPCommandHelpable {
|
|||||||
INVITE(new PartyCommand_Invite()),
|
INVITE(new PartyCommand_Invite()),
|
||||||
KICK(new PartyCommand_Kick()),
|
KICK(new PartyCommand_Kick()),
|
||||||
LEAVE(new PartyCommand_Leave()),
|
LEAVE(new PartyCommand_Leave()),
|
||||||
|
READYUP(new PartyCommand_ReadyUp()),
|
||||||
;
|
;
|
||||||
|
|
||||||
PartyCommands cmd;
|
PartyCommands cmd;
|
||||||
|
@ -16,11 +16,26 @@ public class PartyCommand_Invite implements PartyCommands, PartyCommandsTabable
|
|||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||||
Player p = (Player) sendi;
|
Player p = (Player) sendi;
|
||||||
PartyData party = null;
|
if (args.length >= 3) {
|
||||||
if (HelperParty.isInParty(p))
|
Player member = Bukkit.getPlayer(args[2]);
|
||||||
party = HelperParty.getParty(p);
|
if (member != null && !member.equals(p)) {
|
||||||
else
|
PartyData party = HelperParty.getParty(p);
|
||||||
party = new PartyData(p);
|
if (party == null) {
|
||||||
|
party = new PartyData(p);
|
||||||
|
AddonParty.getInstance().parties.add(party);
|
||||||
|
}
|
||||||
|
if (party.isLeader(p)) {
|
||||||
|
if (party.invite(member)) {
|
||||||
|
AddonParty.getInstance().msgs.getInvite_Invited(sendi, member.getName());
|
||||||
|
AddonParty.getInstance().msgs.getInvite_Notification(member, p.getName());
|
||||||
|
} else
|
||||||
|
AddonParty.getInstance().msgs.getInvite_Already(member, p.getName());
|
||||||
|
} else
|
||||||
|
AddonParty.getInstance().msgs.getOnlyLeader(sendi, party.getLeader().getName());
|
||||||
|
} else
|
||||||
|
AddonParty.getInstance().msgs.getNotExist(sendi, args[2]);
|
||||||
|
} else
|
||||||
|
AddonParty.getInstance().msgs.usageInvite(sendi, label);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,10 +43,10 @@ public class PartyCommand_Invite implements PartyCommands, PartyCommandsTabable
|
|||||||
@Override
|
@Override
|
||||||
public List<String> tabComplete(CommandSender sendi, String[] args, AddonParty addon) {
|
public List<String> tabComplete(CommandSender sendi, String[] args, AddonParty addon) {
|
||||||
List<String> list = new ArrayList<>();
|
List<String> list = new ArrayList<>();
|
||||||
if (args.length == 4) {
|
if (args.length == 3) {
|
||||||
for (World world : Bukkit.getWorlds())
|
for (Player p : Bukkit.getOnlinePlayers())
|
||||||
if (world.getName().toLowerCase().startsWith(args[3].toLowerCase()))
|
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()) && !p.equals(sendi))
|
||||||
list.add(world.getName());
|
list.add(p.getName());
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,10 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PartyCommand_Kick implements PartyCommands {
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PartyCommand_Kick implements PartyCommands, PartyCommandsTabable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||||
@ -21,7 +24,9 @@ public class PartyCommand_Kick implements PartyCommands {
|
|||||||
Player member = Bukkit.getPlayer(args[2]);
|
Player member = Bukkit.getPlayer(args[2]);
|
||||||
if (member != null) {
|
if (member != null) {
|
||||||
if (party.isMember(member)) {
|
if (party.isMember(member)) {
|
||||||
|
party.remove(member);
|
||||||
msgs.getKick_Kicked(sendi, member.getName());
|
msgs.getKick_Kicked(sendi, member.getName());
|
||||||
|
msgs.getKick_Notification(member, sendi.getName());
|
||||||
} else
|
} else
|
||||||
msgs.getMembers_NotInParty(sendi, member.getName());
|
msgs.getMembers_NotInParty(sendi, member.getName());
|
||||||
} else
|
} else
|
||||||
@ -33,4 +38,16 @@ public class PartyCommand_Kick implements PartyCommands {
|
|||||||
} else
|
} else
|
||||||
msgs.getNotInParty(sendi);
|
msgs.getNotInParty(sendi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public List<String> tabComplete(CommandSender sendi, String[] args, AddonParty addon) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
if (args.length == 3) {
|
||||||
|
PartyData party = HelperParty.getParty((Player) sendi);
|
||||||
|
if (party != null)
|
||||||
|
for (Player p : party.getMembers().keySet())
|
||||||
|
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()) && !p.equals(sendi))
|
||||||
|
list.add(p.getName());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,27 @@
|
|||||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds;
|
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds;
|
||||||
|
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
||||||
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.HelperParty;
|
||||||
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.PartyData;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PartyCommand_Leave implements PartyCommands {
|
public class PartyCommand_Leave implements PartyCommands {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||||
|
Player p = (Player) sendi;
|
||||||
|
PartyData party = HelperParty.getParty(p);
|
||||||
|
if (party != null) {
|
||||||
|
if (party.isLeader(p)) {
|
||||||
|
AddonParty.getInstance().parties.remove(party);
|
||||||
|
for (Player member : party.getMembers().keySet())
|
||||||
|
AddonParty.getInstance().msgs.getMembers_LeaderLeft(member);
|
||||||
|
} else {
|
||||||
|
party.remove(p);
|
||||||
|
AddonParty.getInstance().msgs.getMembers_Leave(sendi, party.getLeader().getName());
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
AddonParty.getInstance().msgs.getNotInParty(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds;
|
||||||
|
|
||||||
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class PartyCommand_ReadyUp implements PartyCommands {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -29,8 +29,6 @@ MagicStick:
|
|||||||
Player: '&cWhoops! &7Seems like their is no player by the name of &a%player% &7online!'
|
Player: '&cWhoops! &7Seems like their is no player by the name of &a%player% &7online!'
|
||||||
Party:
|
Party:
|
||||||
NotInParty: '&cYou can''t do this! You are not in a party...'
|
NotInParty: '&cYou can''t do this! You are not in a party...'
|
||||||
Invite: '&f%player_name% has been invited to an rtp party!'
|
|
||||||
Invited: '&f%player_name% has invited you to join their rtp party!'
|
|
||||||
OnlyLeader: '&cOnly the leader &f%name% &ccan make an RTP request!'
|
OnlyLeader: '&cOnly the leader &f%name% &ccan make an RTP request!'
|
||||||
Teleport: '&fYou''ve been rtp''d because of your party!'
|
Teleport: '&fYou''ve been rtp''d because of your party!'
|
||||||
NotExist: '&eThe player &f%name% &eis either offline or doesn''t exist!'
|
NotExist: '&eThe player &f%name% &eis either offline or doesn''t exist!'
|
||||||
@ -38,10 +36,16 @@ Party:
|
|||||||
Ready: '&eYou have readied up for the next party rtp!'
|
Ready: '&eYou have readied up for the next party rtp!'
|
||||||
NotReady: '&cNot all members are ready! &7%members%'
|
NotReady: '&cNot all members are ready! &7%members%'
|
||||||
NotInParty: '&eThe player &f%name% &eis not in the party!'
|
NotInParty: '&eThe player &f%name% &eis not in the party!'
|
||||||
|
LeaderLeft: '&cParty leader quit! &fParty no longer exists'
|
||||||
|
Leave: '&7You have left %name%''s rtp party!'
|
||||||
Kick:
|
Kick:
|
||||||
Kicked: '&fPlayer &e%name% &fhas been kicked!'
|
Kicked: '&fPlayer &e%name% &fhas been kicked!'
|
||||||
Notification: '&cYou''ve been kicked from an RTP party!'
|
Notification: '&cYou''ve been kicked from the RTP party by %name%!'
|
||||||
LeaderQuit: '&cRTP Party leader has quit the game, party destroyed!'
|
LeaderQuit: '&cParty leader has destroyed the party!'
|
||||||
|
Invite:
|
||||||
|
Already: '&e%name% is already been invited!'
|
||||||
|
Invited: '&f%name% has been invited to your rtp party!'
|
||||||
|
Notification: '&f%player_name% has invited you to join their rtp party!'
|
||||||
Usage:
|
Usage:
|
||||||
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick>'
|
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick>'
|
||||||
Accept: '&cUsage: &7/%command% portals accept <player_name>'
|
Accept: '&cUsage: &7/%command% portals accept <player_name>'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user