added query events
This commit is contained in:
parent
12303e6b6f
commit
8ec66238aa
@ -1,5 +1,7 @@
|
||||
package cf.semikolon.teamspeak;
|
||||
|
||||
import cf.semikolon.teamspeak.query.QueryEvents;
|
||||
import cf.semikolon.teamspeak.query.ServerQuery;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
/**
|
||||
@ -9,8 +11,10 @@ public class MainClass extends JavaPlugin {
|
||||
|
||||
private static MainClass INSTANCE;
|
||||
private ServerQuery serverQuery;
|
||||
private RandomString randomString;
|
||||
|
||||
FileSystem cfg = new FileSystem("TeamspekAuth", "config") {
|
||||
|
||||
private FileSystem cfg = new FileSystem("TeamSpeakAuth", "config") {
|
||||
@Override
|
||||
public void initConfig() {
|
||||
getCfg().set("tsHost", "127.0.0.1");
|
||||
@ -25,15 +29,15 @@ public class MainClass extends JavaPlugin {
|
||||
@Override
|
||||
public void onEnable() {
|
||||
INSTANCE = this;
|
||||
System.out.println("Plugin TeamspeakAuth by Semikolon\nconnecting...");
|
||||
serverQuery = new ServerQuery(cfg.getCfg().getString("tsHost"),
|
||||
this.randomString = new RandomString(6);
|
||||
System.out.println("Plugin TeamSpeakAuth by Semikolon\nconnecting...");
|
||||
this.serverQuery = new ServerQuery(cfg.getCfg().getString("tsHost"),
|
||||
cfg.getCfg().getInt("queryPort"),
|
||||
cfg.getCfg().getInt("tsPort"),
|
||||
cfg.getCfg().getString("queryUser"),
|
||||
cfg.getCfg().getString("queryPassword"),
|
||||
cfg.getCfg().getString("botNickname"));
|
||||
|
||||
|
||||
this.serverQuery.getApi().addTS3Listeners(new QueryEvents());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -44,4 +48,12 @@ public class MainClass extends JavaPlugin {
|
||||
public static MainClass getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public ServerQuery getServerQuery() {
|
||||
return serverQuery;
|
||||
}
|
||||
|
||||
public RandomString getRandomString() {
|
||||
return randomString;
|
||||
}
|
||||
}
|
||||
|
38
src/main/java/cf/semikolon/teamspeak/RandomString.java
Normal file
38
src/main/java/cf/semikolon/teamspeak/RandomString.java
Normal file
@ -0,0 +1,38 @@
|
||||
package cf.semikolon.teamspeak;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Created by jan on 26.07.16.
|
||||
* from StackOverflow
|
||||
*/
|
||||
public class RandomString {
|
||||
|
||||
private static final char[] symbols;
|
||||
|
||||
static {
|
||||
StringBuilder tmp = new StringBuilder();
|
||||
for (char ch = '0'; ch <= '9'; ++ch)
|
||||
tmp.append(ch);
|
||||
for (char ch = 'a'; ch <= 'z'; ++ch)
|
||||
tmp.append(ch);
|
||||
symbols = tmp.toString().toCharArray();
|
||||
}
|
||||
|
||||
private final Random random = new Random();
|
||||
|
||||
private final char[] buf;
|
||||
|
||||
public RandomString(int length) {
|
||||
if (length < 1)
|
||||
throw new IllegalArgumentException("length < 1: " + length);
|
||||
buf = new char[length];
|
||||
}
|
||||
|
||||
public String nextString() {
|
||||
for (int idx = 0; idx < buf.length; ++idx)
|
||||
buf[idx] = symbols[random.nextInt(symbols.length)];
|
||||
return new String(buf);
|
||||
}
|
||||
|
||||
}
|
94
src/main/java/cf/semikolon/teamspeak/query/QueryEvents.java
Normal file
94
src/main/java/cf/semikolon/teamspeak/query/QueryEvents.java
Normal file
@ -0,0 +1,94 @@
|
||||
package cf.semikolon.teamspeak.query;
|
||||
|
||||
import cf.semikolon.teamspeak.MainClass;
|
||||
import com.github.theholywaffle.teamspeak3.api.TextMessageTargetMode;
|
||||
import com.github.theholywaffle.teamspeak3.api.event.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Created by jan on 26.07.16.
|
||||
*/
|
||||
public class QueryEvents implements TS3Listener {
|
||||
|
||||
@Override
|
||||
public void onTextMessage(TextMessageEvent textMessageEvent) {
|
||||
if (textMessageEvent.getTargetMode() == TextMessageTargetMode.CLIENT) {
|
||||
String message = textMessageEvent.getMessage().toLowerCase();
|
||||
switch (message) {
|
||||
case "!botversion":
|
||||
MainClass.getInstance().getServerQuery().getApi().sendPrivateMessage(textMessageEvent.getInvokerId(), "");
|
||||
break;
|
||||
case "!botinfo":
|
||||
MainClass.getInstance().getServerQuery().getApi().sendPrivateMessage(textMessageEvent.getInvokerId(), "");
|
||||
break;
|
||||
}
|
||||
if (message.contains("!verify")) {
|
||||
String[] array = message.split(" ");
|
||||
if (array.length == 2) {
|
||||
String mcNick = array[1];
|
||||
Player player = Bukkit.getPlayer(mcNick);
|
||||
if (player != null) {
|
||||
String authKey = MainClass.getInstance().getRandomString().nextString();
|
||||
player.sendMessage("§9[TeamSpeakAuth] §7Dein Verifizierungscode:" + authKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClientJoin(ClientJoinEvent clientJoinEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClientLeave(ClientLeaveEvent clientLeaveEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServerEdit(ServerEditedEvent serverEditedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelEdit(ChannelEditedEvent channelEditedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelDescriptionChanged(ChannelDescriptionEditedEvent channelDescriptionEditedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClientMoved(ClientMovedEvent clientMovedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelCreate(ChannelCreateEvent channelCreateEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelDeleted(ChannelDeletedEvent channelDeletedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelMoved(ChannelMovedEvent channelMovedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChannelPasswordChanged(ChannelPasswordChangedEvent channelPasswordChangedEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrivilegeKeyUsed(PrivilegeKeyUsedEvent privilegeKeyUsedEvent) {
|
||||
|
||||
}
|
||||
}
|
@ -1,9 +1,8 @@
|
||||
package cf.semikolon.teamspeak;
|
||||
package cf.semikolon.teamspeak.query;
|
||||
|
||||
import com.github.theholywaffle.teamspeak3.TS3ApiAsync;
|
||||
import com.github.theholywaffle.teamspeak3.TS3Config;
|
||||
import com.github.theholywaffle.teamspeak3.TS3Query;
|
||||
import com.github.theholywaffle.teamspeak3.api.reconnect.ReconnectStrategy;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
Loading…
x
Reference in New Issue
Block a user