Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Posts

  • Joined

  • Last visited

MrFunny's Achievements

Tree Puncher

Tree Puncher (2/8)



  1. Not only for that. can you not ask unnecessary questions?
  2. How about forge hacks and another. For example launcher checks hash, automatical update from server and another things.
  3. I need to install mods and other things in 1 click with site and others features for server. Can you just leave example for send and handle or not?
  4. Because I have modded server and with custom launcher. I have JWT token and on login I need send to server this token and on server i need to validate this token.
  5. Im currently using this, but nothing happens package me.mrfunny.nextlevelauth; import com.google.gson.Gson; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.network.PacketBuffer; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.TranslationTextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.network.NetworkEvent; import net.minecraftforge.fml.network.NetworkRegistry; import net.minecraftforge.fml.network.simple.SimpleChannel; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Scanner; import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.Supplier; // The value here should match an entry in the META-INF/mods.toml file @Mod("nextlevelauth") public class ExampleMod { // Directly reference a log4j logger. private static final Logger LOGGER = LogManager.getLogger(); private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel INSTANCE = NetworkRegistry.newSimpleChannel( new ResourceLocation("nextlevelauth", "authmain"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); private int id = 0; public ExampleMod() { MinecraftForge.EVENT_BUS.register(ExampleMod.class); try{ INSTANCE.registerMessage(id, AuthMessage.class, new BiConsumer<AuthMessage, PacketBuffer>() { @Override public void accept(AuthMessage authMessage, PacketBuffer packetBuffer) { id++; packetBuffer.writeString(authMessage.token); } }, new Function<PacketBuffer, AuthMessage>() { @Override public AuthMessage apply(PacketBuffer packetBuffer) { LOGGER.info("logged in1"); return new AuthMessage(packetBuffer.readString()); } }, new BiConsumer<AuthMessage, Supplier<NetworkEvent.Context>>() { @Override public void accept(AuthMessage authMessage, Supplier<NetworkEvent.Context> contextSupplier) { LOGGER.info("logged in2"); handle(authMessage, contextSupplier); } }); } catch (Exception exception){ exception.printStackTrace(); } } public static void handle(AuthMessage msg, Supplier<NetworkEvent.Context> ctx) { ctx.get().enqueueWork(() -> { ServerPlayerEntity sender = ctx.get().getSender(); // the client that sent this packet try{ URL url = new URL("https://nextlevel.su/api/v1/user/"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.addRequestProperty("User-Agent", "PostmanRuntime/7.26.8"); connection.addRequestProperty("Authorization", "Bearer " + msg.token); connection.addRequestProperty("Content-Type", "application/json"); connection.addRequestProperty("Accept", "application/json"); connection.connect(); int responseCode = connection.getResponseCode(); if(responseCode != 200){ connection.disconnect(); sender.disconnect(); return; } ctx.get().setPacketHandled(true); connection.disconnect(); } catch (Exception exception){ exception.printStackTrace(); ctx.get().getSender().disconnect(); } }); } @OnlyIn(Dist.CLIENT) @SubscribeEvent public static void onJoin(PlayerEvent.PlayerLoggedInEvent event){ try { LOGGER.info("connected"); } catch (Exception exception) { exception.printStackTrace(); } } public static String readFile(String path, Charset encoding) { byte[] encoded = new byte[0]; try { encoded = Files.readAllBytes(Paths.get(path)); } catch (IOException exception) { exception.printStackTrace(); } return new String(encoded, encoding).replace("\n", "").replace("\r", ""); } } My AuthMessage class package me.mrfunny.nextlevelauth; public class AuthMessage { public String token; public AuthMessage(String token){ this.token = token; } }
  6. I need to code system, when client connects to server, send packet and handle it on server side.
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.