This commit is contained in:
ZXMushroom63 2024-09-20 19:00:40 +08:00
commit c348e74ce8
3 changed files with 16 additions and 12 deletions

View File

@ -1,5 +1,7 @@
//WIP worldedit by radmanplays ModAPI.meta.title("WorldEdit");
ModAPI.meta.credits("By radmanplays");
ModAPI.meta.icon("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAcUlEQVR42mNgoAcw1xT4D8Jka25LVQNjkg2Bac4OlP9fGqFImgHImmHY00z0f4af3H+SDADZDNIc6SwJpjXkuP+THHggm5ENIckrMGeDbIZ5hWgDQJo709XhziYpOpFtJjnuKdaM7OwhYjMIkG0zpQAAtFpjWIvu2dwAAAAASUVORK5CYII=");
ModAPI.meta.description("Use //wand, //set and //walls in singleplayer worlds.");
ModAPI.addEventListener("lib:libcustomitems:loaded", () => { ModAPI.addEventListener("lib:libcustomitems:loaded", () => {
console.log("Registered worldedit custom items."); console.log("Registered worldedit custom items.");
LibCustomItems.registerItem({ LibCustomItems.registerItem({
@ -71,6 +73,11 @@ ModAPI.addEventListener("lib:libcustomitems:loaded", () => {
const displayTag = NBTTagCompoundClass.constructors[0](); const displayTag = NBTTagCompoundClass.constructors[0]();
itemStack.$stackTagCompound.$setTag(ModAPI.util.str("display"), displayTag); itemStack.$stackTagCompound.$setTag(ModAPI.util.str("display"), displayTag);
// Add the enchant effect to the item
let enchant = ModAPI.hooks._classMap.nme_Enchantment.staticMethods.getEnchantmentById.method(0);
enchant.$effectId = -1;
itemStack.$addEnchantment(enchant);
// Set item name // Set item name
displayTag.$setString(ModAPI.util.str("Name"), ModAPI.util.str("Wand")); displayTag.$setString(ModAPI.util.str("Name"), ModAPI.util.str("Wand"));

View File

@ -9,14 +9,16 @@
// Create a fake player GameProfile // Create a fake player GameProfile
const GameProfileClass = ModAPI.reflect.getClassById("net.lax1dude.eaglercraft.v1_8.mojang.authlib.GameProfile"); const GameProfileClass = ModAPI.reflect.getClassById("net.lax1dude.eaglercraft.v1_8.mojang.authlib.GameProfile");
const fakeProfile = GameProfileClass.constructors[2]( const fakeProfile = GameProfileClass.constructors[1](null, ModAPI.util.str("Steve"));
ModAPI.reflect.getClassById("java.util.UUID").staticMethods.randomUUID(), ModAPI.util.str("Steve")
); // Get the PlayerInteractionManager class
const PlayerInteractionManagerClass = ModAPI.reflect.getClassById("net.minecraft.server.management.ItemInWorldManager");
const playerInteractionManager = PlayerInteractionManagerClass.constructors[0](world.getRef());
// Get the EntityPlayerMP class to spawn the fake player // Get the EntityPlayerMP class to spawn the fake player
const EntityPlayerMPClass = ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP"); const EntityPlayerMPClass = ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP");
const fakePlayer = EntityPlayerMPClass.constructors[1]( const fakePlayer = EntityPlayerMPClass.constructors[0](
world.getMinecraftServer(), world.getRef(), fakeProfile, world.getPlayerInteractionManager() world.getMinecraftServer(), world.getRef(), fakeProfile, playerInteractionManager
); );
// Set the fake player position to be near the command sender // Set the fake player position to be near the command sender

View File

@ -105,11 +105,6 @@ var main;(function(){`
\<script id="libserverside"\>{"._|_libserverside_|_."}\<\/script\>` \<script id="libserverside"\>{"._|_libserverside_|_."}\<\/script\>`
); );
patchedFile = patchedFile.replace(
`document.getElementById("launch_countdown_screen").remove(); main();`,
`document.getElementById("launch_countdown_screen").remove(); window.modapi_displayModGui();`
)
const extractConstructorRegex = const extractConstructorRegex =
/^\s*function (\S*?)__init_\d*?\((?!\$)/gm; /^\s*function (\S*?)__init_\d*?\((?!\$)/gm;
const extractConstructorFullNameRegex = const extractConstructorFullNameRegex =