Jump to content

Introduction and New Server for Forums!


Recommended Posts

Guest Mr. Flamegoat
Posted

Howdy, all!

 

Quick intro: my name is MrFlamegoat aka Matt. Some of you know me, many of you won't and that's okay. I'm stepping in to help out with the forums a bit more.

 

Firstly, we've moved the forums to a new server and there were a few hiccups along the way. Everything seems to be in order now though, and hopefully everything is moving quickly for everyone.

 

Secondly, if you notice anything out of place, broken, or that just seems wonky PLEASE POST HERE. I'd love to know and I'll be working over the next couple of weeks to update, polish, clean, and optimize.

 

I think that's it. Hopefully this move didn't affect anyone too negatively.

 

Look forward to the feedback, thanks everyone!

 

Update: Email Issues Resolved!

We're now utilizing a 3rd party MTA (sparkpost) to handle all outbound emails from the forums. This should be much more reliable than default PHP methods, as well as being faster and validated. Emails should make it to your inboxes more often while avoiding the doom and gloom of the Spam folder.

 

Emails will now appear as forums@minecraftforge[dot]net via a sparkpost hostname.  Apologies to anyone that had the previous address filtered!

 

Update: Code Highlighter

Added a code highlighter that I can modify and change. It should be forward compatible (I'm removing things that are not, as well as anything that changes core files to an unpatchable state).

 

Let me know what you guys think about it.

 

Update: Forums upgraded and theme has been updated a bit.

I've patched the forums to the latest available (2.0.11) and made some rather large changes to the current theme to bring it a little closer to the modern age. It's still a long way from where I'd like it, but hopefully everything feels a bit more professional.

 

I've removed a few things (team page, various little bits) until I can update them to all fit coherently together. If you guys have any thoughts or opinions on the style and direction, please let me know!

 

If you just don't really care, that's fine too! :D

 

Update: Code Highlighting mostly fixed!

Automatic detection of language is not terribly easy - sometimes your code snippet may default to a language other than Java. If that happens, you can specify from changing the code tag from "code" to "code=java" or other supported language.

 

I've added gradle/groovy as supported languages and can add others as required.

Guest Mr. Flamegoat
Posted

It should get quite a bit faster, too! Well, technically speaking. Might not notice it - but I'm doing my best.

 

We should be updating to the latest SMF in the next day or two. That should help quite a bit with some of the few hiccups left that I haven't been able to work out.

 

Feel free to yell in my general direction if anything is out of place, missing, or broken :D

Guest Mr. Flamegoat
Posted

Very likely, but not directly :D

 

I've fixed quite a few errors that may have been preventing other JS events from firing. :D

Guest Mr. Flamegoat
Posted

I was actually afraid people would get mad. It's not perfect, but it's the best I can offer at the moment. :D

 

I'm having to move modules around and get it prepared for the upgrade :D It's forward compatible, so it's on the list!

Posted

Liking the new changes so far! (Especially the code syntax highlighting!)

Colore - The mod that adds monochrome blocks in every color of the rainbow!

http://www.minecraftforge.net/forum/index.php?topic=35149

 

If you're looking to learn how to make mods for 1.9.4, I wrote a helpful article with links to a lot of useful resources for learning Minecraft 1.9.4 modding!

 

http://supergeniuszeb.com/mods/a-helpful-list-of-minecraft-1-9-4-modding-resources/

Guest Mr. Flamegoat
Posted

There's a slight bug with the syntax highlighter:

 

// Tools (After Enum it's; Harvest Level, Durability/Uses

 

The highlighter thinks everything after the ' is in a string, but it's not because the line is commented.

 

Yea I've got some work to do on the highlighter. Some of the themes don't have appropriate language syntax. Will update soon!

Posted

If you post a log here in the forums the editor begins to lag after you pasted it in.

I don't know how long the log needs to be to let the editor lag, but I had the problems with a 500 lines log in a spoiler.

 

Besides that, nice forum update. :)

Finally something better then before with this forum. For me the old one had really long loading times compared to other websites...

Keep up the good work. ;)

Developer of Primeval Forest.

Guest Mr. Flamegoat
Posted

The Wiki button at files.minecraftforge.net is leading to 404 page (obviously because it is keeping the files. at the begining), I would suggest to fix it.

 

Hrm, I don't have access to files currently - but I will definitely pass that along!

 

If you post a log here in the forums the editor begins to lag after you pasted it in.

I don't know how long the log needs to be to let the editor lag, but I had the problems with a 500 lines log in a spoiler.

 

Besides that, nice forum update. :)

Finally something better then before with this forum. For me the old one had really long loading times compared to other websites...

Keep up the good work. ;)

 

I will look into this ASAP. Not sure how much JS is running to process the text box at the moment, but it's probably due to that. I'll see if there's anything I can fix or improve!

Posted

Found a bug (not sure if it was there before or not):

 

When typing a post, if you try to expand the editor box by dragging the double-lined bar at the bottom, it won't work. The double-diagonal line in the corner does work, however. Not really that big of an issue, but I thought I'd let you know anyway.

Colore - The mod that adds monochrome blocks in every color of the rainbow!

http://www.minecraftforge.net/forum/index.php?topic=35149

 

If you're looking to learn how to make mods for 1.9.4, I wrote a helpful article with links to a lot of useful resources for learning Minecraft 1.9.4 modding!

 

http://supergeniuszeb.com/mods/a-helpful-list-of-minecraft-1-9-4-modding-resources/

Guest Mr. Flamegoat
Posted

Found a bug (not sure if it was there before or not):

 

When typing a post, if you try to expand the editor box by dragging the double-lined bar at the bottom, it won't work. The double-diagonal line in the corner does work, however. Not really that big of an issue, but I thought I'd let you know anyway.

 

Released another major update to the theme. Tried to figure this one out but it appears it's been around a while.

 

No fix available at the moment without digging into the SMF editor and well, it's not good lol. :D

 

Might see if I can just hide it, that way at least it's not a visible broken feature.

Posted

The "new" markers on the individual forum pages are broken. It seems like if there is at least one "new" thread, all of them have the marker.

I think it is. I just read a few threads in Modder Support, and when one of them got a new reply, every thread showed the "new" label. When I read the new reply, went back to Modder Support and refreshed the page, the "new" markers dissappeared.

 

EDIT: If you click the "new" button on a post without a new reply, it goes to another thread which does have a new reply.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Posted

As they say: fix a bug, now you have 99 more :v

The only thing that I found (which may be on my side only, cause I have shit pc and internet), is that when you click the + to expand at Forum History (at the Statistics Center), the Loading that pops up on the top, sometimes, flicks a lot, and may cause problems to people who suffer from epilepsy.

Creating Potatium Craft, please wait.

For a better (and yet poor explanation of my WIP mod, go to: Potatium Craft Overview )

Posted

The "new" markers on the individual forum pages are broken. It seems like if there is at least one "new" thread, all of them have the marker.

I think it is. I just read a few threads in Modder Support, and when one of them got a new reply, every thread showed the "new" label. When I read the new reply, went back to Modder Support and refreshed the page, the "new" markers dissappeared.

 

EDIT: If you click the "new" button on a post without a new reply, it goes to another thread which does have a new reply.

 

This is annoying the fuck out of me.

As soon as I noticed it my immediate thought was, "What'd we do downgrade our forum software?"

 

new.png

 

But Larsgerrits is correct, the new button doesn't even apply to the thread it's next to:

 

busted.png

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Guest Mr. Flamegoat
Posted

Woo! Man, I made a mess of that. :D

 

I'm working on a fix ASAP!

Guest Mr. Flamegoat
Posted

The "new" markers on the individual forum pages are broken. It seems like if there is at least one "new" thread, all of them have the marker.

I think it is. I just read a few threads in Modder Support, and when one of them got a new reply, every thread showed the "new" label. When I read the new reply, went back to Modder Support and refreshed the page, the "new" markers dissappeared.

 

EDIT: If you click the "new" button on a post without a new reply, it goes to another thread which does have a new reply.

 

Got that fixed up. This forum software was written back in 2006, so the bulk of it is very difficult to wade through. It wasn't great when it was written, but by today's standards it's atrocious.

 

I've fixed more than 300 issues so far that consisted of mostly poor performance issues with a heavy peppering of security holes and issues.

 

The load time on server has been reduced from 0.280ms average (with several second spikes) to an average of 0.03ms. So hopefully that's noticeable and helpful to you guys.

 

Trying my best to test thoroughly, as I've finally got it to a point I can work on it offline and push updates appropriately.

 

Sorry for any issues that causes anyone, though. Please continue to let me know any issues that arise.

 

As they say: fix a bug, now you have 99 more :v

The only thing that I found (which may be on my side only, cause I have shit pc and internet), is that when you click the + to expand at Forum History (at the Statistics Center), the Loading that pops up on the top, sometimes, flicks a lot, and may cause problems to people who suffer from epilepsy.

 

Hrm, I haven't seen this just yet, but I'll keep testing and see if I can fix this up.

Posted
Got that fixed up. This forum software was written back in 2006, so the bulk of it is very difficult to wade through. It wasn't great when it was written, but by today's standards it's atrocious.

 

Glad you fixed it.  And I hear you on wading through 10 year old code.  Hell, some of my code from only three years ago I take a look at and go "thank god there aren't bugs in there, because fixing them will require a total rewrite."

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

This forum software was written back in 2006, so the bulk of it is very difficult to wade through. It wasn't great when it was written, but by today's standards it's atrocious.

 

The load time on server has been reduced from 0.280ms average (with several second spikes) to an average of 0.03ms. So hopefully that's noticeable and helpful to you guys.

This with the load time is really the best change. The first thing I noticed, the second thing were the changes made to the theme.

 

If the forum software was written in 2006 and if it is so bad, why not changing to a more modern one and a good one? Wouldn't that help alot?

Developer of Primeval Forest.

Posted
If the forum software was written in 2006 and if it is so bad, why not changing to a more modern one and a good one? Wouldn't that help alot?
Once the transfer is fully done and everything is stable. The plan is to re-evaluate all of the systems we use and look into better solutions. But the important part is to make sure everything is stable/cleaned up so we can get a full lay of the land.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted
If the forum software was written in 2006 and if it is so bad, why not changing to a more modern one and a good one? Wouldn't that help alot?
Once the transfer is fully done and everything is stable. The plan is to re-evaluate all of the systems we use and look into better solutions. But the important part is to make sure everything is stable/cleaned up so we can get a full lay of the land.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Guest Mr. Flamegoat
Posted

If the forum software was written in 2006 and if it is so bad, why not changing to a more modern one and a good one? Wouldn't that help alot?
Once the transfer is fully done and everything is stable. The plan is to re-evaluate all of the systems we use and look into better solutions. But the important part is to make sure everything is stable/cleaned up so we can get a full lay of the land.

 

This. The reality is, the more I can clean it up and smooth things out now, the easier it will be if and when we decide to migrate to something else. I'm just the guy cranking the cogs right now, so I don't want to speak out of place.

 

I echo Lex, I want it to be clean, stable, and secure for you guys. I'll keep doing my best to make sure that's how it goes :D

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • So me and a couple of friends are playing with a shitpost mod pack and one of the mods in the pack is corail tombstone and for some reason there is a problem with it, where on death to fire the player will get kicked out of the server and the tombstone will not spawn basically deleting an entire inventory, it doesn't matter what type of fire it is, whether it's from vanilla fire/lava, or from modded fire like ice&fire/lycanites and it's common enough to where everyone on the server has experienced at least once or twice and it doesn't give any crash log. a solution to this would be much appreciated thank you!
    • It is 1.12.2 - I have no idea if there is a 1.12 pack
    • Okay, but does the modpack works with 1.12 or just with 1.12.2, because I need the Forge client specifically for Minecraft 1.12, not 1.12.2
    • Version 1.19 - Forge 41.0.63 I want to create a wolf entity that I can ride, so far it seems to be working, but the problem is that when I get on the wolf, I can’t control it. I then discovered that the issue is that the server doesn’t detect that I’m riding the wolf, so I’m struggling with synchronization. However, it seems to not be working properly. As I understand it, the server receives the packet but doesn’t register it correctly. I’m a bit new to Java, and I’ll try to provide all the relevant code and prints *The comments and prints are translated by chatgpt since they were originally in Spanish* Thank you very much in advance No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. MountableWolfEntity package com.vals.valscraft.entity; import com.vals.valscraft.network.MountSyncPacket; import com.vals.valscraft.network.NetworkHandler; import net.minecraft.client.Minecraft; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.Wolf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.Entity; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.network.PacketDistributor; public class MountableWolfEntity extends Wolf { private boolean hasSaddle; private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = SynchedEntityData.defineId(MountableWolfEntity.class, EntityDataSerializers.BYTE); public MountableWolfEntity(EntityType<? extends Wolf> type, Level level) { super(type, level); this.hasSaddle = false; } @Override protected void defineSynchedData() { super.defineSynchedData(); this.entityData.define(DATA_ID_FLAGS, (byte)0); } public static AttributeSupplier.Builder createAttributes() { return Wolf.createAttributes() .add(Attributes.MAX_HEALTH, 20.0) .add(Attributes.MOVEMENT_SPEED, 0.3); } @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { ItemStack itemstack = player.getItemInHand(hand); if (itemstack.getItem() == Items.SADDLE && !this.hasSaddle()) { if (!player.isCreative()) { itemstack.shrink(1); } this.setSaddle(true); return InteractionResult.SUCCESS; } else if (!level.isClientSide && this.hasSaddle()) { player.startRiding(this); MountSyncPacket packet = new MountSyncPacket(true); // 'true' means the player is mounted NetworkHandler.CHANNEL.sendToServer(packet); // Ensure the server handles the packet return InteractionResult.SUCCESS; } return InteractionResult.PASS; } @Override public void travel(Vec3 travelVector) { if (this.isVehicle() && this.getControllingPassenger() instanceof Player) { System.out.println("The wolf has a passenger."); System.out.println("The passenger is a player."); Player player = (Player) this.getControllingPassenger(); // Ensure the player is the controller this.setYRot(player.getYRot()); this.yRotO = this.getYRot(); this.setXRot(player.getXRot() * 0.5F); this.setRot(this.getYRot(), this.getXRot()); this.yBodyRot = this.getYRot(); this.yHeadRot = this.yBodyRot; float forward = player.zza; float strafe = player.xxa; if (forward <= 0.0F) { forward *= 0.25F; } this.flyingSpeed = this.getSpeed() * 0.1F; this.setSpeed((float) this.getAttributeValue(Attributes.MOVEMENT_SPEED) * 1.5F); this.setDeltaMovement(new Vec3(strafe, travelVector.y, forward).scale(this.getSpeed())); this.calculateEntityAnimation(this, false); } else { // The wolf does not have a passenger or the passenger is not a player System.out.println("No player is mounted, or the passenger is not a player."); super.travel(travelVector); } } public boolean hasSaddle() { return this.hasSaddle; } public void setSaddle(boolean hasSaddle) { this.hasSaddle = hasSaddle; } @Override protected void dropEquipment() { super.dropEquipment(); if (this.hasSaddle()) { this.spawnAtLocation(Items.SADDLE); this.setSaddle(false); } } @SubscribeEvent public static void onServerTick(TickEvent.ServerTickEvent event) { if (event.phase == TickEvent.Phase.START) { MinecraftServer server = net.minecraftforge.server.ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.getPlayerList().getPlayers()) { if (player.isPassenger() && player.getVehicle() instanceof MountableWolfEntity) { MountableWolfEntity wolf = (MountableWolfEntity) player.getVehicle(); System.out.println("Tick: " + player.getName().getString() + " is correctly mounted on " + wolf); } } } } } private boolean lastMountedState = false; @Override public void tick() { super.tick(); if (!this.level.isClientSide) { // Only on the server boolean isMounted = this.isVehicle() && this.getControllingPassenger() instanceof Player; // Only print if the state changed if (isMounted != lastMountedState) { if (isMounted) { Player player = (Player) this.getControllingPassenger(); // Verify the passenger is a player System.out.println("Server: Player " + player.getName().getString() + " is now mounted."); } else { System.out.println("Server: The wolf no longer has a passenger."); } lastMountedState = isMounted; } } } @Override public void addPassenger(Entity passenger) { super.addPassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(true)); } } } @Override public void removePassenger(Entity passenger) { super.removePassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is no longer mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(false)); } } } @Override public boolean isControlledByLocalInstance() { Entity entity = this.getControllingPassenger(); return entity instanceof Player; } @Override public void positionRider(Entity passenger) { if (this.hasPassenger(passenger)) { double xOffset = Math.cos(Math.toRadians(this.getYRot() + 90)) * 0.4; double zOffset = Math.sin(Math.toRadians(this.getYRot() + 90)) * 0.4; passenger.setPos(this.getX() + xOffset, this.getY() + this.getPassengersRidingOffset() + passenger.getMyRidingOffset(), this.getZ() + zOffset); } } } MountSyncPacket package com.vals.valscraft.network; import com.vals.valscraft.entity.MountableWolfEntity; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class MountSyncPacket { private final boolean isMounted; public MountSyncPacket(boolean isMounted) { this.isMounted = isMounted; } public void encode(FriendlyByteBuf buffer) { buffer.writeBoolean(isMounted); } public static MountSyncPacket decode(FriendlyByteBuf buffer) { return new MountSyncPacket(buffer.readBoolean()); } public void handle(NetworkEvent.Context context) { context.enqueueWork(() -> { ServerPlayer player = context.getSender(); // Get the player from the context if (player != null) { // Verifies if the player has dismounted if (!isMounted) { Entity vehicle = player.getVehicle(); if (vehicle instanceof MountableWolfEntity wolf) { // Logic to remove the player as a passenger wolf.removePassenger(player); System.out.println("Server: Player " + player.getName().getString() + " is no longer mounted."); } } } }); context.setPacketHandled(true); // Marks the packet as handled } } networkHandler package com.vals.valscraft.network; import com.vals.valscraft.valscraft; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.network.simple.SimpleChannel; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class NetworkHandler { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation(valscraft.MODID, "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); public static void init() { int packetId = 0; // Register the mount synchronization packet CHANNEL.registerMessage( packetId++, MountSyncPacket.class, MountSyncPacket::encode, MountSyncPacket::decode, (msg, context) -> msg.handle(context.get()) // Get the context with context.get() ); } }  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.