party leader can now kick members + usage messages

This commit is contained in:
RonanCraft 2022-03-02 18:05:37 -05:00
parent 66701c490f
commit 1ec31563d8
6 changed files with 107 additions and 18 deletions

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging>
<version>1.6</version>
<version>1.7</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>

View File

@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
@ -18,7 +19,7 @@ import java.util.List;
public class PartyData {
@Getter private final Player leader;
private HashMap<Player, Boolean> members = new HashMap<>();
private final HashMap<Player, Boolean> members = new HashMap<>();
public PartyData(Player leader) {
this.leader = leader;
@ -69,16 +70,26 @@ public class PartyData {
}
public void tpAll(RTP_TeleportPostEvent e) {
CooldownData cooldownData = BetterRTP.getInstance().getPlayerDataManager().getData(getLeader()).getCooldown();
members.forEach((p, ready) -> {
Location loc = e.getLocation();
//Async tp players
PaperLib.teleportAsync(p, loc, PlayerTeleportEvent.TeleportCause.PLUGIN).thenRun(() ->
BetterRTP.getInstance().getText().getSuccessBypass(p,
String.valueOf(loc.getBlockX()),
String.valueOf(loc.getBlockY()),
String.valueOf(loc.getBlockZ()),
loc.getWorld().getName(),
1));
if (!p.equals(getLeader())) {
Location loc = e.getLocation();
//Async tp players
PaperLib.teleportAsync(p, loc, PlayerTeleportEvent.TeleportCause.PLUGIN).thenRun(() ->
BetterRTP.getInstance().getText().getSuccessBypass(p,
String.valueOf(loc.getBlockX()),
String.valueOf(loc.getBlockY()),
String.valueOf(loc.getBlockZ()),
loc.getWorld().getName(),
1));
//Set cooldowns
if (cooldownData != null)
BetterRTP.getInstance().getPlayerDataManager().getData(p).setCooldown(new CooldownData(p.getUniqueId(), cooldownData.getTime(), cooldownData.getUses()));
}
});
}
public boolean isMember(Player member) {
return this.members.containsKey(member);
}
}

View File

@ -19,7 +19,7 @@ public class PartyHandler implements Listener {
e.setCancelled(true);
} //else rtp!
} else {
AddonParty.getInstance().msgs.getOnlyLeader(e.getPlayer(), party.getLeader());
AddonParty.getInstance().msgs.getOnlyLeader(e.getPlayer(), party.getLeader().getName());
e.setCancelled(true);
}
}

View File

@ -8,14 +8,21 @@ import org.bukkit.entity.Player;
public class PartyMessages implements AddonsMessages {
private static final String preM = "Party.";
public void getOnlyLeader(CommandSender sendi, Player leader) {
sms(sendi, getLang().getString(preM + "OnlyLeader").replace("%name%", leader.getName()));
public void getOnlyLeader(CommandSender sendi, String leader) {
sms(sendi, getLang().getString(preM + "OnlyLeader").replace("%name%", leader));
}
public String getHelp() {
return getLang().getString("Help.Party");
}
public void getNotInParty(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "NotInParty"));
}
public void getNotExist(CommandSender sendi, String name) {
sms(sendi, getLang().getString(preM + "NotExist").replace("%name%", name));
}
//Invite
public void getInvite(CommandSender sendi, String name) {
@ -24,22 +31,45 @@ public class PartyMessages implements AddonsMessages {
//Usages
public void usageRemove(CommandSender sendi, String label) {
sms(sendi, getLang().getString(preM + "Usage.Remove").replace("%command%", label));
}
public void usageBase(CommandSender sendi, String label) {
sms(sendi, getLang().getString(preM + "Usage.Base").replace("%command%", label));
}
public void usageKick(CommandSender sendi, String label) {
sms(sendi, getLang().getString(preM + "Usage.Kick").replace("%command%", label));
}
public void usageAccept(CommandSender sendi, String label) {
sms(sendi, getLang().getString(preM + "Usage.Accept").replace("%command%", label));
}
public void usageInvite(CommandSender sendi, String label) {
sms(sendi, getLang().getString(preM + "Usage.Invite").replace("%command%", label));
}
//Members
public void getMembers_NotReady(CommandSender sendi, String members) {
sms(sendi, getLang().getString(preM + "Members.NotReady").replace("%members%", members));
}
public void getMembers_NotInParty(CommandSender sendi, String name) {
sms(sendi, getLang().getString(preM + "Members.NotInParty").replace("%name%", name));
}
public void getMembers_Ready(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Members.Ready"));
}
//Kick
public void getKick_Kicked(CommandSender sendi, String kicked) {
sms(sendi, getLang().getString(preM + "Kick.Kicked").replace("%name%", kicked));
}
public void getKick_Notification(CommandSender sendi, String leader) {
sms(sendi, getLang().getString(preM + "Kick.Notification").replace("%name%", leader));
}
//Teleporting
public void getTeleporting(CommandSender sendi) {
sms(sendi, getLang().getString(preM + "Teleport"));

View File

@ -0,0 +1,36 @@
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 me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.PartyMessages;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class PartyCommand_Kick implements PartyCommands {
@Override
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
Player p = (Player) sendi;
PartyMessages msgs = AddonParty.getInstance().msgs;
PartyData party = HelperParty.getParty(p);
if (party != null) {
if (party.isLeader(p)) {
if (args.length >= 3) {
Player member = Bukkit.getPlayer(args[2]);
if (member != null) {
if (party.isMember(member)) {
msgs.getKick_Kicked(sendi, member.getName());
} else
msgs.getMembers_NotInParty(sendi, member.getName());
} else
msgs.getNotExist(sendi, args[2]);
} else
msgs.usageKick(sendi, label);
} else
msgs.getOnlyLeader(sendi, party.getLeader().getName());
} else
msgs.getNotInParty(sendi);
}
}

View File

@ -28,13 +28,25 @@ MagicStick:
Given: '&7A &dMagic Stick&7 has been given to you'
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!'
Members:
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!'
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!'
Usage:
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick>'
Accept: '&cUsage: &7/%command% portals accept <player_name>'
Invite: '&cUsage: &7/%command% portals invite <player_name>'
Kick: '&cUsage: &7/%command% portals kick <player_name>'
Addons:
List:
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'