Ignore-System initial push #93
@ -99,6 +99,8 @@ public class BungeeCore extends Plugin {
|
||||
new CheckCommand();
|
||||
new RankedCommand();
|
||||
new RankCommand();
|
||||
new IgnoreCommand();
|
||||
new UnIgnoreCommand();
|
||||
|
||||
new EventStarter();
|
||||
new Broadcaster();
|
||||
|
@ -1,6 +1,7 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.*;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
@ -22,14 +23,20 @@ public class ChallengeCommand extends BasicCommand {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§echallenge §8[§7Spieler§8]");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
|
||||
return;
|
||||
Lixfel
hat
Tab-spacing verhauen Tab-spacing verhauen
|
||||
|
||||
ProxiedPlayer target = ProxyServer.getInstance().getPlayer(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer gewünschte Spieler ist nicht online.");
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer Herausgeforderte ist nicht online.");
|
||||
return;
|
||||
}else if(target == sender){
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cSchizophren?");
|
||||
return;
|
||||
}else if (IgnoreSystem.isIgnored(target, (ProxiedPlayer) sender)) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§cDer Herausgeforderte hat dich geblockt.");
|
||||
return;
|
||||
}
|
||||
|
||||
Subserver subserver = Subserver.getSubserver(target);
|
||||
|
42
src/de/steamwar/bungeecore/commands/IgnoreCommand.java
Normale Datei
@ -0,0 +1,42 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class IgnoreCommand extends BasicCommand {
|
||||
|
||||
public IgnoreCommand() {
|
||||
super("ignore", null);
|
||||
Lixfel
hat
Berechtigung null Berechtigung null
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if(args.length < 1) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eignore §8[§7Spieler§8]");
|
||||
return;
|
||||
}
|
||||
|
||||
Lixfel
hat
Sollte auch funktionieren, wenn das target nicht online ist. Nutze daher den SteamwarUser statt ProxiedPlayer Sollte auch funktionieren, wenn das target nicht online ist. Nutze daher den SteamwarUser statt ProxiedPlayer
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||
Lixfel
hat
ignorieren kleingeschrieben. ignorieren kleingeschrieben.
|
||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||
|
||||
SteamwarUser target = SteamwarUser.get(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDiesen Spieler gibt es nicht.");
|
||||
Lixfel
hat
Was ist nur mit deinem Tab-Spacing los? Was ist nur mit deinem Tab-Spacing los?
|
||||
return;
|
||||
}else if(target.equals(user)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cWie willst du dich selber ignorieren?");
|
||||
return;
|
||||
}else if(IgnoreSystem.isIgnored(user, target)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDu ignorierst diesen Spieler bereits.");
|
||||
return;
|
||||
}
|
||||
|
||||
IgnoreSystem.ignore(user, target);
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du ignorierst nun §e" + target.getUserName() + "§8.");
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
@ -37,6 +38,9 @@ public class MsgCommand extends BasicCommand {
|
||||
if(target == null){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler ist derzeit nicht online!");
|
||||
return;
|
||||
}else if (IgnoreSystem.isIgnored(target, player)) {
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler hat dich geblockt!");
|
||||
return;
|
||||
Lixfel
hat
Ich weiß nicht, ob auch bei /r diese Zeilen aufgerufen werden (bitte nochmal überprüfen) Ich weiß nicht, ob auch bei /r diese Zeilen aufgerufen werden (bitte nochmal überprüfen)
Jan9103
hat
die Zeile die Zeile ```if (args.length < 2) {
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "/msg [Benutzer] [Nachricht]");
return;
}```lässt mich vermuten, dass es nicht für /r gültig ist
Lixfel
hat
Nein, ich meine, ob das Blocken auch /r Nachrichten blockiert! Nein, ich meine, ob das Blocken auch /r Nachrichten blockiert!
|
||||
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
|
||||
return;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
@ -30,11 +31,12 @@ public class RCommand extends BasicCommand {
|
||||
if(target == null){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDu hast bisher mit niemandem geschrieben!");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!target.isConnected()){
|
||||
}else if(!target.isConnected()){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler ist derzeit nicht online!");
|
||||
return;
|
||||
}else if (IgnoreSystem.isIgnored(target, player)) {
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler hat dich geblockt!");
|
||||
return;
|
||||
}else if(target.getChatMode() != ProxiedPlayer.ChatMode.SHOWN){
|
||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDieser Spieler empfängt derzeit keine Chatnachrichten!");
|
||||
return;
|
||||
|
40
src/de/steamwar/bungeecore/commands/UnIgnoreCommand.java
Normale Datei
@ -0,0 +1,40 @@
|
||||
package de.steamwar.bungeecore.commands;
|
||||
|
||||
import de.steamwar.bungeecore.BungeeCore;
|
||||
import de.steamwar.bungeecore.sql.IgnoreSystem;
|
||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class UnIgnoreCommand extends BasicCommand {
|
||||
|
||||
public UnIgnoreCommand() {
|
||||
super("unignore", null);
|
||||
Lixfel
hat
Auch hier: Berechtigung null Auch hier: Berechtigung null
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if(args.length < 1) {
|
||||
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eunignore §8[§7Spieler§8]");
|
||||
return;
|
||||
}
|
||||
Lixfel
hat
Tab-Spacing Tab-Spacing
Jan9103
hat
bei mir stimmt das Tab-Spacing überall - villeicht zeigt git es anders an oder ist meine tab-breite im verhältniss zur leerzeichenbreite anders als deine bei mir stimmt das Tab-Spacing überall - villeicht zeigt git es anders an oder ist meine tab-breite im verhältniss zur leerzeichenbreite anders als deine
|
||||
|
||||
Lixfel
hat
Auch hier: Bitte mit SteamwarUser Auch hier: Bitte mit SteamwarUser
Jan9103
hat
diese nachricht wird an den command-sender geschickt -> er ist garantiert online, sonst hätte er den Befehl ja nicht senden können diese nachricht wird an den command-sender geschickt -> er ist garantiert online, sonst hätte er den Befehl ja nicht senden können
Lixfel
hat
Ich meine target. Ich meine target.
Lixfel
hat
Man kann keinen Spieler blocken, der derzeit offline ist. Das muss geändert werden. Man kann keinen Spieler blocken, der derzeit offline ist. Das muss geändert werden.
|
||||
if (!(sender instanceof ProxiedPlayer))
|
||||
return;
|
||||
ProxiedPlayer p = (ProxiedPlayer) sender;
|
||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||
|
||||
SteamwarUser target = SteamwarUser.get(args[0]);
|
||||
if(target == null){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDiesen Spieler gibt es nicht!");
|
||||
return;
|
||||
}else if(!IgnoreSystem.isIgnored(user, target)){
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§cDu ignorierst diesen Spieler nicht.");
|
||||
return;
|
||||
}
|
||||
|
||||
IgnoreSystem.unIgnore(user, target);
|
||||
BungeeCore.send(p, BungeeCore.CHAT_PREFIX + "§7Du empfängst nun wieder Nachrichten von §e" + target.getUserName() + "§8.");
|
||||
}
|
||||
|
||||
}
|
31
src/de/steamwar/bungeecore/sql/IgnoreSystem.java
Normale Datei
@ -0,0 +1,31 @@
|
||||
package de.steamwar.bungeecore.sql;
|
||||
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class IgnoreSystem{
|
||||
private IgnoreSystem(){}
|
||||
|
||||
public static boolean isIgnored(ProxiedPlayer ignorer, ProxiedPlayer ignored){
|
||||
SteamwarUser user = SteamwarUser.get(ignorer.getUniqueId());
|
||||
SteamwarUser target = SteamwarUser.get(ignored.getUniqueId());
|
||||
return isIgnored(user, target);
|
||||
}
|
||||
|
||||
public static boolean isIgnored(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
try {
|
||||
return !SQL.select("SELECT * FROM IgnoredPlayers WHERE Ignorer = ? AND Ignored = ?", ignorer.getId(), ignored.getId()).next();
|
||||
} catch (SQLException e) {
|
||||
throw new SecurityException("Could not check if ignored", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ignore(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
SQL.update("INSERT INTO IgnoredPlayers (Ignorer, Ignored) VALUES (?, ?)", ignorer.getId(), ignored.getId());
|
||||
}
|
||||
|
||||
public static void unIgnore(SteamwarUser ignorer, SteamwarUser ignored) {
|
||||
SQL.update("DELETE FROM IgnoredPlayers WHERE Ignorer = ? AND Ignored = ?", ignorer.getId(), ignored.getId());
|
||||
}
|
||||
}
|
Deutsch bitte.
Bzw. kannst du die Nachricht auch komplett weglassen