Skip to content

Instantly share code, notes, and snippets.

View R4z0rX's full-sized avatar

RazrCraft R4z0rX

View GitHub Profile
@gnembon
gnembon / tick.md
Last active April 24, 2024 14:21
How to use vanilla /tick if you used carpet /tick before

So /tick is now available in vanilla. Well, most of it is. Obviously only one could exist at a time, meaning /tick from carpet is gone, so here is the gist... mhm... of what happened, what is covered, what is lost and what might not be lost forever. This is not a writeup from a Mojang developer, it's a writeup from a mod developer whose part of the mod just got obsolete by a gaming studio.

The good

/tick on its own, as a query command, is moved to vanilla /tick query providing much more information about the health of the game tick. Tick performance and tick targets are also now way better handled in F3 and especially F3+2 screens, but if you are not in singleplayer or run the server with your game, a better information directly from the server through /tick query may come in handy.

/tick rate now exists as a vanilla command. It is limited on the lower end to 1 tps (not 0.1 tps like in carpet) to get a more responsive chat (the only reason so far tbh), but due to improvements to h

@wagyourtail
wagyourtail / bypass-disable-devtool.js
Last active June 1, 2024 08:49
bypass disable-devtool
// ==UserScript==
// @name Bypass Detect-Devtool
// @namespace http://tampermonkey.net/
// @version 0.1
// @description bypass https://github.com/theajack/disable-devtool
// @author Wagyourtail
// @match {site}
// @icon https://www.google.com/s2/favicons?sz=64&domain=github.io
// @grant none
// ==/UserScript==

1.20-pre2: Emptiness Update

The pre-release 2 is all about emptiness and blankness...

Fabric changes

FAPI v0.81.2 was released. No breaking change.

Minecraft changes

Emptiness (ingredients)

Ingredients may be an air to indicate empty slot. If your code uses Ingredient#fromJson, then it will automatically allow air ingredients. To keep old behavior of disallowing air ingredients (which you probably want), use fromJson overload with the boolean param set to false.

23w16a: Screen Update

23w16a is here with tons of breaking changes. Yikes.

Fabric changes

Fabric API received many breaking changes, specifically: Content Registries, Data Generation, Item Groups API, Object Builder, Rendering API, and Screen API. (Can you believe Screen API's patch version was 1.0.44 before the bump?)

VillagerPlantableRegistry was replaced with ItemTags.VILLAGER_PLANTABLE_SEEDS (data pack). For other changes, see below.

Minecraft changes

Screen and rendering

Brain AI!

Brain is a new system that has been implemented in the Village & Pillage update to expand the AI for certain mobs such as the Villager. nowadays, the entities using Brain are: Villager, Piglin, Axolotl, Goat, Tadpole, Frog, Warden and Camel.

it's an interesting system because unlike the goal system, it works using activities, sensors and memories! While goals run using tasks and priorities, Brain runs different behaviors for each activity.

Each Activity has defined behaviors that will run while the activity is active, these can be defined with memories so the entity knows the conditions to run certain tasks.

@wagyourtail
wagyourtail / MCServerScraper.py
Last active June 29, 2023 20:22
MCServerScraper.py
# MIT License
#
# Copyright (c) 2022 Wagyourtail
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
@kennytv
kennytv / readme.md
Last active May 8, 2024 06:32
Signed Chat and Chat Types

Signed chat

This gist intends on clearing up some of the misinformation surrounding signed chat/the reporting feature Mojang has added to Minecraft 1.19.1. Here you can find both technical information as well as a general explanation of how these work.

Profile keys

After joining a server, clients now send a profile key used for verifying a message's authenticity. This key and thus the whole signing process is optional, but by default, servers enforce secure profiles for clients to send chat messages. Whenever the player sends a chat message and has a key associated, the message will be signed using their own private key, which the server then verifies using the public key sent after join. Assuming signature, timestamp, and message contents line up, the message goes through.

On the other end, clients can also require all broadcasted player messages to be signed, disregarding the ones without sender verified signatures.

Message signatures

@nitrocode
nitrocode / github-gpg-key-with-private-email.md
Last active June 19, 2024 00:01
Github "Verified" commits using GPG key with private email

Github "Verified" commits using GPG key with private email

It's nice to see a Verified message next to each commit for peace of mind.

Using GPG or S/MIME, you can sign tags and commits locally. These tags or commits are marked as verified on GitHub so other people can be confident that the changes come from a trusted source.

  1. Install latest gpg

    If using a mac use homebrew

@wagyourtail
wagyourtail / languages.md
Last active June 29, 2023 20:20
Scripting Language Cheat Sheet

Variables

JS
// higher scoping, not killed by exit from for/if and some other flow control stuff
var x = 1;
@MCJack123
MCJack123 / ccbot.js
Last active February 28, 2024 08:39
Discord bot that executes Lua code in CraftOS-PC, and returns a screenshot of the result
// Requires https://gist.github.com/MCJack123/4eb02b57de9fcb9c6e62b9b459ada8e6
// Extract env-clean.tar into env-clean next to this file
const { Client, MessageAttachment } = require('discord.js');
const exec = require('child_process').exec;
const fs = require("fs-extra");
const http = require("https");
const client = new Client();
const init_script = (script, author) => `
term.clear()
term.setCursorPos(1, 1)