mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 09:05:47 +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 {
|
||||
|
||||
@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) {
|
||||
this.leader = leader;
|
||||
@ -33,6 +34,14 @@ public class PartyData {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean invite(Player p) {
|
||||
if (!invited.contains(p)) {
|
||||
invited.add(p);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean remove(Player p) {
|
||||
return members.remove(p) != null;
|
||||
}
|
||||
@ -49,9 +58,12 @@ public class PartyData {
|
||||
return !members.containsValue(false);
|
||||
}
|
||||
|
||||
public void readyUp(Player p) {
|
||||
if (members.containsKey(p))
|
||||
public boolean readyUp(Player p) {
|
||||
if (members.containsKey(p) && !members.get(p)) {
|
||||
members.put(p, true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
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_TeleportEvent;
|
||||
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.Listener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
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
|
||||
|
||||
public void getInvite(CommandSender sendi, String name) {
|
||||
sms(sendi, getLang().getString(preM + "Invite").replace("%name%", name));
|
||||
public void getInvite_Invited(CommandSender sendi, String 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
|
||||
@ -60,6 +68,13 @@ public class PartyMessages implements AddonsMessages {
|
||||
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
|
||||
|
||||
public void getKick_Kicked(CommandSender sendi, String kicked) {
|
||||
|
@ -69,6 +69,7 @@ public class PartyCommand implements RTPCommand, RTPCommandHelpable {
|
||||
INVITE(new PartyCommand_Invite()),
|
||||
KICK(new PartyCommand_Kick()),
|
||||
LEAVE(new PartyCommand_Leave()),
|
||||
READYUP(new PartyCommand_ReadyUp()),
|
||||
;
|
||||
|
||||
PartyCommands cmd;
|
||||
|
@ -16,11 +16,26 @@ public class PartyCommand_Invite implements PartyCommands, PartyCommandsTabable
|
||||
@Override
|
||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||
Player p = (Player) sendi;
|
||||
PartyData party = null;
|
||||
if (HelperParty.isInParty(p))
|
||||
party = HelperParty.getParty(p);
|
||||
else
|
||||
party = new PartyData(p);
|
||||
if (args.length >= 3) {
|
||||
Player member = Bukkit.getPlayer(args[2]);
|
||||
if (member != null && !member.equals(p)) {
|
||||
PartyData party = HelperParty.getParty(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
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args, AddonParty addon) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 4) {
|
||||
for (World world : Bukkit.getWorlds())
|
||||
if (world.getName().toLowerCase().startsWith(args[3].toLowerCase()))
|
||||
list.add(world.getName());
|
||||
if (args.length == 3) {
|
||||
for (Player p : Bukkit.getOnlinePlayers())
|
||||
if (p.getName().toLowerCase().startsWith(args[2].toLowerCase()) && !p.equals(sendi))
|
||||
list.add(p.getName());
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -8,7 +8,10 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
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
|
||||
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]);
|
||||
if (member != null) {
|
||||
if (party.isMember(member)) {
|
||||
party.remove(member);
|
||||
msgs.getKick_Kicked(sendi, member.getName());
|
||||
msgs.getKick_Notification(member, sendi.getName());
|
||||
} else
|
||||
msgs.getMembers_NotInParty(sendi, member.getName());
|
||||
} else
|
||||
@ -33,4 +38,16 @@ public class PartyCommand_Kick implements PartyCommands {
|
||||
} else
|
||||
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;
|
||||
|
||||
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.entity.Player;
|
||||
|
||||
public class PartyCommand_Leave implements PartyCommands {
|
||||
|
||||
@Override
|
||||
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!'
|
||||
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!'
|
||||
Teleport: '&fYou''ve been rtp''d because of your party!'
|
||||
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!'
|
||||
NotReady: '&cNot all members are ready! &7%members%'
|
||||
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:
|
||||
Kicked: '&fPlayer &e%name% &fhas been kicked!'
|
||||
Notification: '&cYou''ve been kicked from an RTP party!'
|
||||
LeaderQuit: '&cRTP Party leader has quit the game, party destroyed!'
|
||||
Notification: '&cYou''ve been kicked from the RTP party by %name%!'
|
||||
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:
|
||||
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick>'
|
||||
Accept: '&cUsage: &7/%command% portals accept <player_name>'
|
||||
|
Loading…
x
Reference in New Issue
Block a user