Activity

tanjim

uploaded to mavencentral

Attachment
0
tanjim

Documented the whole thing in the README

Attachment
0
tanjim

made the test mod!

and it works woohoooo

Attachment
0
tanjim

the thing builds successfully! time to make a mod to test it out
(look this is not screenshot of code, this is technically output (build passes). i could put it in a non monospace font if you like that better)

Attachment
0
tanjim

it finally works! i also added an automatic testing tool (you can write JS to automatically battle against my algorithm)

Attachment
Attachment
0
tanjim

bugfix ahhhhh

the reviewer requested README changes. i did that. and there was also this other complicated bug that was fixed by refactoring the code.

download v1.0.1 from GitHub https://github.com/itzmetanjim/mcgit/releases/tag/v1.0.1 and put it in your mods folder

Attachment
0
tanjim

And I’m done!

Requires Fabric 1.21.11

All commands have been implemented! you can even clone my house if you want: https://github.com/itzmetanjim/village

  • /git init <name> Initialize a new MCGit repository.
  • /git activate <name> Switch to the specified repository.
  • /git add <coords> Add one block at the specified coordinates to the staging area.
  • /git add <coords> <coords> [|hollow|outline] Add a cuboid of blocks to the staging area
  • @/git rm <coords> [coords] [|hollow|outline] Remove blocks/entities from the staging area and revert them. NOTE: Changing blocks/entities in the world needs to be done by issuing commands, as this is a clientside mod.
  • /git unstage ... does not revert , only removes from staging area.
  • /git commit [-m] "message" Commit the staged changes with a message. The -m flag does nothing.
  • @/git revert [commit-hash] /git reset but it changes the world as well. Commit hash can be ommitted to revert to the latest commit.
  • /git reset [commit-hash] Reset to a specific commit hash or the latest commit. This does not revert the actual world. THis is the reverse of /git add
  • /git status Show the current status of the repository, including staged changes, unstaged changes, but not untracked blocks/entities.
  • /git listCommits Lists all commits in the current branch.
  • /git listRepos Lists all available repositories.
  • /git autoadd [toggle|on|off] Enable or disable automatic addition of changes to the staging area. To quickly switch between, use an enchanted red wool in offhand to make this act toggled (so if you have it in offhand, auto add is off, otherwise on).
  • /git autorm [toggle|on|off] Enable or disable automatic removal of deleted blocks/entities from the staging area. To quickly switch between, use encha…

This has been truncated. See https://github.com/itzmetanjim/mcgit for the full list. There are 24 total commands

Attachment
0
tanjim

Added Autoadd and Autorm

/git autoadd [true/false] and /git autorm [true/false] can be used to toggle autoadd and autorm. To quickly invert autoadd/autorm, use enchanted red wool.

Autoadd and autorm cannot be used outside of Creative Mode.

0
tanjim

Added revert reset status listCommits listRepos

NOTE: The Couldn't set block messages are NOT a bug! The command is working properly with all blocks being set correctly.

  • DONE: @/git revert ... /git reset but --hard, ... is a commit hash. This does change the world.
  • DONE: /git reset [commit-hash] Reset to a specific commit hash or the latest commit. This does not revert the actual world.
  • DONE: /git status Show the current status of the repository, including staged changes, unstaged changes, but not untracked blocks/entities.
  • DONE: /git listCommits Lists all commits in the current branch.
  • DONE: /git listRepos Lists all available repositories
0
tanjim

Added the following commands

Requires Fabric 1.21.11

  • /git init <name>: Initialize a new MCGit repository with name. Names have to be unique. Repositories are shared between worlds and servers and stored locally (unless you add a remote)
  • /git add <coords1> [optional coords2] ["hollow","outline", or nothing] Add a single block/a cuboid of blocks to staging. (after another update, automatic adding of placed blocks will be added)
  • /git rm <coords1> [optional coords2] ["hollow","outline", or nothing] Remove a single block/a cuboid of blocks from the world and the repository. (after another update, automatic removal of broken blocks will be added)
  • /git unstage <coords1> [optional coords2] ["hollow","outline", or nothing] Similar to /git rm or git rm --cached in real git. Removes from the repository but not from the world.
  • /git commit <message...> Commit!
  • /git origin <coords> Change the origin of your build. By default, this is the place where you init ed or cloned the repository. All blocks are relative to this origin.
  • /git activate <repo_name> Switch to another repository
Attachment
2

Comments

hack.clubber
hack.clubber 28 days ago

amazing project

tanjim
tanjim 26 days ago

yoo thanks

tanjim

Shipped this project!

Hours: 6.42
Cookies: 🍪 82
Multiplier: 12.83 cookies/hr

Yeah. The audio captcha theoretically_ should work but practically it absolutely does not. The text and image captchas work perfectly fine. Click FETCH CAPTCHA not the audio captcha.

tanjim

i added audio captcha…. well i tried but its way too hard

Attachment
0
tanjim

ok because of hackatime update delay this devlog covers a lot of things:

  1. I added verification support
  2. Made it an image of text not just text, it is compressed using zlib and its 1-bit
  3. Improved the noise generation, it now uses a more advanced 2D markov chain

In the video, you can notice:

  1. The noise has more “structure” to it than before. This is what the upgraded 2D markov chain is doing, and it makes it harder for ML models to recognize the decoys
  2. The text is actually an image of text, notice the border around it and the pixelation.
  3. I can click “submit” now
0
tanjim

Made the demo for the captcha.
This is incredibly easy for humans, as we can “stop” mvoing the slider in real time. But for AI, you have to send a whopping 50 images to a multimodal (image supporting) AI model. Even using a light model like Gemini 3 Flash, it will take 27,225$ or 54,450 input tokens (equivalent to an 150 page book) and JUST TO CRACK ONE OF THESE!
Oh, if you are thinking of pasting the ASCII text that wont work since the Markov Chain produces decoys that have the same local patterns as real ASCII text art and the AI gives answers all of the decoy texts, and even when its not a decoy its the wrong answer. So without images AI can’t “read” ASCII text art.
The “fake” ASCII arts are generated using a special markov chain algorithm (implemented in the previous devlog) that makes it harder for an ML model to recognize which text is the real one.

0
tanjim

Made a markov chain giberrish generator (you will see why).

Attachment
0