remove kaboom and hasEssentials from config and make it d y n a m i c
This commit is contained in:
parent
fe1b0e12af
commit
848efd3431
7 changed files with 71 additions and 20 deletions
|
@ -75,6 +75,8 @@ public class Bot {
|
|||
public PacketSnifferPlugin packetSniffer;
|
||||
public VoiceChatPlugin voiceChat;
|
||||
public TagPlugin tag;
|
||||
public ServerPluginsManagerPlugin serverPluginsManager;
|
||||
public PluginCheckerPlugin pluginChecker;
|
||||
|
||||
public Bot (Configuration.BotOption botOption, List<Bot> bots, Configuration config) {
|
||||
this.host = botOption.host;
|
||||
|
@ -121,6 +123,8 @@ public class Bot {
|
|||
this.packetSniffer = new PacketSnifferPlugin(this);
|
||||
this.voiceChat = new VoiceChatPlugin(this);
|
||||
this.tag = new TagPlugin(this);
|
||||
this.serverPluginsManager = new ServerPluginsManagerPlugin(this);
|
||||
this.pluginChecker = new PluginCheckerPlugin(this);
|
||||
|
||||
for (Listener listener : listeners) listener.loadedPlugins();
|
||||
|
||||
|
|
|
@ -127,12 +127,10 @@ public class Configuration {
|
|||
public String host;
|
||||
public int port;
|
||||
public String username;
|
||||
public boolean kaboom = false;
|
||||
public boolean creayun = false;
|
||||
public String serverName;
|
||||
public boolean useCore = true;
|
||||
public boolean useChat = false;
|
||||
public boolean hasEssentials = true;
|
||||
public int reconnectDelay = 2000;
|
||||
public boolean removeNamespaces = false;
|
||||
public int chatQueueDelay = 125;
|
||||
|
|
|
@ -52,15 +52,12 @@ public class CorePlugin extends PositionPlugin.Listener {
|
|||
private int nextTransactionId = 0;
|
||||
private final Map<Integer, CompletableFuture<CompoundTag>> transactions = new HashMap<>();
|
||||
|
||||
private final boolean kaboom;
|
||||
|
||||
private int commandsPerSecond = 0;
|
||||
|
||||
private boolean shouldRefill = false;
|
||||
|
||||
public CorePlugin (Bot bot) {
|
||||
this.bot = bot;
|
||||
this.kaboom = bot.options.kaboom;
|
||||
|
||||
this.fromSize = Vector3i.from(
|
||||
bot.config.core.start.x,
|
||||
|
@ -124,7 +121,7 @@ public class CorePlugin extends PositionPlugin.Listener {
|
|||
}
|
||||
|
||||
private void forceRun (String command) {
|
||||
if (kaboom) {
|
||||
if (bot.pluginChecker.hasExtras) {
|
||||
bot.session.send(new ServerboundSetCommandBlockPacket(
|
||||
block,
|
||||
command,
|
||||
|
@ -207,7 +204,7 @@ public class CorePlugin extends PositionPlugin.Listener {
|
|||
);
|
||||
|
||||
final Session session = bot.session;
|
||||
session.send(new ServerboundSetCreativeModeSlotPacket(36, new ItemStack(kaboom ? 492 /* repeating command block id */ : 373 /* command block id */, 64, tag)));
|
||||
session.send(new ServerboundSetCreativeModeSlotPacket(36, new ItemStack(bot.pluginChecker.hasExtras ? 492 /* repeating command block id */ : 373 /* command block id */, 64, tag)));
|
||||
session.send(new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, temporaryBlockPosition, Direction.NORTH, 0));
|
||||
session.send(new ServerboundUseItemOnPacket(temporaryBlockPosition, Direction.UP, Hand.MAIN_HAND, 0.5f, 0.5f, 0.5f, false, 1));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package land.chipmunk.chayapak.chomens_bot.plugins;
|
||||
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class PluginCheckerPlugin extends Bot.Listener {
|
||||
public boolean hasExtras;
|
||||
public boolean hasEssentials;
|
||||
|
||||
public PluginCheckerPlugin(Bot bot) {
|
||||
// dumb
|
||||
bot.executor.scheduleAtFixedRate(() -> {
|
||||
hasExtras = bot.serverPluginsManager.plugins.contains("Extras");
|
||||
hasEssentials = bot.serverPluginsManager.plugins.contains("Essentials");
|
||||
}, 0, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
|
@ -86,29 +86,31 @@ public class SelfCarePlugin extends Bot.Listener {
|
|||
public void check () {
|
||||
final Configuration.SelfCare selfCares = bot.config.selfCare;
|
||||
|
||||
final boolean kaboom = bot.pluginChecker.hasExtras;
|
||||
|
||||
// chat only
|
||||
if (selfCares.op && permissionLevel < 2) bot.chat.send("/minecraft:op @s[type=player]");
|
||||
else if (selfCares.gamemode && gamemode != GameMode.CREATIVE) bot.chat.send("/minecraft:gamemode creative @s[type=player]");
|
||||
else if (selfCares.cspy && !cspy && bot.options.kaboom) bot.chat.send("/commandspy:commandspy on");
|
||||
else if (selfCares.prefix.enabled && !prefix && bot.options.kaboom) bot.chat.send("/extras:prefix " + bot.config.selfCare.prefix.prefix);
|
||||
else if (selfCares.username && !username && bot.options.kaboom) bot.chat.send("/extras:username " + bot.username);
|
||||
else if (selfCares.cspy && !cspy && kaboom) bot.chat.send("/commandspy:commandspy on");
|
||||
else if (selfCares.prefix.enabled && !prefix && kaboom) bot.chat.send("/extras:prefix " + bot.config.selfCare.prefix.prefix);
|
||||
else if (selfCares.username && !username && kaboom) bot.chat.send("/extras:username " + bot.username);
|
||||
|
||||
// core
|
||||
// TODO: improve lol
|
||||
// TODO: improve lol, this is ohio
|
||||
else if (selfCares.icu.enabled && positionPacketsPerSecond > selfCares.icu.positionPacketsPerSecond) bot.core.run("essentials:sudo * icu stop");
|
||||
else if (selfCares.vanish && !vanish && !visibility && bot.options.hasEssentials) {
|
||||
else if (selfCares.vanish && !vanish && !visibility && bot.pluginChecker.hasEssentials) {
|
||||
if (bot.options.useChat) bot.chat.sendCommandInstantly("essentials:vanish enable");
|
||||
else bot.core.run("essentials:vanish " + bot.username + " enable");
|
||||
}
|
||||
else if (selfCares.nickname && !nickname && bot.options.hasEssentials) {
|
||||
else if (selfCares.nickname && !nickname && bot.pluginChecker.hasEssentials) {
|
||||
if (bot.options.useChat) bot.chat.sendCommandInstantly("essentials:nick off");
|
||||
else bot.core.run("essentials:nickname " + bot.username + " off");
|
||||
}
|
||||
else if (selfCares.socialspy && !socialspy && bot.options.hasEssentials) {
|
||||
else if (selfCares.socialspy && !socialspy && bot.pluginChecker.hasEssentials) {
|
||||
if (bot.options.useChat) bot.chat.sendCommandInstantly("essentials:socialspy enable");
|
||||
else bot.core.run("essentials:socialspy " + bot.username + " enable");
|
||||
}
|
||||
else if (selfCares.mute && muted && bot.options.hasEssentials) {
|
||||
else if (selfCares.mute && muted && bot.pluginChecker.hasEssentials) {
|
||||
if (bot.options.useChat) bot.chat.sendCommandInstantly("essentials:mute " + bot.profile.getIdAsString());
|
||||
else bot.core.run("essentials:mute " + bot.profile.getIdAsString());
|
||||
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package land.chipmunk.chayapak.chomens_bot.plugins;
|
||||
|
||||
import com.github.steveice10.mc.protocol.packet.ingame.clientbound.ClientboundCommandSuggestionsPacket;
|
||||
import com.github.steveice10.packetlib.event.session.ConnectedEvent;
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class ServerPluginsManagerPlugin extends Bot.Listener {
|
||||
private final Bot bot;
|
||||
|
||||
public List<String> plugins = new ArrayList<>();
|
||||
|
||||
public ServerPluginsManagerPlugin (Bot bot) {
|
||||
this.bot = bot;
|
||||
|
||||
bot.addListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connected(ConnectedEvent event) {
|
||||
final CompletableFuture<ClientboundCommandSuggestionsPacket> future = bot.tabComplete.tabComplete("/ver ");
|
||||
|
||||
future.thenApply((packet) -> {
|
||||
final String[] matches = packet.getMatches();
|
||||
|
||||
// should i just use the plugins as the String array instead of a list?
|
||||
plugins = new ArrayList<>(Arrays.asList(matches));
|
||||
|
||||
return packet;
|
||||
});
|
||||
}
|
||||
}
|
|
@ -101,24 +101,20 @@ eval:
|
|||
|
||||
bots:
|
||||
# username - optional, if not specified it will just use a random username
|
||||
# kaboom - defaults to false
|
||||
# creayun - same as kaboom
|
||||
# creayun - defaults to false
|
||||
# serverName - name it whatever you like, it will be used as server name in trusted broadcast and in console
|
||||
# useCore - if enabled it just sends the command using chat instead of using core. recommended to enable useChat too when this is enabled
|
||||
# useChat - when the bot tellraws it will chat instead of using the core to run tellraw
|
||||
# hasEssentials - if the server has essentials plugin just set it to true!! ! !!31
|
||||
# removeNamespaces - when the bot sends a command it will remove like `minecraft:` for example if set to true
|
||||
# coreRateLimit - will ignore commands if reached the ratelimit
|
||||
|
||||
- host: 'localhost'
|
||||
port: 25565
|
||||
username: 'ChomeNS_Bot'
|
||||
kaboom: false
|
||||
creayun: false
|
||||
serverName: 'Localhost'
|
||||
useCore: true
|
||||
useChat: false
|
||||
hasEssentials: false
|
||||
reconnectDelay: 2000
|
||||
removeNamespaces: false
|
||||
chatQueueDelay: 125
|
||||
|
|
Loading…
Reference in a new issue