feat: kick Player if not in Team
This commit is contained in:
parent
fd2a1b7953
commit
3d07798315
2 changed files with 25 additions and 2 deletions
|
@ -36,6 +36,9 @@ public class PlayerJoinQuitListener implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerQuit(final PlayerQuitEvent e) {
|
public void onPlayerQuit(final PlayerQuitEvent e) {
|
||||||
e.setQuitMessage(null);
|
e.setQuitMessage(null);
|
||||||
|
if (!this.plugin.getTeamManager().hasTeam(e.getPlayer())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!this.plugin.getBanUtils().isBanned(e.getPlayer().getUniqueId())) {
|
if (!this.plugin.getBanUtils().isBanned(e.getPlayer().getUniqueId())) {
|
||||||
this.plugin.getNPCManager().createClone(e.getPlayer());
|
this.plugin.getNPCManager().createClone(e.getPlayer());
|
||||||
Bukkit.broadcast(this.plugin.getMessageUtils().getServiceMessage(e.getPlayer().getName(),
|
Bukkit.broadcast(this.plugin.getMessageUtils().getServiceMessage(e.getPlayer().getName(),
|
||||||
|
@ -53,7 +56,11 @@ public class PlayerJoinQuitListener implements Listener {
|
||||||
e.setJoinMessage(null);
|
e.setJoinMessage(null);
|
||||||
this.plugin.getNPCManager().syncClones(e.getPlayer());
|
this.plugin.getNPCManager().syncClones(e.getPlayer());
|
||||||
|
|
||||||
this.plugin.getTeamManager().setTeam(e.getPlayer());
|
if (!this.plugin.getTeamManager().setTeam(e.getPlayer())) {
|
||||||
|
e.getPlayer().kickPlayer(
|
||||||
|
"§4§lFehler!\n \n§cDu bist keinem Team zugeordnet.\n \n§r§7Kontaktiere bitte die §f§l@Admins §r§7auf dem Discord-Server.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Inject PacketReader
|
// Inject PacketReader
|
||||||
final PacketReader packetReader = new PacketReader(this.plugin, e.getPlayer());
|
final PacketReader packetReader = new PacketReader(this.plugin, e.getPlayer());
|
||||||
|
|
|
@ -140,7 +140,7 @@ public class TeamManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTeam(final Player player) {
|
public boolean setTeam(final Player player) {
|
||||||
final JSONArray jsonTeams = config.getArray("teams");
|
final JSONArray jsonTeams = config.getArray("teams");
|
||||||
for (final Object jsonRawTeam : jsonTeams) {
|
for (final Object jsonRawTeam : jsonTeams) {
|
||||||
final JSONObject jsonTeam = (JSONObject) jsonRawTeam;
|
final JSONObject jsonTeam = (JSONObject) jsonRawTeam;
|
||||||
|
@ -150,11 +150,27 @@ public class TeamManager {
|
||||||
for (final Team team : this.teams) {
|
for (final Team team : this.teams) {
|
||||||
if (team.getName().equals(jsonTeam.get("name").toString())) {
|
if (team.getName().equals(jsonTeam.get("name").toString())) {
|
||||||
team.addEntry(player.getName());
|
team.addEntry(player.getName());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasTeam(final Player player) {
|
||||||
|
final JSONArray jsonTeams = config.getArray("teams");
|
||||||
|
for (final Object jsonRawTeam : jsonTeams) {
|
||||||
|
final JSONObject jsonTeam = (JSONObject) jsonRawTeam;
|
||||||
|
for (final Object rawPlayer : ((JSONArray) jsonTeam.get("players"))) {
|
||||||
|
final JSONObject jsonPlayer = (JSONObject) rawPlayer;
|
||||||
|
if (jsonPlayer.get("uuid").equals(player.getUniqueId().toString().replace("-", ""))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|
Loading…
Reference in a new issue