module system
This commit is contained in:
parent
6185e12153
commit
8834e133bd
27
.devcontainer/devcontainer.json
Normal file
27
.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/java
|
||||
{
|
||||
"name": "Java",
|
||||
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||
"image": "mcr.microsoft.com/devcontainers/java:1-11-bullseye",
|
||||
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/java:1": {
|
||||
"version": "none",
|
||||
"installMaven": "false",
|
||||
"installGradle": "false"
|
||||
}
|
||||
}
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "java -version",
|
||||
|
||||
// Configure tool-specific properties.
|
||||
// "customizations": {},
|
||||
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
}
|
12
src/main/java/net/FatalCodes/shadow/Shadow.java
Normal file
12
src/main/java/net/FatalCodes/shadow/Shadow.java
Normal file
|
@ -0,0 +1,12 @@
|
|||
package net.FatalCodes.shadow;
|
||||
|
||||
import net.FatalCodes.shadow.module.ModuleManager;
|
||||
|
||||
public class Shadow {
|
||||
public static ModuleManager moduleManager;
|
||||
|
||||
|
||||
public static void ShadowClientStartup() {
|
||||
moduleManager = new ModuleManager();
|
||||
}
|
||||
}
|
5
src/main/java/net/FatalCodes/shadow/module/Category.java
Normal file
5
src/main/java/net/FatalCodes/shadow/module/Category.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
package net.FatalCodes.shadow.module;
|
||||
|
||||
public enum Category {
|
||||
HUD, ADMIN
|
||||
}
|
104
src/main/java/net/FatalCodes/shadow/module/Module.java
Normal file
104
src/main/java/net/FatalCodes/shadow/module/Module.java
Normal file
|
@ -0,0 +1,104 @@
|
|||
package net.FatalCodes.shadow.module;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraft.client.multiplayer.PlayerControllerMP;
|
||||
import net.minecraft.client.multiplayer.WorldClient;
|
||||
import net.minecraft.network.Packet;
|
||||
|
||||
public class Module {
|
||||
|
||||
protected Minecraft mc = Minecraft.getMinecraft();
|
||||
private String name;
|
||||
private int key;
|
||||
private boolean toggled;
|
||||
private Category category;
|
||||
|
||||
public Module(String nm, int k, Category c) {
|
||||
name = nm;
|
||||
key = k;
|
||||
category = c;
|
||||
toggled = false;
|
||||
setup();
|
||||
|
||||
}
|
||||
|
||||
public void toggle() {
|
||||
toggled = !toggled;
|
||||
if(toggled) {
|
||||
onEnable();
|
||||
}else {
|
||||
onDisable();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onEnable() {}
|
||||
public void onDisable() {}
|
||||
public void onUpdate() {}
|
||||
public void onRender() {}
|
||||
public void setup() {}
|
||||
|
||||
|
||||
public Minecraft getMc() {
|
||||
return mc;
|
||||
}
|
||||
|
||||
public void setMc(Minecraft mc) {
|
||||
this.mc = mc;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(int key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public boolean isToggled() {
|
||||
return toggled;
|
||||
}
|
||||
|
||||
public void setToggled(boolean toggled) {
|
||||
this.toggled = toggled;
|
||||
}
|
||||
|
||||
public Category getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public void setCategory(Category category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
protected EntityPlayerSP player() {
|
||||
return mc.thePlayer;
|
||||
}
|
||||
|
||||
protected PlayerControllerMP playerController() {
|
||||
return mc.playerController;
|
||||
}
|
||||
|
||||
protected WorldClient world() {
|
||||
return mc.theWorld;
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
protected void sendPacket(Packet p) {
|
||||
player().sendQueue.addToSendQueue(p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package net.FatalCodes.shadow.module;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
|
||||
public class ModuleManager {
|
||||
|
||||
private static ArrayList<Module> mods;
|
||||
|
||||
public ModuleManager() {
|
||||
mods = new ArrayList<Module>();
|
||||
|
||||
}
|
||||
|
||||
public static void newMod(Module m) {
|
||||
mods.add(m);
|
||||
}
|
||||
|
||||
public static ArrayList<Module> getModules(){
|
||||
return mods;
|
||||
}
|
||||
|
||||
public static void onUpdate() {
|
||||
for(Module m : mods) {
|
||||
m.onUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
public static void onRender() {
|
||||
for(Module m : mods) {
|
||||
m.onRender();
|
||||
}
|
||||
}
|
||||
|
||||
public static void onKey(int k) {
|
||||
for(Module m : mods) {
|
||||
if(m.getKey() == k) {
|
||||
m.toggle();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void addChatMessage(String message) {
|
||||
message = "\2479" + "Shadow Client" + "\2477: " + message;
|
||||
|
||||
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
|
||||
}
|
||||
|
||||
}
|
128
src/main/java/net/FatalCodes/shadow/module/RenderModule.java
Normal file
128
src/main/java/net/FatalCodes/shadow/module/RenderModule.java
Normal file
|
@ -0,0 +1,128 @@
|
|||
package net.FatalCodes.shadow.module;
|
||||
|
||||
import net.lax1dude.eaglercraft.v1_8.Mouse;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
|
||||
public class RenderModule extends Module {
|
||||
|
||||
public boolean dragging = false;
|
||||
|
||||
public RenderModule(String name, int k, Category cat, int x, int y, int width, int height) {
|
||||
super(name, k, cat);
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
public int x,y,width,height;
|
||||
public int lastX;
|
||||
public int lastY;
|
||||
|
||||
public void draw() {
|
||||
|
||||
}
|
||||
|
||||
public void Resize() {
|
||||
if((getX() + getWidth()) > GuiScreen.width) {
|
||||
this.x = GuiScreen.width - getWidth();
|
||||
dragging = false;
|
||||
} else if ((getY() + getHeight()) > GuiScreen.height) {
|
||||
this.y = GuiScreen.height - getHeight();
|
||||
dragging = false;
|
||||
} else if ((getX()) < 0) {
|
||||
this.x = 0;
|
||||
dragging = false;
|
||||
} else if ((getY()) < 0) {
|
||||
this.y = 0;
|
||||
dragging = false;
|
||||
} else if (getX() <= 0 && getY() < 0) {
|
||||
this.y = 0;
|
||||
this.x = 0;
|
||||
dragging = false;
|
||||
} else if (getX() + getWidth() > GuiScreen.width && getY() < 0) {
|
||||
this.x = GuiScreen.width - getWidth();
|
||||
this.y = 0;
|
||||
dragging = false;
|
||||
} else if (getX() + getWidth() > GuiScreen.width && getY() + getHeight() > GuiScreen.height) {
|
||||
this.x = GuiScreen.width - getWidth();
|
||||
this.y = GuiScreen.height - getHeight();
|
||||
dragging = false;
|
||||
} else if (getY() + getHeight() > GuiScreen.height && getX() < 0) {
|
||||
this.x = GuiScreen.width - getWidth();
|
||||
this.y = GuiScreen.height - getHeight();
|
||||
dragging = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void draggingFix(int mouseX, int mouseY) {
|
||||
if (this.dragging) {
|
||||
this.x = mouseX + this.lastX;
|
||||
this.y = mouseY + this.lastY;
|
||||
if(!Mouse.isButtonDown(0)) this.dragging = false;
|
||||
|
||||
if(this.x >= GuiScreen.width - getWidth()) {
|
||||
this.dragging = false;
|
||||
}
|
||||
if(this.y >= GuiScreen.height - getHeight()) {
|
||||
this.dragging = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void renderLayout(int mouseX, int mouseY) {
|
||||
Resize();
|
||||
boolean mouseOver = mouseX >= getX() && mouseY >= getY() && mouseX < getX() + getWidth() && mouseY < getY() + this.getHeight();
|
||||
boolean mouseOverX = (mouseX >= this.x && mouseX <= this.x+this.getWidth());
|
||||
boolean mouseOverY = (mouseY >= this.y && mouseY <= this.y+this.getHeight());
|
||||
boolean drag = (mouseOverX && mouseOverY && Mouse.isButtonDown(0));
|
||||
draggingFix(mouseX, mouseY);
|
||||
if(drag) {
|
||||
if (!this.dragging) {
|
||||
this.lastX = x - mouseX;
|
||||
this.lastY = y - mouseY;
|
||||
this.dragging = true;
|
||||
}
|
||||
}
|
||||
draw();
|
||||
Gui.drawRect(this.x, this.y, this.x + this.getWidth(), this.y+this.getHeight(), 0x50FFFFFF);
|
||||
Gui.drawRect(this.x, this.y, this.x+this.getWidth(), this.y+1, 0xFFFFFFFF);
|
||||
Gui.drawRect(this.x, this.y, this.x+1, this.y+getHeight(), 0xFFFFFFFF);
|
||||
Gui.drawRect(this.x+this.getWidth()-1, this.y, this.x+getWidth(), this.y+this.getHeight(), 0xFFFFFFFF);
|
||||
Gui.drawRect(this.x, this.y+this.getHeight()-1, this.x+getWidth(), this.y+this.getHeight(), 0xFFFFFFFF);
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public void setY(int y) {
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
return width;
|
||||
}
|
||||
|
||||
public int getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
public void setWidth(int width) {
|
||||
this.width = width;
|
||||
}
|
||||
|
||||
public void setHeight(int height) {
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
}
|
|
@ -18,6 +18,7 @@ import org.apache.commons.lang3.Validate;
|
|||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.FatalCodes.shadow.Shadow;
|
||||
import net.lax1dude.eaglercraft.v1_8.Display;
|
||||
import net.lax1dude.eaglercraft.v1_8.EagRuntime;
|
||||
import net.lax1dude.eaglercraft.v1_8.HString;
|
||||
|
@ -455,6 +456,7 @@ public class Minecraft implements IThreadListener {
|
|||
SkinPreviewRenderer.initialize();
|
||||
this.checkGLError("Post startup");
|
||||
this.ingameGUI = new GuiIngame(this);
|
||||
Shadow.ShadowClientStartup();
|
||||
|
||||
ServerList.initServerList(this);
|
||||
EaglerProfile.read();
|
||||
|
@ -1377,6 +1379,7 @@ public class Minecraft implements IThreadListener {
|
|||
if (this.currentScreen != null) {
|
||||
this.currentScreen.handleKeyboardInput();
|
||||
} else {
|
||||
Shadow.moduleManager.onKey(k);
|
||||
if (k == 1 || (k > -1 && k == this.gameSettings.keyBindClose.getKeyCode())) {
|
||||
this.displayInGameMenu();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.client.entity;
|
||||
|
||||
import net.FatalCodes.shadow.Shadow;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.MovingSoundMinecartRiding;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
|
@ -594,6 +595,7 @@ public class EntityPlayerSP extends AbstractClientPlayer {
|
|||
* to react to sunlight and start to burn.
|
||||
*/
|
||||
public void onLivingUpdate() {
|
||||
Shadow.moduleManager.onUpdate();
|
||||
if (this.sprintingTicksLeft > 0) {
|
||||
--this.sprintingTicksLeft;
|
||||
if (this.sprintingTicksLeft == 0) {
|
||||
|
|
|
@ -47,8 +47,8 @@ public abstract class GuiScreen extends Gui implements GuiYesNoCallback {
|
|||
private static final Splitter NEWLINE_SPLITTER = Splitter.on('\n');
|
||||
protected Minecraft mc;
|
||||
protected RenderItem itemRender;
|
||||
public int width;
|
||||
public int height;
|
||||
public static int width;
|
||||
public static int height;
|
||||
/**+
|
||||
* A list of all the buttons in this container.
|
||||
*/
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.concurrent.Callable;
|
|||
import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Predicates;
|
||||
|
||||
import net.FatalCodes.shadow.Shadow;
|
||||
import net.lax1dude.eaglercraft.v1_8.Display;
|
||||
import net.lax1dude.eaglercraft.v1_8.Mouse;
|
||||
import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
|
||||
|
@ -1267,6 +1268,7 @@ public class EntityRenderer implements IResourceManagerReloadListener {
|
|||
}
|
||||
|
||||
this.mc.mcProfiler.endStartSection("hand");
|
||||
Shadow.moduleManager.onRender();
|
||||
if (this.renderHand) {
|
||||
GlStateManager.clear(GL_DEPTH_BUFFER_BIT);
|
||||
this.renderHand(partialTicks, pass);
|
||||
|
|
Loading…
Reference in New Issue
Block a user