<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Modding on Ishan Puri | Minecraft &amp; Gaming Realm</title><link>https://www.ishanpuri.com/tags/modding/</link><description>Recent content in Modding on Ishan Puri | Minecraft &amp; Gaming Realm</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 05 Apr 2024 16:00:00 +0800</lastBuildDate><atom:link href="https://www.ishanpuri.com/tags/modding/index.xml" rel="self" type="application/rss+xml"/><item><title>Building an Autonomous .NET Bot for Minecraft</title><link>https://www.ishanpuri.com/posts/minecraft-custom-dotnet-bot/</link><pubDate>Fri, 05 Apr 2024 16:00:00 +0800</pubDate><guid>https://www.ishanpuri.com/posts/minecraft-custom-dotnet-bot/</guid><description>&lt;h2 id="-meet-the-net-companion-bot"&gt;🤖 Meet the .NET Companion Bot&lt;/h2&gt;&#10;&lt;p&gt;Building intelligent NPC companions and assistant bots brings an entirely new dimension to Minecraft survival realms!&lt;/p&gt;&#10;&lt;h3 id="-architecture--tech-stack"&gt;🔧 Architecture &amp;amp; Tech Stack&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Runtime&lt;/strong&gt;: .NET 8 C# Core&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Packet Protocol&lt;/strong&gt;: Minecraft Client/Server Protocol (Bedrock &amp;amp; Java Bridge)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Pathfinding&lt;/strong&gt;: A* 3D Grid Search algorithm taking gravity, jumps, and hazard blocks (lava, cactus) into account.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="-bot-capabilities"&gt;🌟 Bot Capabilities&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Auto-Mining Mode&lt;/strong&gt;: Safely traces ores and mines designated cube areas while reporting chest fullness.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Bodyguard Protocol&lt;/strong&gt;: Detects Creepers and hostile mobs within a 16-block radius, providing knockback support.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Chat Commands&lt;/strong&gt;: Responds to in-game chat instructions like &lt;code&gt;!come&lt;/code&gt;, &lt;code&gt;!mine iron&lt;/code&gt;, &lt;code&gt;!guard base&lt;/code&gt;, and &lt;code&gt;!deposit&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&#10;&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;&#10;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9&#10;&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;10&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;&#10;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// Example: Companion Bot Pathfinding Event&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;public&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;async&lt;/span&gt; Task OnHostileDetected(Entity mob)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; (mob.Type == EntityType.Creeper &amp;amp;&amp;amp; DistanceTo(mob) &amp;lt; &lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; EquipItem(ItemType.DiamondSword);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; PlaySound(&lt;span style="color:#f1fa8c"&gt;&amp;#34;entity.player.attack.strong&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; MoveToTarget(mob.Position);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Stay tuned for source code snippets and further development logs!&lt;/p&gt;</description></item></channel></rss>