diff --git a/BetterRTPAddons/pom.xml b/BetterRTPAddons/pom.xml
index cd0b31c..fc1234b 100644
--- a/BetterRTPAddons/pom.xml
+++ b/BetterRTPAddons/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTPAddons
jar
- 1.6
+ 1.7
1.8
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyData.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyData.java
index 3e016da..840b41f 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyData.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyData.java
@@ -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 members = new HashMap<>();
+ private final HashMap 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);
+ }
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
index 0e1601d..9c37f82 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
@@ -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);
}
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyMessages.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyMessages.java
index 7fcd0f5..9f093b1 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyMessages.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyMessages.java
@@ -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"));
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/cmds/PartyCommand_Kick.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/cmds/PartyCommand_Kick.java
new file mode 100644
index 0000000..5820f27
--- /dev/null
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/cmds/PartyCommand_Kick.java
@@ -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);
+ }
+}
diff --git a/BetterRTPAddons/src/main/resources/lang/en.yml b/BetterRTPAddons/src/main/resources/lang/en.yml
index a64ee74..f9266b7 100644
--- a/BetterRTPAddons/src/main/resources/lang/en.yml
+++ b/BetterRTPAddons/src/main/resources/lang/en.yml
@@ -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 '
+ Accept: '&cUsage: &7/%command% portals accept '
+ Invite: '&cUsage: &7/%command% portals invite '
+ Kick: '&cUsage: &7/%command% portals kick '
Addons:
List:
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'