Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nom;
- import net.minecraft.command.CommandBase;
- import net.minecraft.command.CommandException;
- import net.minecraft.command.ICommandSender;
- import net.minecraft.server.MinecraftServer;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.fml.common.FMLCommonHandler;
- import net.minecraftforge.fml.common.FMLLog;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
- import net.minecraftforge.fml.common.eventhandler.EventBus;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.fml.common.gameevent.TickEvent;
- import net.minecraftforge.fml.relauncher.ReflectionHelper;
- import java.lang.reflect.Field;
- import java.lang.reflect.Modifier;
- /**
- * @author WireSegal
- * Created at 8:21 AM on 2/20/17.
- */
- @Mod(modid = "servereater", name = "Server Eater", version = "1.1", serverSideOnly = true, acceptedMinecraftVersions = "[1.9,)")
- public class ServerEater {
- @Mod.EventHandler
- public void preInit(FMLPreInitializationEvent e) {
- MinecraftForge.EVENT_BUS.register(this);
- }
- @Mod.EventHandler
- public void serverStarting(FMLServerStartingEvent e) {
- e.registerServerCommand(KillerCommand.INSTANCE);
- }
- @SubscribeEvent
- public void onServerTick(TickEvent.ServerTickEvent e) throws Exception {
- if (KillerCommand.ded) {
- Field field = ReflectionHelper.findField(MinecraftServer.class, "k", "field_147145_h", "LOG");
- field.setAccessible(true);
- Field modifiersField = Field.class.getDeclaredField("modifiers");
- modifiersField.setAccessible(true);
- modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
- field.set(FMLCommonHandler.instance().getMinecraftServerInstance(), null);
- field = FMLLog.class.getDeclaredField("coreLog");
- field.setAccessible(true);
- field.set(null, null);
- field = EventBus.class.getDeclaredField("exceptionHandler");
- field.setAccessible(true);
- field.set(MinecraftForge.EVENT_BUS, null);
- throw new RuntimeException("all is dust");
- }
- }
- private static class KillerCommand extends CommandBase {
- static boolean ded = false;
- static final KillerCommand INSTANCE = new KillerCommand();
- @Override
- public String getName() {
- return "uptimehasnomeaning";
- }
- @Override
- public String getUsage(ICommandSender sender) {
- return "/uptimehasnomeaning";
- }
- @Override
- public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
- ded = true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement