[Gelöst] Premium Join

Um Übersicht zu schaffen, findet man hier bereits gelöste Fragen und Probleme.

[Gelöst] Premium Join

Beitragvon Summerfeeling » Do 27. Feb 2014, 06:00

Hey,
ich will in meine Gameplugins einen "Premium-Join" einbauen, sprich: Premiums können immer joinen."
Jedoch hab ich die Vermutung, das man erst garnicht auf den Server connectet, wenn er voll ist. Mein derzeitiger Code ist:
Code: Alles auswählen
  1.    @EventHandler
  2.    public void onLogin(PlayerLoginEvent e) {
  3.       Player p = e.getPlayer();
  4.       if(Rush.state == GameState.IN_GAME) {
  5.          if(p.hasPermission("rush.join")) {
  6.             e.allow();
  7.          }else{
  8.             e.disallow(Result.KICK_OTHER, "§cThe game has already started!");
  9.             return;
  10.          }
  11.       }
  12.       if(Bukkit.getOnlinePlayers().length >= 16) {
  13.          if(Rush.getRang(p.getName()).equalsIgnoreCase("regular")) {
  14.             e.disallow(Result.KICK_FULL, "§cThe game is full!");
  15.             return;
  16.          }
  17.          Rush.getRandomPlayerWhosNotPremium().kickPlayer("§cYou got kicked from the lobby to make space for a premium player!");
  18.          e.allow();
  19.       }
  20.    }
Zuletzt geändert von Summerfeeling am Sa 8. Mär 2014, 21:27, insgesamt 1-mal geändert.
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Premium Join

Beitragvon Ch4t4r » Do 27. Feb 2014, 08:08

Erlaube das joinen, wenn er premium ist und das event eegen vollem Server verboten wird. Zeitgleich eine nicht-premium Person kicken
Benutzeravatar
Ch4t4r
 
Beiträge: 455
Registriert: So 7. Jul 2013, 12:44

Re: Premium Join

Beitragvon Summerfeeling » Do 27. Feb 2014, 13:14

Ch4t4r hat geschrieben:Erlaube das joinen, wenn er premium ist und das event eegen vollem Server verboten wird. Zeitgleich eine nicht-premium Person kicken

Mach ich doch oder ist da ein Fehler?
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Premium Join

Beitragvon ilouHD » Fr 28. Feb 2014, 23:43

Summerfeeling hat geschrieben:
Code: Alles auswählen
  1. Rush.getRandomPlayerWhosNotPremium().kickPlayer("§cYou got kicked from the lobby to make space


Nur mal so nebenbei, wie definierst du '.getRandomPlayerWhosNotPremium()'? Würde das auch gerne in mein Plugin einbauen, aber ich weis nicht wie.

MFG marcsven
Bild
Benutzeravatar
ilouHD
 
Beiträge: 1733
Registriert: Do 9. Jan 2014, 14:49

Re: Premium Join

Beitragvon tahu98 » Sa 1. Mär 2014, 00:13

Mach dir eine List mit allen Spielern, die iterierst du durch und entfernst alle Premium, dann gettest du einen zufälligen Spieler (Math.random()) aus der List und fertig.
Bild
Benutzeravatar
tahu98
 
Beiträge: 231
Registriert: Mo 2. Sep 2013, 13:46

Re: Premium Join

Beitragvon ilouHD » Sa 1. Mär 2014, 00:43

tahu98 hat geschrieben:Mach dir eine List mit allen Spielern, die iterierst du durch und entfernst alle Premium, dann gettest du einen zufälligen Spieler (Math.random()) aus der List und fertig.


Kannst du mal den Code von dem RandomKickPlayer hier posten?

Hier erstmal meiner, der aber nichts geworden ist(glaube ich):
Code: Alles auswählen
  1.    public void kickRandomNonPremiumPlayer() {
  2.       for(Player players : MainKlasse.no_premium) {
  3.          Math.random();
  4.       }
  5.    }


Was muss ich ändern, bzw. kannst du mal deinen Code schicken?
Bild
Benutzeravatar
ilouHD
 
Beiträge: 1733
Registriert: Do 9. Jan 2014, 14:49

Re: Premium Join

Beitragvon Summerfeeling » Sa 1. Mär 2014, 18:20

marcsven hat geschrieben:
Summerfeeling hat geschrieben:
Code: Alles auswählen
  1. Rush.getRandomPlayerWhosNotPremium().kickPlayer("§cYou got kicked from the lobby to make space


Nur mal so nebenbei, wie definierst du '.getRandomPlayerWhosNotPremium()'? Würde das auch gerne in mein Plugin einbauen, aber ich weis nicht wie.

MFG marcsven


Hey,
das ganze mache ich mit der PermissionsEx API.
Code: Alles auswählen
  1.    public static String getRang(String who) {
  2.       return PermissionsEx.getUser(who).getGroupsNames()[0];
  3.    }
  4.    
  5.    public static Player getRandomPlayerWhosNotPremium() {
  6.       for(Player on : Bukkit.getOnlinePlayers()) {
  7.          if(Rush.getRang(on.getName()).equalsIgnoreCase("regular")) {
  8.             return on;
  9.          }else{
  10.             Rush.getRandomPlayerWhosNotPremium();
  11.          }
  12.       }
  13.       return null;
  14.    }
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Premium Join

Beitragvon ilouHD » Sa 1. Mär 2014, 19:06

Summerfeeling hat geschrieben:Hey,
das ganze mache ich mit der PermissionsEx API.
Code: Alles auswählen
  1.    public static String getRang(String who) {
  2.       return PermissionsEx.getUser(who).getGroupsNames()[0];
  3.    }
  4.    
  5.    public static Player getRandomPlayerWhosNotPremium() {
  6.       for(Player on : Bukkit.getOnlinePlayers()) {
  7.          if(Rush.getRang(on.getName()).equalsIgnoreCase("regular")) {
  8.             return on;
  9.          }else{
  10.             Rush.getRandomPlayerWhosNotPremium();
  11.          }
  12.       }
  13.       return null;
  14.    }


Wofür steht dieses "regular" in if(Rush.getRang(on.getName()).equalsIgnoreCase("regular"))

Ist das deine defaultGruppe?

Könnte es einer posten, wie es mit meiner, bzw. @tahu98's Methode gehen würde?
Bild
Benutzeravatar
ilouHD
 
Beiträge: 1733
Registriert: Do 9. Jan 2014, 14:49

Re: Premium Join

Beitragvon Summerfeeling » Sa 1. Mär 2014, 19:40

@marcsven
Exact, regular ist meine Default Gruppe.
@tahu98's Methode:
Code: Alles auswählen
  1.    public static Player getPlayerWhosNotPremium2() {
  2.       for(String user : player) {
  3.          if(Bukkit.getPlayer(user).hasPermission("game.cankick")) { //Rang halt überprüfen^^
  4.             return Bukkit.getPlayer(user);
  5.          }else{
  6.             Rush.getPlayerWhosNotPremium2();
  7.          }
  8.       }
  9.       return null;
  10.    }
Grüße
Summerfeeling | Timo
Benutzeravatar
Summerfeeling
 
Beiträge: 1300
Registriert: Sa 15. Jun 2013, 18:43
Wohnort: Viersen

Re: Premium Join

Beitragvon tahu98 » Sa 1. Mär 2014, 20:09

Das würde nicht richtig funktionieren, ich poste es gleich nochmal so wie ich es gemeint hatte.
Bild
Benutzeravatar
tahu98
 
Beiträge: 231
Registriert: Mo 2. Sep 2013, 13:46

Nächste

Zurück zu Bereits gelöst

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron