Skip to content

Commit

Permalink
Rename PlayerLeaveEvent.java to DisconnectEvent and fixed TickTimer. …
Browse files Browse the repository at this point in the history
…Spammer saves spamFile path. Module saving changed.
  • Loading branch information
tanishisherewithhh committed Aug 24, 2024
1 parent 1bb15fe commit 54d18f0
Show file tree
Hide file tree
Showing 13 changed files with 108 additions and 61 deletions.
7 changes: 2 additions & 5 deletions src/main/java/dev/heliosclient/HeliosClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import dev.heliosclient.addon.AddonManager;
import dev.heliosclient.event.SubscribeEvent;
import dev.heliosclient.event.events.client.FontChangeEvent;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.event.listener.Listener;
import dev.heliosclient.hud.HudElementList;
import dev.heliosclient.managers.*;
Expand All @@ -26,10 +26,7 @@
import dev.heliosclient.util.render.Renderer2D;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.world.WorldSaveHandler;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
Expand Down Expand Up @@ -121,7 +118,7 @@ public static boolean shouldUpdate() {
}

@SubscribeEvent
public void onDisconnect(PlayerLeaveEvent client) {
public void onDisconnect(DisconnectEvent client) {
HeliosClient.saveConfigHook();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import net.minecraft.entity.player.PlayerEntity;

@Cancelable
@LuaEvent("PlayerLeaveEvent")
public class PlayerLeaveEvent extends Event {
@LuaEvent("DisconnectEvent")
public class DisconnectEvent extends Event {
private final PlayerEntity player;

public PlayerLeaveEvent(PlayerEntity player) {
public DisconnectEvent(PlayerEntity player) {
this.player = player;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import dev.heliosclient.event.Event;
import dev.heliosclient.event.events.TickEvent;
import dev.heliosclient.event.events.client.OpenScreenEvent;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.managers.EventManager;
import dev.heliosclient.managers.ModuleManager;
import dev.heliosclient.module.modules.player.FastUse;
Expand Down Expand Up @@ -66,7 +66,7 @@ private void onItemUse(CallbackInfo ci, Hand[] var1, int var2, int var3, Hand ha
private void onDisconnect(Screen screen, CallbackInfo info) {
if (world != null) {
PlayerEntity player = HeliosClient.MC.player;
Event event = new PlayerLeaveEvent(player);
Event event = new DisconnectEvent(player);
if (EventManager.postEvent(event).isCanceled())
info.cancel();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.mojang.brigadier.ParseResults;
import dev.heliosclient.HeliosClient;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.managers.EventManager;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayNetworkHandler;
Expand All @@ -20,7 +20,7 @@ public abstract class MixinServerPlayNetworkHandler {

@Inject(method = "onDisconnected", at = @At("RETURN"), cancellable = true)
private void onDisconnected(Text reason, CallbackInfo ci) {
PlayerLeaveEvent event = new PlayerLeaveEvent(HeliosClient.MC.player);
DisconnectEvent event = new DisconnectEvent(HeliosClient.MC.player);
EventManager.postEvent(event);
if (event.isCanceled()) {
ci.cancel();
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/dev/heliosclient/mixin/PlayerManagerMixin.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.heliosclient.mixin;

import dev.heliosclient.event.Event;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.managers.EventManager;
import net.minecraft.server.PlayerManager;
import net.minecraft.server.network.ServerPlayerEntity;
Expand All @@ -14,7 +14,7 @@
public abstract class PlayerManagerMixin {
@Inject(method = "remove", at = @At("TAIL"), cancellable = true)
private void onDisconnect(ServerPlayerEntity player, CallbackInfo ci) {
Event event = new PlayerLeaveEvent(player);
Event event = new DisconnectEvent(player);
if (EventManager.postEvent(event).isCanceled())
ci.cancel();
}
Expand Down
13 changes: 6 additions & 7 deletions src/main/java/dev/heliosclient/module/Module_.java
Original file line number Diff line number Diff line change
Expand Up @@ -288,22 +288,21 @@ public Object saveToFile(List<Object> list) {

@Override
public void loadFromFile(Map<String, Object> MAP) {
if(MAP == null) {
HeliosClient.LOGGER.error("Null map passed while loading Module: {}", this.name);
return;
}

for (SettingGroup settingGroup : this.settingGroups) {
for (Setting<?> setting : settingGroup.getSettings()) {
if (!setting.shouldSaveAndLoad()) continue;


Map<String, Object> settingTable = HeliosClient.CONFIG.cast(MAP.get(this.name.replace(" ", "")));
if (settingTable != null) {

//Any error caught should not cause the whole config system to fail to load.
//Hopefully
try {
setting.loadFromFile(settingTable);
setting.loadFromFile(MAP);
} catch (Exception e) {
e.printStackTrace();
}
}
if (setting == this.active && this.isActive()) {
this.onEnable();
}
Expand Down
73 changes: 60 additions & 13 deletions src/main/java/dev/heliosclient/module/modules/chat/Spammer.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,27 @@

import dev.heliosclient.event.SubscribeEvent;
import dev.heliosclient.event.events.TickEvent;
import dev.heliosclient.event.events.client.OpenScreenEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.module.Categories;
import dev.heliosclient.module.Module_;
import dev.heliosclient.module.settings.*;
import dev.heliosclient.module.settings.buttonsetting.ButtonSetting;
import dev.heliosclient.system.UniqueID;
import dev.heliosclient.util.ChatUtils;
import dev.heliosclient.util.ColorUtils;
import dev.heliosclient.util.FileUtils;
import dev.heliosclient.util.InputBox;
import dev.heliosclient.system.config.Config;
import dev.heliosclient.util.*;
import net.minecraft.client.gui.screen.DisconnectedScreen;
import net.minecraft.client.realms.gui.screen.DisconnectedRealmsScreen;
import net.minecraft.util.math.random.Random;

import java.io.File;
import java.util.List;
import java.util.Map;

public class Spammer extends Module_ {
public File spamFile = null;
public Random rand = Random.create();
int timer = 0;
TickTimer timer = new TickTimer();
String[] spamLines = null;
int lineIndex;
SettingGroup sgGeneral = new SettingGroup("General");
Expand Down Expand Up @@ -90,7 +93,13 @@ public class Spammer extends Module_ {
.roundingPlace(0)
.build()
);

BooleanSetting toggleOnDisconnect = sgGeneral.add(new BooleanSetting.Builder()
.name("Disable on disconnect")
.description("Toggles the module off when you disconnect")
.value(true)
.onSettingChange(this)
.build()
);

public Spammer() {
super("Spammer", "Spams messages in chat", Categories.MISC);
Expand All @@ -110,10 +119,16 @@ public Spammer() {
public void onEnable() {
super.onEnable();
lineIndex = 0;
timer = 0;
timer.startTicking();
setSpamLines();
}

@Override
public void onDisable() {
super.onDisable();
timer.resetTimer();
}

public void setSpamLines() {
if (mode.getOption() == Mode.File) {
if (spamFile == null) {
Expand All @@ -130,10 +145,22 @@ public void setSpamLines() {
}

@SubscribeEvent
public void onTick(TickEvent.PLAYER event) {
if (timer > delay.value) {
timer = 0;
public void onDisconnectScreen(OpenScreenEvent event) {
if(toggleOnDisconnect.value && (event.screen instanceof DisconnectedScreen || event.screen instanceof DisconnectedRealmsScreen)){
toggle();
}
}

@SubscribeEvent
public void onDisconnect(DisconnectEvent event) {
if(toggleOnDisconnect.value){
toggle();
}
}

@SubscribeEvent
public void onTick(TickEvent.PLAYER event) {
timer.incrementAndEvery(delay.getInt(),() -> {
String lineToSend = next();
if (antiantiSpam.value) {
lineToSend += " " + UniqueID.setLengthAndGet((int) antispam_length.value).getUniqueID();
Expand All @@ -143,9 +170,7 @@ public void onTick(TickEvent.PLAYER event) {
} else {
ChatUtils.sendPlayerMessage(lineToSend);
}
} else {
timer++;
}
});
}

public String next() {
Expand All @@ -166,6 +191,28 @@ public void onSettingChange(Setting<?> setting) {
}
}

@Override
public Object saveToFile(List<Object> list) {
Map<String,Object> map = Config.cast(super.saveToFile(list));

map.put("File",spamFile == null ? "unknown" : spamFile.getAbsolutePath());

return map;
}

@Override
public void loadFromFile(Map<String, Object> MAP) {
super.loadFromFile(MAP);

String filePath = (String) MAP.get("File");
if(filePath.equals("unknown")) return;
spamFile = new File(filePath);

if (spamFile.exists() && spamFile.isFile()) {
selectFile.setButtonCategoryText("File Selected: " + spamFile.getName());
}
}

public enum Mode {
File,
String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.heliosclient.module.modules.player;

import dev.heliosclient.event.SubscribeEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.event.events.player.PacketEvent;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.module.Categories;
import dev.heliosclient.module.Module_;
import dev.heliosclient.module.settings.BooleanSetting;
Expand Down Expand Up @@ -68,7 +68,7 @@ public void onDisable() {
}

@SubscribeEvent
public void onLeave(PlayerLeaveEvent event) {
public void onLeave(DisconnectEvent event) {
clearPackets(false);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.heliosclient.module.modules.world;

import dev.heliosclient.event.SubscribeEvent;
import dev.heliosclient.event.events.player.PlayerLeaveEvent;
import dev.heliosclient.event.events.player.DisconnectEvent;
import dev.heliosclient.event.events.render.Render3DEvent;
import dev.heliosclient.event.events.world.ChunkDataEvent;
import dev.heliosclient.module.Categories;
Expand Down Expand Up @@ -94,7 +94,7 @@ public void onDisable() {
}

@SubscribeEvent
public void onDisconnect(PlayerLeaveEvent event) {
public void onDisconnect(DisconnectEvent event) {
if (remove.value) {
clearChunkData();
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/dev/heliosclient/system/config/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,14 +141,14 @@ public void loadModules() {
Map<String, Object> trashMap = cast(panesMap.get(category.name));

for (Module_ m : ModuleManager.getModulesByCategory(category)) {
m.loadFromFile(trashMap);
m.loadFromFile(cast(trashMap.get(m.name.replace(" ",""))));
}
}
});
LOGGER.info("Loading Modules Complete");
}

public Map<String, Object> cast(Object e) {
public static Map<String, Object> cast(Object e) {
return (Map<String, Object>) e;
}

Expand Down
16 changes: 9 additions & 7 deletions src/main/java/dev/heliosclient/util/TickTimer.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package dev.heliosclient.util;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class TickTimer {
private int ticks = 0;
boolean hasTimerStarted = false;
private boolean hasTimerStarted = false;

public TickTimer(int defaultTicks) {
ticks = defaultTicks;
Expand Down Expand Up @@ -47,16 +43,20 @@ public void increment(){

// Checks if ticks have passed since the last reset
public boolean every(int ticks) {
if (getElapsedTicks() >= ticks)
if (getElapsedTicks() >= ticks) {
resetTimer();
startTicking();
}
return getElapsedTicks() >= ticks;
}


public boolean incrementAndEvery(int ticks) {
increment();
if (getElapsedTicks() >= ticks)
if (getElapsedTicks() >= ticks) {
resetTimer();
startTicking();
}
return getElapsedTicks() >= ticks;
}

Expand All @@ -65,6 +65,7 @@ public boolean incrementAndEvery(int ticks, Runnable task) {
if (getElapsedTicks() >= ticks) {
task.run();
resetTimer();
startTicking();
}
return getElapsedTicks() >= ticks;
}
Expand All @@ -73,6 +74,7 @@ public boolean every(int ticks, Runnable task) {
if (getElapsedTicks() >= ticks) {
task.run();
resetTimer();
startTicking();
}
return getElapsedTicks() >= ticks;
}
Expand Down
Loading

0 comments on commit 54d18f0

Please sign in to comment.