mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
party addons command register + parties rtp with leader
This commit is contained in:
parent
23cca0311c
commit
66701c490f
@ -78,14 +78,20 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.16.2-R0.1-SNAPSHOT</version>
|
<version>1.8.8-R0.1-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot-api</artifactId>
|
||||||
|
<version>1.13.2-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Spigot Stuff -->
|
<!-- Spigot Stuff -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot</artifactId>
|
<artifactId>spigot</artifactId>
|
||||||
<version>1.16.2-R0.1-SNAPSHOT</version>
|
<version>1.8.8-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Paper Library for Async Chunk/Teleport -->
|
<!-- Paper Library for Async Chunk/Teleport -->
|
||||||
@ -109,5 +115,11 @@
|
|||||||
<version>4.5.0</version>
|
<version>4.5.0</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.22</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
@ -7,10 +7,12 @@ import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects;
|
|||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.logger.AddonLogger;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.logger.AddonLogger;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.AddonMagicStick;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.AddonMagicStick;
|
||||||
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.AddonPortals;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class AddonsHandler {
|
public class AddonsHandler {
|
||||||
|
|
||||||
@ -44,7 +46,7 @@ public class AddonsHandler {
|
|||||||
MAGICSTICK(new AddonMagicStick()), //Handy teleport want
|
MAGICSTICK(new AddonMagicStick()), //Handy teleport want
|
||||||
EXTRAEFFECTS(new AddonExtraEffects()), //New cosmetica!
|
EXTRAEFFECTS(new AddonExtraEffects()), //New cosmetica!
|
||||||
COMMANDS(new AddonCommands()), //Commands on rtp events
|
COMMANDS(new AddonCommands()), //Commands on rtp events
|
||||||
PARTY_RTP(new me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty()),
|
PARTY_RTP(new AddonParty()), //Adds parties!
|
||||||
;
|
;
|
||||||
|
|
||||||
Addon addon;
|
Addon addon;
|
||||||
@ -59,7 +61,7 @@ public class AddonsHandler {
|
|||||||
|
|
||||||
void load() {
|
void load() {
|
||||||
addon.load();
|
addon.load();
|
||||||
//Main.getInstance().getLogger().log(Level.INFO, "Addon " + this.name() + " has been enabled!");
|
BetterRTP.debug("Addon " + this.name() + " has been enabled!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void disable() {
|
void disable() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
||||||
|
|
||||||
|
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
||||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
|
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
|
||||||
@ -14,7 +15,7 @@ public class AddonParty implements Addon {
|
|||||||
private static AddonParty instance;
|
private static AddonParty instance;
|
||||||
private final String name = "PartyRTP";
|
private final String name = "PartyRTP";
|
||||||
private final PartyCommand cmd = new PartyCommand(this);
|
private final PartyCommand cmd = new PartyCommand(this);
|
||||||
public PortalsMessages msgs = new PortalsMessages();
|
public PartyMessages msgs = new PartyMessages();
|
||||||
public List<PartyData> parties = new ArrayList<>();
|
public List<PartyData> parties = new ArrayList<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -25,6 +26,7 @@ public class AddonParty implements Addon {
|
|||||||
@Override
|
@Override
|
||||||
public void load() {
|
public void load() {
|
||||||
instance = this;
|
instance = this;
|
||||||
|
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,6 +40,6 @@ public class AddonParty implements Addon {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RTPCommand getCmd() {
|
public RTPCommand getCmd() {
|
||||||
return null;
|
return cmd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,84 @@
|
|||||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
||||||
|
|
||||||
|
import io.papermc.lib.PaperLib;
|
||||||
|
import lombok.Getter;
|
||||||
|
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 org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PartyData {
|
public class PartyData {
|
||||||
|
|
||||||
final Player leader;
|
@Getter private final Player leader;
|
||||||
List<Player> members = new ArrayList<>();
|
private HashMap<Player, Boolean> members = new HashMap<>();
|
||||||
|
|
||||||
public PartyData(Player leader) {
|
public PartyData(Player leader) {
|
||||||
this.leader = leader;
|
this.leader = leader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean add(Player p) {
|
||||||
|
if (!members.containsKey(p)) {
|
||||||
|
members.put(p, false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean remove(Player p) {
|
||||||
|
return members.remove(p) != null;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean contains(Player p) {
|
public boolean contains(Player p) {
|
||||||
return leader.equals(p) || members.contains(p);
|
return leader.equals(p) || members.containsKey(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLeader(Player p) {
|
||||||
|
return this.leader.equals(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean allReady() {
|
||||||
|
return !members.containsValue(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readyUp(Player p) {
|
||||||
|
if (members.containsKey(p))
|
||||||
|
members.put(p, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
members.replaceAll((p, v) -> false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNotReady() {
|
||||||
|
List<Player> notReady = new ArrayList<>();
|
||||||
|
members.forEach((p, ready) -> {
|
||||||
|
if (!ready) notReady.add(p);
|
||||||
|
});
|
||||||
|
StringBuilder notReady_str = new StringBuilder("[");
|
||||||
|
notReady.forEach(p -> notReady_str.append(p.getName()));
|
||||||
|
notReady_str.append("]");
|
||||||
|
return notReady_str.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void tpAll(RTP_TeleportPostEvent e) {
|
||||||
|
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));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
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_TeleportPostEvent;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@ -9,6 +11,26 @@ public class PartyHandler implements Listener {
|
|||||||
//Dissallow players from teleporting unless all party members are ready
|
//Dissallow players from teleporting unless all party members are ready
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onRTP(RTP_SettingUpEvent e) {
|
public void onRTP(RTP_SettingUpEvent e) {
|
||||||
|
PartyData party = HelperParty.getParty(e.getPlayer());
|
||||||
|
if (party != null) {
|
||||||
|
if (party.isLeader(e.getPlayer())) {
|
||||||
|
if (!party.allReady()) { //NOT ALL READY
|
||||||
|
AddonParty.getInstance().msgs.getMembers_NotReady(e.getPlayer(), party.getNotReady());
|
||||||
|
e.setCancelled(true);
|
||||||
|
} //else rtp!
|
||||||
|
} else {
|
||||||
|
AddonParty.getInstance().msgs.getOnlyLeader(e.getPlayer(), party.getLeader());
|
||||||
|
e.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onRTP_end(RTP_TeleportPostEvent e) {
|
||||||
|
PartyData party = HelperParty.getParty(e.getPlayer());
|
||||||
|
if (party != null && party.isLeader(e.getPlayer())) {
|
||||||
|
party.tpAll(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,16 +3,17 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
|||||||
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
|
import me.SuperRonanCraft.BetterRTPAddons.AddonsMessages;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PartyMessages implements AddonsMessages {
|
public class PartyMessages implements AddonsMessages {
|
||||||
private static final String preM = "Party.";
|
private static final String preM = "Party.";
|
||||||
|
|
||||||
public void getWarning(CommandSender sendi) {
|
public void getOnlyLeader(CommandSender sendi, Player leader) {
|
||||||
sms(sendi, getLang().getString(preM + "Warning"));
|
sms(sendi, getLang().getString(preM + "OnlyLeader").replace("%name%", leader.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return getLang().getString("Help.Portals");
|
return getLang().getString("Help.Party");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Invite
|
//Invite
|
||||||
@ -30,4 +31,17 @@ public class PartyMessages implements AddonsMessages {
|
|||||||
public void usageBase(CommandSender sendi, String label) {
|
public void usageBase(CommandSender sendi, String label) {
|
||||||
sms(sendi, getLang().getString(preM + "Usage.Base").replace("%command%", label));
|
sms(sendi, getLang().getString(preM + "Usage.Base").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_Ready(CommandSender sendi) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Members.Ready"));
|
||||||
|
}
|
||||||
|
//Teleporting
|
||||||
|
public void getTeleporting(CommandSender sendi) {
|
||||||
|
sms(sendi, getLang().getString(preM + "Teleport"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ public class PartyCommand implements RTPCommand, RTPCommandHelpable {
|
|||||||
this.pl = pl;
|
this.pl = pl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "party";
|
return "party";
|
||||||
}
|
}
|
||||||
|
@ -110,10 +110,14 @@ public class PortalsCache {
|
|||||||
packet.sendPacket(p);
|
packet.sendPacket(p);
|
||||||
//}
|
//}
|
||||||
} else {
|
} else {
|
||||||
if (loc2)
|
try {
|
||||||
p.sendBlockChange(portal.loc_2, Material.GLOWSTONE.createBlockData());
|
if (loc2)
|
||||||
else
|
p.sendBlockChange(portal.loc_2, Material.GLOWSTONE.createBlockData());
|
||||||
p.sendBlockChange(portal.loc_1, Material.GLOWSTONE.createBlockData());
|
else
|
||||||
|
p.sendBlockChange(portal.loc_1, Material.GLOWSTONE.createBlockData());
|
||||||
|
} catch (Exception e) {
|
||||||
|
//Not 1.13+ (dont show block changes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,16 +30,21 @@ MagicStick:
|
|||||||
Party:
|
Party:
|
||||||
Invite: '&f%player_name% has been invited to an rtp party!'
|
Invite: '&f%player_name% has been invited to an rtp party!'
|
||||||
Invited: '&f%player_name% has invited you to join their 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!'
|
||||||
|
Members:
|
||||||
|
Ready: '&eYou have readied up for the next party rtp!'
|
||||||
|
NotReady: '&cNot all members are ready! &7%members%'
|
||||||
Addons:
|
Addons:
|
||||||
List:
|
List:
|
||||||
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'
|
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'
|
||||||
Enabled: ' &7- &e%addon% &7- &aEnabled'
|
Enabled: ' &7- &e%addon% &7- &aEnabled'
|
||||||
Disabled: ' &7- &e%addon% &7- &cDisabled'
|
Disabled: ' &7- &e%addon% &7- &cDisabled'
|
||||||
|
|
||||||
|
|
||||||
Help:
|
Help:
|
||||||
Portals: ' &7- &e/%command% portals <loc1, loc2, create> [args...] &7- Setup an rtp portal'
|
Portals: ' &7- &e/%command% portals <loc1, loc2, create> [args...] &7- Setup an rtp portal'
|
||||||
MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player'
|
MagicStick: ' &7- &e/%command% magicstick give [player] &7- Give a magic stick to a player'
|
||||||
|
Party: ' &7- &e/%command% party [...] &7- View a list of party commands'
|
||||||
Addons: ' &7- &e/%command% addons &7- View a list of addons commands'
|
Addons: ' &7- &e/%command% addons &7- View a list of addons commands'
|
||||||
Base:
|
Base:
|
||||||
Help: ' &7- &e/%command% addons help &7- View a list of available commands'
|
Help: ' &7- &e/%command% addons help &7- View a list of available commands'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user