From 1ff1774b1c017babed7bedd192d5cc5b9d104100 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Wed, 29 Apr 2026 12:57:22 +0200 Subject: [PATCH] first commit --- .gitmodules | 3 + LICENSE | 677 +++++ NuGet.Config | 8 + PumpkinApi.csproj | 27 + README.md | 88 + .../PumpkinMC.PumpkinApi.0.1.0-dev.nupkg | Bin 0 -> 63205 bytes bin/Release/net10.0/PumpkinApi.deps.json | 23 + bin/Release/net10.0/PumpkinApi.dll | Bin 0 -> 169472 bytes bin/Release/net10.0/PumpkinApi.pdb | Bin 0 -> 64788 bytes generate.sh | 10 + obj/PumpkinApi.csproj.nuget.dgspec.json | 349 +++ obj/PumpkinApi.csproj.nuget.g.props | 15 + obj/PumpkinApi.csproj.nuget.g.targets | 2 + .../PumpkinMC.PumpkinApi.0.1.0-dev.nuspec | 20 + ...oreApp,Version=v10.0.AssemblyAttributes.cs | 4 + .../net10.0/PumpkinApi.AssemblyInfo.cs | 24 + .../PumpkinApi.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 17 + .../net10.0/PumpkinApi.GlobalUsings.g.cs | 8 + obj/Release/net10.0/PumpkinApi.assets.cache | Bin 0 -> 148 bytes .../PumpkinApi.csproj.CoreCompileInputs.cache | 1 + .../PumpkinApi.csproj.FileListAbsolute.txt | 12 + obj/Release/net10.0/PumpkinApi.dll | Bin 0 -> 169472 bytes obj/Release/net10.0/PumpkinApi.pdb | Bin 0 -> 64788 bytes .../net10.0/PumpkinApi.sourcelink.json | 1 + obj/Release/net10.0/ref/PumpkinApi.dll | Bin 0 -> 89088 bytes obj/Release/net10.0/refint/PumpkinApi.dll | Bin 0 -> 89088 bytes obj/project.assets.json | 354 +++ obj/project.nuget.cache | 10 + src/Impl.cs | 55 + src/gen/Plugin.cs | 1892 ++++++++++++++ ....pumpkin.plugin.v0_1_0.IMetadataExports.cs | 26 + ...in.plugin.v0_1_0.MetadataExportsInterop.cs | 107 + ...plugin.v0_1_0.BlockEntityImportsInterop.cs | 100 + ...kin.plugin.v0_1_0.BossBarImportsInterop.cs | 107 + ...kin.plugin.v0_1_0.CommandImportsInterop.cs | 176 ++ ...pkin.plugin.v0_1_0.CommonImportsInterop.cs | 12 + ...kin.plugin.v0_1_0.ContextImportsInterop.cs | 47 + ...pkin.plugin.v0_1_0.EntityImportsInterop.cs | 12 + ...mpkin.plugin.v0_1_0.EventImportsInterop.cs | 12 + ...pumpkin.plugin.v0_1_0.GuiImportsInterop.cs | 83 + ...umpkin.plugin.v0_1_0.I18nImportsInterop.cs | 24 + ...mpkin.plugin.v0_1_0.IBlockEntityImports.cs | 222 ++ ...s.pumpkin.plugin.v0_1_0.IBossBarImports.cs | 209 ++ ...s.pumpkin.plugin.v0_1_0.ICommandImports.cs | 2236 +++++++++++++++++ ...ts.pumpkin.plugin.v0_1_0.ICommonImports.cs | 105 + ...s.pumpkin.plugin.v0_1_0.IContextImports.cs | 212 ++ ...rts.pumpkin.plugin.v0_1_0.IEventImports.cs | 1020 ++++++++ ...ports.pumpkin.plugin.v0_1_0.IGuiImports.cs | 163 ++ ...orts.pumpkin.plugin.v0_1_0.II18nImports.cs | 63 + ...s.pumpkin.plugin.v0_1_0.ILoggingImports.cs | 66 + ...umpkin.plugin.v0_1_0.IPermissionImports.cs | 100 + ...ts.pumpkin.plugin.v0_1_0.IPlayerImports.cs | 924 +++++++ ...pumpkin.plugin.v0_1_0.ISchedulerImports.cs | 29 + ...umpkin.plugin.v0_1_0.IScoreboardImports.cs | 314 +++ ...ts.pumpkin.plugin.v0_1_0.IServerImports.cs | 479 ++++ ...orts.pumpkin.plugin.v0_1_0.ITextImports.cs | 411 +++ ...rts.pumpkin.plugin.v0_1_0.IWorldImports.cs | 779 ++++++ ...kin.plugin.v0_1_0.LoggingImportsInterop.cs | 24 + ....plugin.v0_1_0.PermissionImportsInterop.cs | 12 + ...pkin.plugin.v0_1_0.PlayerImportsInterop.cs | 413 +++ ...n.plugin.v0_1_0.SchedulerImportsInterop.cs | 30 + ....plugin.v0_1_0.ScoreboardImportsInterop.cs | 77 + ...pkin.plugin.v0_1_0.ServerImportsInterop.cs | 155 ++ ...umpkin.plugin.v0_1_0.TextImportsInterop.cs | 155 ++ ...mpkin.plugin.v0_1_0.WorldImportsInterop.cs | 382 +++ src/gen/PluginWorld_component_type.wit | 1399 +++++++++++ ...uginWorld_wasm_import_linkage_attribute.cs | 11 + 68 files changed, 14297 insertions(+) create mode 100644 .gitmodules create mode 100644 LICENSE create mode 100644 NuGet.Config create mode 100644 PumpkinApi.csproj create mode 100644 README.md create mode 100644 bin/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nupkg create mode 100644 bin/Release/net10.0/PumpkinApi.deps.json create mode 100644 bin/Release/net10.0/PumpkinApi.dll create mode 100644 bin/Release/net10.0/PumpkinApi.pdb create mode 100755 generate.sh create mode 100644 obj/PumpkinApi.csproj.nuget.dgspec.json create mode 100644 obj/PumpkinApi.csproj.nuget.g.props create mode 100644 obj/PumpkinApi.csproj.nuget.g.targets create mode 100644 obj/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nuspec create mode 100644 obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs create mode 100644 obj/Release/net10.0/PumpkinApi.AssemblyInfo.cs create mode 100644 obj/Release/net10.0/PumpkinApi.AssemblyInfoInputs.cache create mode 100644 obj/Release/net10.0/PumpkinApi.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 obj/Release/net10.0/PumpkinApi.GlobalUsings.g.cs create mode 100644 obj/Release/net10.0/PumpkinApi.assets.cache create mode 100644 obj/Release/net10.0/PumpkinApi.csproj.CoreCompileInputs.cache create mode 100644 obj/Release/net10.0/PumpkinApi.csproj.FileListAbsolute.txt create mode 100644 obj/Release/net10.0/PumpkinApi.dll create mode 100644 obj/Release/net10.0/PumpkinApi.pdb create mode 100644 obj/Release/net10.0/PumpkinApi.sourcelink.json create mode 100644 obj/Release/net10.0/ref/PumpkinApi.dll create mode 100644 obj/Release/net10.0/refint/PumpkinApi.dll create mode 100644 obj/project.assets.json create mode 100644 obj/project.nuget.cache create mode 100644 src/Impl.cs create mode 100644 src/gen/Plugin.cs create mode 100644 src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.cs create mode 100644 src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.MetadataExportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BlockEntityImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BossBarImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommandImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommonImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ContextImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EntityImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EventImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.GuiImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.I18nImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.II18nImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ILoggingImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ISchedulerImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.LoggingImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PermissionImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PlayerImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.SchedulerImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ScoreboardImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ServerImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.TextImportsInterop.cs create mode 100644 src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.WorldImportsInterop.cs create mode 100644 src/gen/PluginWorld_component_type.wit create mode 100644 src/gen/PluginWorld_wasm_import_linkage_attribute.cs diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8c10b5b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "wit/repo"] + path = wit/repo + url = https://github.com/Pumpkin-MC/Pumpkin.git diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..979f4b9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,677 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized international standards body, or, in +the case of interfaces specified for a particular programming +language, one that is widely used among developers working in that +language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or modifying the covered +works for you must do so exclusively on your behalf, under your +direction and control, on terms that prohibit them from making any +copies of your copyrighted material outside their relationship with +you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where the + Corresponding Source is located. Regardless of what server hosts + the Corresponding Source, you remain obligated to ensure that it + is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of coverage. +For a particular product received by a particular user, "normally used" +refers to a typical or common use of that class of product, regardless +of the status of the particular user or of the way in which the +particular user actually uses, or expects or is expected to use, the +product. A product is a consumer product regardless of whether the +product has substantial commercial, industrial or non-consumer uses, +unless such uses represent the only significant mode of use of the +product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as if they were included in this License, to the extent that +they are valid under applicable law. If additional permissions apply +only to part of the Program, that part may be used separately under +those permissions, but the entire Program remains governed by this +License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a surcharge for exercising rights granted under this +License, and you may not impose any (including a cross-claim or +counterclaim in a lawsuit) alleging that any patent claim is +infringed by making, using, selling, offering for sale, or importing +the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to any recipient of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..e0d3378 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/PumpkinApi.csproj b/PumpkinApi.csproj new file mode 100644 index 0000000..01e3af1 --- /dev/null +++ b/PumpkinApi.csproj @@ -0,0 +1,27 @@ + + + + net10.0 + enable + enable + 12.0 + true + + $(NoWarn);CS0169;CS0649;CS8618 + + + PumpkinMC.PumpkinApi + 0.1.0-dev + PumpkinMC Contributors + Pumpkin server plugin API bindings for C# (.NET) + https://github.com/Pumpkin-MC/pumpkin-api-cs + git + GPL-3.0-or-later + README.md + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d17f425 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Pumpkin Plugin API for C# (.NET) + +This package provides everything needed to write a Pumpkin server plugin compiled to WebAssembly using C# (.NET 10+). + +## Quick start + +1. Create a new C# Class Library project for your plugin: + ```bash + dotnet new classlib -n MyPumpkinPlugin + cd MyPumpkinPlugin + ``` + +2. Add a `NuGet.Config` to your project to include the .NET experimental feed: + ```xml + + + + + + + ``` + +3. Add the required packages: + ```bash + dotnet add package PumpkinMC.PumpkinApi + dotnet add package ByteCodeAlliance.Componentize.DotNet.Wasm.SDK --prerelease + ``` + +4. Configure your `.csproj` to target `wasi-wasm`: + ```xml + + net10.0 + wasi-wasm + + ``` + +5. Implement your plugin by implementing the interfaces from the package (e.g., `PluginWorld.IPluginWorldExports` and `PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports`). + +```csharp +using PluginWorld; +using PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0; +using PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +namespace MyPumpkinPlugin; + +public class MyPlugin : IPluginWorldExports, IMetadataExports +{ + public static void InitPlugin() { } + + public static void OnLoad(IContextImports.Context context) + { + ILoggingImports.Log(ILoggingImports.Level.Info, "C# plugin loaded!"); + } + + public static void OnUnload(IContextImports.Context context) { } + + public static IEventImports.Event HandleEvent(uint eventId, IServerImports.Server server, IEventImports.Event @event) + { + return @event; + } + + public static int HandleCommand(uint commandId, ICommandImports.CommandSender sender, IServerImports.Server server, ICommandImports.ConsumedArgs args) + { + return 0; + } + + public static void HandleTask(uint handlerId, IServerImports.Server server) { } + + public static IMetadataExports.PluginMetadata Metadata() + { + return new IMetadataExports.PluginMetadata( + "my-csharp-plugin", + "0.1.0", + "An example C# plugin.", + ["you"], + [] + ); + } +} +``` + +5. Build your plugin into a WebAssembly component: + +```bash +dotnet build -c Release +``` + +The output will contain a `.wasm` file that you can use in your Pumpkin server. diff --git a/bin/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nupkg b/bin/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ebefe58251f2dfffa3c5939d15b71ffa66b917aa GIT binary patch literal 63205 zcmZU)b9iLW6E`}sZ6_1kw(X5=@5Xkrv2EKp-ueFS{o}sR`#f`I8g;tr zR8@bvPj!uoJOm^r004jm%vt8@EAMn0k$?dJU!V&C)N15xVei7s^xt<%;*>2oEAG#~ zLXzV<`nk~~s!K|R(PC&uq|+bl(9}3dG|$%vBf)C$ZXR5xhrT%@7pBs#VHq(VNGG8t zkV@|}9fbqsTgrCbx=PsmxEfqLr6F)|23KclAt=1z)N;u}ff|u7fE&}X9qDRkpb#<# zjo&v2l>u$pLq-T@YS?X)`7ic<<_b=}x1)E3mUgW?CkU(<_DMS1RCd9Vn0dnyFz1l- z_ldA#ryqLGikHR_{G|Z=;?=r=F5R|lTlF7a@A}hn1FS{=avl=MTN5Pg@T)K=hMg1`&GvsARbYqlKBPntU7vE9&+vty~@w!^RCFx)`}fd=V-tx+q#O1dsbj?^Cv5_#F`>L=nQTDvK306xu zbgNOF_S`U{M)^$RWXC3oml$DnJ{s>b7|Y}OLaC)*64ym+x_-Uk3tGgRVX~sA3?|UE zY&Tvg*I>=TGj?S{c3(kq3Hm*)-g6VTTc*)>8o-&RUh+`_k&O%gYe*YtL7VmwL!2|3 zfHrA17`M-fb|M?|^ye>0wpOk$3?{Z9&JEo_`K9W9(p&im`_$p1i!QN>5_*o;Mf+R;1*bPag2NZ0bp>-BrSNPf~Og~_ww6} z4CU^)eQ487-66N&Qfv0Kk8?1<7|7$MwPiC# z;DdhbZA_WJTez~aFtITI|14>4Z-3PT<4GvFz-`FSPSB!T%h9|*r@b)g)kA+8nB$Vh z3TrY2ZH9=ehnvs?^zLb!7#KV<4vqy&9&(Zva_)xo2xsmmV%{I;CGi+*{K~7kIlo!Y zZME;)68!ha=ga$Q{nbs&O-n;7{QUepul)r$2i6Y=H0S~lgFkb_b^hCg1?;bpn{?El zjpU(tWf@(qcQ*Ajo48e(N!qSEAxSgwf4#(E;Kyn2B=Ft6ggqY;luZj)?03W!r=if% z!aeWX5V8;ztQUv;eV&xQcHIp%L>kE>17vdoND$tqa`8nV00Na{48=aN6R`o$%mrLo zejYD6GEx7I>R$@`TyB<(g?0og2Y$?<{tEbEiwYiS_h+sE>-nG_jI^L%1frh-3Wd+) zm6qE0-awyuNn=X>;8wJ9W+@S%z_mn#)iW;3182NYuyk+69|xI)Wl`3`G*z6PM1L|n zU)OKG*pGms;klPPCAb&l_nuvFo=FT4ogQBThr}o@(oKh(D{hWcDP6IEOPO1c!JqcN z+MKMRzT@d4!d+O%7(_l&DiHuwx4Pk?)sM*|lCG@-Q1#zAtcbp|8$(Ba`xA_4*5aw0 z!jg6VQ;lJ-A*rCu%G=C(`c3FXy}mTE!cboQwqT|gFc9mWgVNt`B>crRckrnVk6VL> z2TxQsG6m+V5X+jSw8C$1OQejdpK4pYmW*Bz>j~mIC4`zMwxT)Ib6raZUUC zz#0^O&r}QSA-F%oz+#UbW*CeC0*z@Je)SCFRK!sOf-`Gi5O?{yN0R{q5&M5F{PYC& zF6|*<-4P*SN5y_v%G(`q0(v7>*$zSg!Tiy#iv%Pnd&Mb=KP*m-&Hw6sS^L6@IOd(# z+EiZ=Mg@VQDC$L3uL~)1{U<0QG{Vri)%XhVotV_ zh|JN&ahse6e0ZUI zyd-vqqkg*f1a{(<5QN|B694q?mfMwIJjAixlYd-vCHF_$S+={2zDvL7C`d=%gJGGk z>D>zh1O`REMfsgGR{Vurik4%TV?{$KwYKs_*U5#-l2Sc2U-E<(X~;MFR*qgBs!?8~ zDO@jaLjU_B$)@Fx?@)U0hLZ5Xv0J)x#ESyS?9l9xV&A#COXSZhd%0S*wAgdIr`7hm zoXHxtyyQN=Q-UXczjHed7QV8gQ-->AynLxxQ4UkC+_FIFW&ovF zExck(zd3d>gn`%!Qk=4za`+B0K6xg7F}!ZUGfLKV@JO08QhZnvIftq_W!en+Cd5

EpPwD3?5*hw~`Z3&2I?~sZMa!KO^s1 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 Ll19Dz=jgux86y*e literal 0 HcmV?d00001 diff --git a/bin/Release/net10.0/PumpkinApi.deps.json b/bin/Release/net10.0/PumpkinApi.deps.json new file mode 100644 index 0000000..0870a11 --- /dev/null +++ b/bin/Release/net10.0/PumpkinApi.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "PumpkinApi/0.1.0-dev": { + "runtime": { + "PumpkinApi.dll": {} + } + } + } + }, + "libraries": { + "PumpkinApi/0.1.0-dev": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/Release/net10.0/PumpkinApi.dll b/bin/Release/net10.0/PumpkinApi.dll new file mode 100644 index 0000000000000000000000000000000000000000..383f1c1e2a13232a8e263cf59d7bd478bf403713 GIT binary patch literal 169472 zcmeFa2Yg(`)joW+P10&t_PuLMmYakdmz8bY0AZSKFgCWp*ch-)ug0MWwDh&;9bS+~#?8PJA8U`3^k!#3N2U5%3#pG+*RZ({0d@ z9M7S9eCYpN2 z;8EO1gUtehe5A}4ho1or%@#)|%7TQa1WzuFNAOuD4$7G#PA#9vXaXXU1A`#|37wV* zhd_%J8#5D0kwz+PLRc|VoSaBDFJHebdBpmI0P$ZoRm?WwIa-lbL=}vflJfqECuHE4 zZm97x+0y1Hs38nlT-O$Gb9HN1p3q>wbd!~fBbJ8RwX1TOS}m53 zMJ#khEcx+}%FQvUNYbQ8w2<;sYgZN089$|yqZ~+;u99ko>2Hap50XldbwNgX{B$bZ z5du}b)`Hhshu7MO*IJiXRHEYbUa#dj!)wYr54#cEK6~S>{YlT?45wEw!XiZpR z!^;we!W1Y>ITWTM3R5u(6@B}AEhk0v9SizkhyBv+mcE8eLQAhs2%;+lQ6uk&)3bI} z2qTzLdXWPm35SqGL`Wh=2+CBn%=KChRJ0VPBs?fKteNKz^1_)=pKRt0__l*j%4m8c z3mFp+t(#p8@wP{7Lr~-3qbWrAV-m^ma?n?tkVvLNm|$t6SMrHG3TUHaP&sJxKC3>H zJrm|X#Y{5|nevU~8;X$4iHg;A?F4_metkF#&q7KC`lTrLkKg1!;57t`|GzCqXwjoOqu4!uynl)`hL7VS4FDv-I z?@+kYF&}^Yac%1m!{V@Dn99b%Sz6mV*f84?wCD`$M69=1vDPaZ>lN);KdWh1M%b_S z8~m(8du{7TQ|9nsxF$V|qK28GMg${tQ4LzIw^qwF*Hjp(<;qxpq>^iHl|Pbl9i`+t zTG2LI(bnp>YTDX#xZmctI<)ztBDroBY^I58U5aom*D=8uO5t5mErnXH z;|z~ugRw@g76;6>8D_@?<8+2OWLPV0FX@d%hlWPtCseW7z*9)OOaG8CDu_1ehBxKf zXC!Qu<%6V-TvZ2=7!FcF%1u+(yewCji1Z*Gq!qmjrackmRmcPxH&r64t*8qW+L{V= z?H!4TKk4wKhg{{mWc2Fte9%#-^FfJ~Ttm=cD0$4uFc;)pN{SD5?}qVA_YrVPyP|20 z?>+(Eu6giwpJ@V1S81cf;Z1RPh|!YRCXOGrgskf+>(b05#sQ;fp)(-{SeYPM849bN zs1Gp)%r?BXggsx^P{d3c0uKi-C!)u%2|+=&p?zwQZf$N37XS#--Or-zaH05hq7VhO z2kCHk1gZhrYhGjubG79?5J9^%5r(LFa=yK%u4(aov~uePS&ODu=O}j_wMGUgB6|){{JN!eG$dlqMBc0^zaE;{KC1g&a1hi~njowZ zU3((J8CupArElS=x_PX(1hzfFJ_DJ0S*5qL;S>E_49~o5X5z?9^Ymc}QyluRST(A# zT;Fwp0rLM}7yqkuQJ9kT7D7)OSeLe|5z`?9+tSr+D)neoSusYeY-J;)whL)LJ+}?I zfN_S`h2Kx{+ZpQr2nM7FVk|HS&FVG$9s$Dr7-YPI-vLmfJMjx(_-3L(?u){2$E0m= z-t*4DsP^ahZ9mBKZpQDW!1JCfc;3ZmgEg2i{0+Z}!#r;*3~nZ(>HY%0xtI-gya-2` zG12^JXkOZ%96XH1?ijylbY6Op(G$R6q1LZe=1!QDwj)e7Rg$F%NFUCF)6j8Qyd*JG zN>+W9WCtz_oRS*+2B#z$$k>uLXG!y=q_OdmWEj$aNq*pKGwPHy$RFgC6a+z2XiI{b z%7nW~Nnb$AbEId78Ve%n>7k1fqSz5T^w?b$A%eHV3q25|&LKtY8I^4-fh6mDh zs9sMx70FFT2#Vz;)V!e>47ATn$jCxy7#)n(*2Nz=d<9IVGJLH;tC5ARl)@+su10n3 zg?vnRu6i3OsV!(TozNXlupJyM5Ry5fk#gx63VInId-gHXrC<-A3(g=>m^q#;8>a4{%4 zs!=4t3x(j@&?`6uPYfmwNbsa!QZ>PogUK<1+Z}?p47Ti(;3>hB7{N$m37#5EbqH=J z!JR_zyD$w7!PA0iRRpV|mr|pq2h*Fvz2RG=YFz?n1T$=42nk8xR>4*}u(S{G6RlHB z%+|ry7QMp+ZWC-{1814Qj-Vr+$9%+y{I?CZb=a9mc6JwbM#tHi8O+=eJKF`@*-|<5 z6w0>`wzq+nogIQ5;-px1b_{m3=$4(Gf}L!jWoK3}E1rjCXLc~#VP_KA*+bY_)Do+m zU4mWuV8>2Y<_2?3^iOD~OSIE-9L?D^*tHsAXMc{rvs0b(f_av9%m4gfz74dj?-uM9 zXNdgoOFdZ-ENBXs!M8`Eb$b)IFj!~aNZB*kQTP3Cx__0g1t6W;L>2J&Zab#c`T7U_KWAScd++{^4KTX$I@qs-Z$9S23n$*1fye(aFo5L-Okt@KHU28SBDr8*A_4)a%(mO}}{6=H!b=HbENE-|*7 zIwCm2CB|Ql^wTM)r6Q-VV2b0&=~Ka{OnFwD3P&oPGz4gY7moIi#_Z+j=E>Ri?jePh z9am%Er)6sA_s0asSf)slFm-HjtS&@ks$?KB#|6i^OxSF?f-aYd!pin7WXj?Yc6@NW zBCPkyxF(5$l79Py-~>yOoq%=+-7ZOmqnycUDJZ!_*^EvMPIQUV<WZt z)=v&jj+L`2(Q4yP2~Kg#u^F8joa&b2AL+03kMfa{HcKkywBR(`G^U!s(}UA(;0#lK zIVkHg60J0Bl6-ZrT4QpYJA=xxwT{ zu6vwDbWU)N%Qfx3i0|CsT$k(KwRm1|o-N1L;`zb(v2xCEYVm^L0=FDnix&nLy5;zw z%?>aw3NDHSlV}}f1a@(7u@3i91S?A9cu84%+8>T>x>OJ0?fT$)ReC>7 z*S3Tkf*Wk5+h%iPaHB3mS?DXBCUsMAla3P$Z8N$#xH(qokOdV_sJSJ$Ma#m!!bfJd zmE9WL>PUNQN_&||`;5UcY2OyyW|+1%)XD$$;PxmRr&GQoxFZTLZNu!BOZKht?C%Wj z+)(y+1$RZ+IN9GF+#Q9NI+*w;2lH6)n2r&JupP{& zgHO8(QMlh~snv_egU1zNy|vV_0G|my;}V}`?-+F4gpM(IpfVJ@EF(IejCx6`u-LjM zf+s8!R5vl2p9?>0(fEsIKNUQssVfa<1s&kF zMr*~s5PYFOK5dWjbntY4d_Gvs=k|urXM$%epR){~&j!!N`21p`)y91(_>#+~&FHz{ zxfq`h`bf2l;q&?6`TqH|JbXF$a^HOV_xbm$F`G#3E5TQEZi&`0DB?g!t? zQo@S3;zaO%7W}NLYHHiVA%&l`cPfsgjQ%puS#;ag{yO+|B;Q1<9n=0M_)QdE+L3ZUNaX$xEF^0oP+DSDe;54D z3V~K!ihC<~OBbiR1{?GH;P*O4L}0UdJ9yg_L2psN6TD+fvCZk-;9a+r!fzc>zZbmc zmSgMe{osAK93N>YXwjoT1b=Y&-idr4EPN;X;QLR(pDaa|yAOj8U5Xs#`zZLxrN{F9 z=itvSJq`zd3I3u}I2P%H-XrwC27k3=SmpRz@Hdx?!XKUH_xIrME+J%I>hT}JKjMT? zWFnS-2LFu2;(y>HH`|Tz89`+w1V^eA5fuc&Du3^d=9nBJjNJ=V= zHG)gmvPNR4S(V0wMAD71Sc$Aur7A`~Q&uFgnIO{H-VLR@7SB6xH)UenZ=GT;y* zG?T7d0h$)pfzp{KL8EJFF&4Vg*esEB?12pm4zj6Ak#Hv z*^OdX#8U;0ZWUUk5$pD79(3Kx#yT}}rt4JpTvBo*DQTb5jn;9z-EFTlV!;*(=&A%& zQ&2-Q7Vm&aR}+(|C2l5{kbTwY2ui-L{3eco#&++&1_7Llq;sHaN5MFrj~)BF&|9`+ zknsd|>2Jg^eGDciPvbWUJM}N(ck&?5+Y`%M+YiCcK7QZDy8DV|&-*og$783W4V#^v z*joMysCcr?^QK`EoFC_T4^P0U`7N+}kKae_*u8&bB91|Itpxv-Ml79q^>QAjlB2&2 z9ZhvTC~;VKfkbU+Q`bWXt~cjhDvem#fCT6&2~=`Su~a94KBv0IVGF6!h!qx-5ks50 z#v{1i9t5m3Vi5y5(KR_S$u9p^<6wJ5dF7 zU8{tA3@?TJVIZIWGMbwqe->aTw2FM#Srkgw6v`AJUot|gG~}ZnHW@Lrnta$kIB!MYV z$5$(jyCPURkxGtUIhIvvoCj|uM^_!ssx;1z<5hADP$;F@u%haaD^$u_orOfm(={Y8 zKk%Icit6w?1%?)o965W*dc8X~{Ci=jj?6nF9PuMlilcOZG;v))IQPmh1y>B}dn2$-Z&C zN{#^vr8K)wEm=;4JY7Qq^NVT83PGW3gu`5+C6FM6BgDdvYT+!{oWeOqgtH$IDVz}y z4*g}AP$QiE0Xv~p!a11ndAf!&rhsrHBUn%)oC6T7g+s3v&Vle&a&(Pw4vOPdatu%? z{Rrm}BIM~B5}031IEM-fT_YUk8VN^;MJJ+#GYP#_UDvT9oWp=f;f#cE=r5y(Fv2+; zuoGG(91Ju-8C^peQ-CtIe;(ARG-3n*6uRmdg3b>1I#oU#7{~0Znv23-DcE$Yv2jdR zusLE=*yx^+H{ELNBQ-WhX$l*?0kG-Du(xw5;mAy3!}tQ5ZZ)={gaa{!jYbG;y4Bc* zl3CPJkuW+gT@m+S=up>noKysKRVrc>DuVtpdQDRis47&14XvsOp(Lt^ z69t=YHMXHdDngh?XRa$^#8_4Yq=S*vNl48WF&Y&?e;GZssfd%Ae-v6(5vMUePuElg zQ@~tEMi@w>x=xVc+9^>+3~lP_?loLHU2>vpa$*vb69y6{r&FVx7;18gy5O?pMAziR zBv1}c@s<9r78JThY(g(OoTy5o>h2M2y4BdGN}}pML$K*qW1A{rb?+ru-D${5O+ zT0RG`6IxZv=Q2J|*GQBpv_)1O|9OH!*Puut=+IM3J08Kzp{@(<1%#Xr6d@!FLI{*G zUNeMTz+9rxDnc$~e4ef;g(*k~*_Yff^hzzMZ_V3)P8HB-12CM?0valGp=E-ui;$7f z)d0E(lrcy$bX^SC39X{*62|B08oHRm&?UKHOqIe!?IOOaX@60$^xh%h7s!w4;mI-v}v1eC2sRzg`Glo2Q| zjVQYuuoGHE*|m(%(>0Va1zNIXv^O%6mm(^SS0GpqA?VdZh%4c(+y`{7T~%qkns_<7hMa38M3^B` zi0O8FrSS%a=Ecn^45ktKo0K=@!6FXjOIH&Gmf)Q)0uZv}=Xm|jirZSYodbPd6`$MGsT1}Kym!O^1I14PKvH3Tz15X_!O z5&WQ_&@}`zS5Z5W_n{G;cOXL3Nw22!PIxOhx`xiX;&_!D0~AV(&S-u2AtL1I8akOD z=wzR#=zLgE=o&hiE9k6m4QWY**uy~VD=@ZO*pS0@NVFdKh-5_9lqE@z03r&UVpAT8 z0JRo#CeBOOb)77l{V39jW)DI|5-6_(o}SS@#;l{zD$Rb9@p-zYXr_Q>OGZZ_Bdrmi zMzEGNy;{i!r;l~(mIDe(kmetaA@89CDujjx=s~(pF>VU zuMc_&l%cbR-sf3Z6k0{^*BGCtYlvYA(#ujMH%J9^RPqE?qsUZv6ztcw*V7m~fvd!* zy#OR(q8XG&CiLqFuH@;OVu)D&6w>HwQ?hwc@aV?yj#hY)27E*C=*IAlAs$UGq)3x1 z^q)qOmC5}w5@?mASF7Y#m|2dlQOU2y@hUk6D3q8=MyBkWM99-M1TjDG7MZed2?|}K zlFT(SWkT%fAXb?l4@=;6T_7GE>$ia@RUCjR0_8IBwE6iCU?;SyieF-Uo~|K{DNGeh zZmUhHdXOf8JtnZ@B%JQ9>jG&Y3V_l%21F(pnOq8$`1iMp;e^(i1B&4h7_hi{~#G%jEwZi$HMWE z&yRtvwVGb7)jxr^lA~+1`loTcN{#^vr8FBY$BbX2X8SWD+}`jePz`Q0N-1 zX0Fg`JMzJ>gSJG7zXZ(Crtt;Q15sq9@l{DrR~>rOh?fF!FRZ^>yq^mm-5A~);#Km@ zeD!7UhsPqJPWawXAIDqpf|H@3BQ-*bWI7OV3$K4C}tO{aaSNf8Pvyc z0J^RVRt@d-ZKRX-%3gv%`AXnvgZd7$jzX*2>${B4(=|mi1=_1*bQLn%_6eD(SUBEZ z-vhQ5JH1-$@55Wk(KTZKLmaP?V}L@5i9Kqs9}po=*HFg%V(s;hf8~U)Kf84q5#P@ggg#5P|a5l$Baf`w*}bs#n3HebkQ_pQmdmVhT{ifv2(n ze-;$Fre#YZ*PxK2U;?5+>|X?tuE|RfuLYtRNkpRft02>@M%Kd#&W4n_{!NhSRwK)p zLRlh({C7d78$-ShWPmUB_X_VHf=4%ocfG zKP6DU5qJ~lJ3#$tnliJm#+#e8sye&RH3+Tb=^7%4x3nF5-D-#=S>J@LwH^EyiqgtS zuU5_qyp2py>59SC38rG`)fJP4x00i4DyAWhSIIFzp~NbN4NxiS zAR^@H8cvwsQaKHw`lrEyLD$p^Gex~$9C?zN82t)bWKMqJUjp%j@nBz^kBpg z4l)@+>D3J3f)h|n*D$ns9IujNfI^8e6jk>`BIM~BhL~Thx+e(=UBeJ_Rn=`7nk-0k zV+=hc45{(8vT$1pB3)CUaQ-k5O_vdk*KsKksH0nrthJ%+$HTcdixR8NNIkbBLY}T6f%(PMb9+IdYig6ZqBb?1pN{C< z1`(Q0dNrLL@K$nk4V~M@@hUk6D3lnT(YRp;BIM~BI+-8nWD8OK+>U}m*U-saMe8E% z-ARz>ntVjokAnxJOwo{HmLSuuM%Ky{4Jl>|GTmxqtxPhmkn%o*^4xKS1b)^8c6=Fk zCe?MFCmJ>fIf{nyj01u46Oq7o2CM~6uNL?&@Z#hXTqE$galA^70SYB1@ThOwl?Zvd zh8^bT_HFY7gRYS`GZlGD-zKzv&hqpwBI~-&7oO(BFFf(M0DHY~ZVd4Y8ZpwyJq3|&toWxL#v+YeEXZ`Lku_tH;anofbgPjy zV>FzK-n|5wZj9b9YI>(w#HE5rH-`9(Aa?u=6YaXL3q&RM29BsiD^!9&`B@<8bGrL5 zn>d*7K?UzB@Q|Ae-j>-&zpxor@@3dEZq=1blT{1){JH}U3)rFZXk{2Gyf zVLR)mi9Zl<0dy0l@VoH48^0gpmqXZWr_5r)4n=xh(igpy6x}T;N64Kdg0hs zIytkS{m4MM<4k z|Dp@qVvL(5$U-3~C=+bhV*`{jhXh0P>jg}??Wdp@klL(6@l-E`3(-S^p>BGYXt@K< z620vfI)lw511tIH4meY3HcD=Si?}M<%S;RQidjRoP1EZpI46z0E7qhjbBw~sU}PUW z2z#S~QErq|kKTodQS$bID;%i|>pKUqS{%alIA zn;6+tbfIEHy7Vzlv6X%=Z)jv{>v-#CChUSj=WzomZdNomkfzlQq__bu5gyNI+(4SK zH;`tW8%S{jxg-ivOYOLTdv{=$+Tfh--auMN)t65|Aa6XJnDuL$Cr|Cz4=HdPb~l6T z{1nc5H7)T|_C`p1VIpo4?dVjvCE{iUw|R-5Eic1LcL7%$&P~BUrSap{2Y2K5Fn%4c z!tt|RzX6Yh9CDTdauZMT0mzD&jCc!q8PxcB8PF6O{YEvADGbu#{vf~68Myc)HW}F5XLASYe@);#DeKL;s-6wOWIEpqJ}MLKOSWM7Gw(Cf|WW{WTp_P zE(0mi#HNyUX?)Y*^Mj@B+sTzgezu=3LEW*MtTc`9i zn|A}xMk%p7R*%9RtB1>los1GIEp0VdC(=g+c{81#QdOejru(!p47lVLwlpQS)Jm(D zfi9{$!m(-Q4H8{;E(FblZ4i^arr%uGKP|DkfjczlYTE6m1(H4J3i(9Npzgf1;i`+2h^DE{=HBw&ouk~Fj<)0Z4h@6trwK^IHJ|~>sdZAkWNC|u zikB0i+5uacX?yp5o#T_+p9RQ4HY~=NfgoIJiO2XoCB>XENgnLl1l<*RI zl!RetM8bUXf>BCX@Kz*fgEHX_NLl&`om~KOe3bGcxf7+g+;3!A|4q3=3PRdVC`d~| z;F|##2d3|q|1J7%)$|#9Z|eo$uHhAE5~ERbXk+L|Qi*gATBm%PV>45q;&JNpee!^d zU{rk`LXWCXT-7A?$!B;l9Mq@a6{g_Ma_DLxx{Ca=NimN}WgS!L@DAjeP3UY<{gTC< z2#ju}6`PXuM%a9aqw>k>j56U}NJ7n&^cccsid!on8Q$YYt&2t7>qgxdi@Ki>>lOTX zxZ4cvoq1LM9&} zlcsNv%tr|=I*a@EQ|&t&V-@uV=nbR$b>%L2u|m!z5a~LMKK4Qu=u(#P26bD6^QDw& z>!MIQsKDjA);#ta%hy>Qc$CbUFV!S_U`MFxbMcTb?BEM2HKh|M_pR}T9dv#M8kShI zT?Dlx)@*Mf^ghgny$|zQ$2^MNmrC!$h~B*qzO%z%`Oc0cU@^sR%+}FeZ6LugewarR zkdk6Iw#+x2pv5L2vBhpb(O-f{An4dA5cGRWAQLdsD4lKu5ljn)#zG)S zVniQIGgz2*5@2T8PlAY~`A7$ncEdxu{4+_-nC3)Dd4_4v)~FPik`XF+>*0wtXfXyF zkyx{N1dU9rL7!maMkUsOG?UBd#F|?yG@-R#hfiqDT3>_p<*YBSeKT7d6KlYr1qUV8 zfB}m)*!u7V0byW5YhaNJTFWG2X6ul|8ob-A>73a*G_hs}RHR9U(T~Q1szN$8KO>O| ztt~cexJ8C27Fc9dBgM;Vq*dD4T%# zRqTFqpai3B0;(VyY^pz|zpm=7wcezVFH01=F>dcit|mpcSBhf?OwrIQ#eD;&$n{F` z+W}MLd!_Kx1M$&lQmkWZD|YWbV2VLD1ymR*a5upKvKnksXz4yXU<$uiigyQ05!e)W z2vvp5KvWe>igl_V*nPkhLu`sIL~~CXFvU=tf)=OPee-}RnoJ5Us}}}LVU5T-G+Wfi z2Lq;vtjJWMs=am~Sy?lpsXA!D6xNRD6qgQ|A~GbjtHtgw_nRW>(}2l7Z6O}$(}t9u zQhl27z=BH%`?PjcnT{W><1vC@1|kk-apJX7@ZY3h#`Iyf87$IZf_2Qa*gd|E^6M)> zMCm?22c=lJSCl?)#sU*bmx3@jniN5xd2$4yAKo&8(E02MT2;C+BZp|uDB~HeJ?MC? zFKc}b)|a!sy!AC&-yrK7Y<>75mJo~X*7^$8H^lmeS|6%KQp{{c|0;t&odIe`e5eLW zNA#HTSx1qe=MkwgrjKf1u+*C*pwx=p7Y~#`>P-?*u*L4r50pTZSQ1e7#qM7Zlt6S? z60mxT-Gl0>8GZ49euTlT5!bF2+E5D1wr*KF^jk)xeOwKM_Tjd2HTHYcv=ikSHl(CH z80d%x;~6I5c!p_oNykb_jOe3A7%T#o1a}DgkN2BkbfUZh31sO=JkCTI-xSP*ZwZB1 z*m##7H4*+Dyj(isGkgaQCc=W}p?0REy{EB6G8FTyQWiPrZ&E63^_4sIUBY}lKBJh* z)a&m6{ubXc%dDoWzM`1smjD~MMhrF7-=>^}S?Or?ZOTj?z9j|q$*%WPekObj^B{aS zN=-ZCJ0o*3M3a@*Z{qnOe%NrtC6}JJKYmz(!7SVJHpg#1e$U{C*|2vHe#6q9w+26c zrsrk+=45bT4}Ndrm#Fo;t#jB?!tZ7L-pB8-JhqhZo8O3)-9zB`8GCxM5Pi?9bP|d$ zWSa`P_IZAW3#U-(Y$4i3@pI0k(tdnzLFpw50~^elLf+3}G5BO8^K+P0=CEAs6lIru z7fid|4UfKsgX2!1v^3qmQ>c6<%YC_MB}&eE7z{f>W)+9C92E=`Y2Prz*AMGe1fO%GUY=&eUvGm;c?2m zRF(NweKnu*ah|F&7z{f9FJ4x8dc^=eUvGm=BX-EzRlBjnev66KFXBu z^EhQ*rpl~AnW{~T7Rm>Eloqa42yfKI5ai=M3gL2v@Ej0&YoUC|r;6%1!5no;LhX3C z%Cd8?vyO^up?vAbq529{=E6S8l&}6&l^K2Nr%DUu13!I8O1|;qlzF8p^T+7X9P1|^ z{gKqs5_Nc$LVY-nDqjH-)bMJBfJufcb@`}|2({4ZcTUXvoz2_5i;lSChv;P?CK@iO zp6Js&g+=}%*|bCdj2%Fn>A>$${Mye%0&6AZvpr(zxJjES?9l<^!Yqj)W=p=|BW5ea z)+{jEkJ8aoY3`y=_k<^^=-qVmX^fUn_h7j&+ZmpuqKk47A#g0w^5q_K*LyJL?-7=n z$-<7NUVKI$?jfHL$fD-$Uao;aF30dgmoEa5kMtMGbzWd{Fw%l+=4B-r40#e7S_E1&5TsUL&R8~XuIUvQ^a^Z~8!kK&($l+{x#2Jr; zNp&0<9NG76lm0S)d1*Cu05zT|?9;&)k=%-06|6EF%o|sc^4TGW-Ia!2TaiZxN5|M* z8LvqB&X8)AqS-6s6)9gFa@buNv1=<*zCAQhMaqYWHl-rvvqTPOM;Xp+MauVx92Gq( zUXjt4iBv@%6|YG7IFZBIQ4wdhB2VOpiu&XX9}-d(iP}U(Mrj8dC6KQe^_g~`ut(ZE zuBjh^%?zjCk&hhpnPy>l4GXI6;K4d4g?#!*#ENlPc&);j4xHY7(W!y?783N02NtH1 z2KoMx)P7aJAYVa}sCZu_A3}2ah3izAIN#^e6@3{gyj~&T{hunLdV-!lhG}O6XY|)W zMjuj&6BT_tNsc6iH>fg;eUvGmRI2JAqmL<72|~W7)Q2FV4=JfKZ&YPIiJqmm@a6ML zRb@sWR;nsfzOB?pnetsFNBB2MneB5Ojfg(66yB_2H`i*Wt&{!OQtytawreZu#HH=I z;L>nwc)PZN1Ahk|liq%s>LZ<$*z%$$B0Z3NW)# z3kBkF77FrQDEI?tk`oXg(xVm%-iMb91$>5of`f$u!Q&Z|q?bl5HbJ`-Lbf%2zT?x} zkJYTn$qi`@`TDt-ipzW+6v}q_Y&5i+~WFBXPc?YpKz!jdlG)_&S$R&7Ix>9Nm5JU}gfB`f znT)_Qurler|Nl6M;g&xInhZZf2qz#!yq^UCQ(@sJG_3Q*jMPIFTUqB~XK6kMWJ9AX z>xr5A=E<4%@k6jy5lN>n8Rpt2$Z;-{i|moJ#;Q4;rYU}s7LPoWbTC|Z` zr;XG`ZKO8VMnu-2QMHrfy_So4ERA)T_MX7A#gTPrm#uit;0q|uNU2KJx%Pd6L}e&! z_=xuIAR#)p6fCL}YSL@gMoR}GWF2V7#G<d*FqzocQ^*EUlgZ4BC|U&2W~y|yWxLP9jLp?2-6T&7kpY2qCZENRjeMa)wVw}|N> z4wp_w^{lT8p99UM7Di@JW+A22F%5N0JL;H@)G-}X#}w^{(#4ft%UMbnM@*^pPJ*=@ zNqWawdK(;qb9HN1%jHBXR9x&ZviE3YC&HZL4Pmbl zqm&|keEDY?emrh}A$~ZM<)M{(-^CB>ydE~qJ+y9bOZ?{HcMyK3;KxbOefT|x->dj_ z%)#`jsgQ13U&u6ls!-chsKcYaV?KhDT|a{<L?jVIbxEV)|^C;JEN~y)0+U_; zLn5%gx*AJuvI0gTG=v#x_Lydzi!HP_HWh-gB!Yi9D(kPtQkR1-kj5WU7)tyh5&qC& zASNI&1uj?dr1B8ZGE@Qe9UVf-t0V>I)K_1^tg+maorq()3c^B6wz<$;7}lO?Dl|70 zh9LqAB@UWE3azCuoMG$U1%lVXyCODN0B301qSt8ys1!Bx4agsyaA_;L+8=yxgI+zB>Hp42Kc!t%5HwyrDWAZ%2Bqx$1D-@8GrO ztHXO3-dG)e1j7eahwskt!PVhgG2E{XAI0#XIvj@0Yb{iVb9JV5NOkxR89uZ+9Ah1? zwT~vc4&lkJ*HK}uXi2?l4BGCMCcwHB+LB#wP>VKG;b}cSaL+5UlSy{b<+(=G2F^8p8O3spCvo9d zV$fF!p<6q^bZg>qy0vx)BOHu;WGFs_9@VW4f|uPIpJ4$Gx;4Q=C9q$^d%E5z>GL;3 z^DJ$JeDu!U=w#Q<2wKtR!QO7U*)R<@FMDJ7Pb-5884P@f%br}%`>2`rNu$>*jP)xD zwGid-_2Di^E|Kg`wvJU7Y&?+lwbRBqn4epU8~e9pdGhR zb-Wm~3}&ZJF|*TtxRqb%P(#jmzxf9gomoxS={L8Dm9P2Hva#wGehoERNGJTX)P`2E z!BDZmj*1PARBW)TVo)&E=U-6Ma(hi5`o-GrtzR!_jgq+V>x6hp`V^=Xwx&Dd%y^gzV@x?z-HMk1WiMGgj$UpDVT2<=jp$_?JxVXJ zP$GKCXNXkPOTj~8h9y(!Mjj6i(b?d*uk0`13WdR`IKMO(xhgGH$e0_Ds~p-Ab=#@0 zUQ>iWNrll>6_)1EY}Z(Y#ij_~K;ddcmO<5IoT|x0Rg>veHM(w2@>+}~ zG8I(8{TSTVT(aDRBD$_Z&f2z2XmP`gfoa6xOB_Xl@jzam=*GG(S(g|d z1sd!Rc9`91JD4G7outs_&G^AoQqZbqX2Kxe7wC%1IzoHn~c&8L_ zvVFK8Wz*}0#Bet$v0blj8DeGQoy7KDP|!BB6%Di1X_&21!)$dMW{~5GYj$EiJlDcA zp$N|+c$!M!F$;UA+wGEM%h5?~Q{DG+Xq9@um-8)%RT>{A_7qJnfEk+t&+c~BBzmJj z#L7?U&xPg22? z8B8<3r3#*+f~WEUGe3>d>>Q@6=ou;+qf8aNwF=%w1$Qu*nQg0rXR6@s_&{dco9G=> z^o}ZeCmlVD(LY1#*(!RDipIO#l6n_;rhDefGt;xHJZpRKR-EdI<}(1t>IsvG1qxos zN4lqz4-kQYvqIlPMK2;u^gR{4n2&VN59Dv3_@d`h0_o}=ZN={W|^ z;!Qw5nE|PuQ}{^toGQ_&p3~%+?l~P#p|#9_RL^QY(mj}3sNgeH@R=(3EE9|?qlk^` zg@}!7T$DV{Q^Dt};0yQwXBRRWYg`F$SF{uUfvk%Z>ctB65{-%%Mnni}Drs^=DYrh9IcXQl_66-pYnGa%J-2OsI4I~hz7-=%`@R>Al10k+Yz2`~5J zDLQ%|15!Qr^O5d(K%!GU56Uy$^N>6grnd~t>(mkJ+=v2?+@=W*e z78J7dSv*A|PcR_W^Etvl1949(nD=%dIgYUjad^>2h~upnO#VfA*7iJur|8483`q5S ziH~&8a}177B)+L4f5FhLn-XgdMU|G&xYQd%heZ$$#U36(I23zC1mRHZkr9MLu`448 zFQ*(8L3lZ3RRrPXluub`CSFcibF>3y6Kjrfz=p({V;wM;SaX~M<`ZkW91w4$AWqt1 z$ZSE#5F=*`LWmeYTM$yjINE{`<5>;}IiBr+5ac-y2uYsnfUSu&=UMPe3Hh)g50SE( z*RhI=-EYg8P*#8M4i)Es87wDaB>}ad*u6!TXJ|K&Kn}!80xC+ed(}V*NuDX_};FIXR0%@L2YnzINK-4Me*wVHzwo>|So_)u1J_zW=uzQf=iXTdKJEe(l>3>P3|Ybi=WQkZ_4{CXdWXx zlF)4H5NDq~SsT8LQu^Hdt;a@tAhT@l|00JG9giU^HL0{S?&!_)=rlrfRzW6~g>)1Z z9aLzV+9ESfPEOU$Q8GJ~111oa01xaI32{Ln@CkwzG; zu0BDwt1BGaTo3B)Wh@B%*aiZ?x>hwtZC`cM!(OK*3Aa=gerq$HlL zG1yy+Hl`qqsfaGdjS1E<3h&lQ^J7f!K^PZTxdep*xF95RRIUsH=JFl}@?53kpXS!#EJTpBbB}Q+%=uP zXn5;?g@)y5q*gXGMMw8Xy9m0Ffo7z2RA84~58*k_w8>gvgN+36$d>Y+q6d zZzC%UyhFfL&$|Fh_Hc&9d5<_~Z%myG-v`77II!IQ0L=et-5HKPAb|$>BLVE1DQa=c zAT|rwhhS%!=g0lhN(7lcgh;9nQLm!KyN}V*eb9BfkE4)0dK0ZS>OE+xK1Adv>N}3| zTFy3m11S&t?%sIPx@x0oZ53MSI<$VOA6mnYJ}I4tdo4W?ok5M~O(2~|TRIz*$UD9y_Pdo{Tie2SC;i4 zoeAt_VK3c%YiVV2$5C`Q(cgfqY&-V1^cluJ@MJUZ?;1DhVM|Ys39E6{2(dwr5OH+w zA53N&`9EXOzX%y~#j38@GDd8Op77(1#KZRYM#-Uuco??`Ke+oTq0`lSn8bSM)Nlrq zaf1@!+0e#`_*y}T0Y45ZWgFV-nz9)Cd0xYyq=`-H*jyg5If>0Ts@s7JDeR4Qb)$lk z@+ItK84D@dWEra?S=^mi@8iBXDV^sMvEGA>x3J|W<$__>A2X;fuOWx>8l=43pp>Gf z5gtWr9v33jH{~T7Z}F;c{HCP*l$5WEPqFxcbtg?UW6CrArQt}B^m0a#32TKj<_(^x zM_R7Qi9?d=dcvH#f2%oL*U+A7$~N)zWu2s=JT@&|J=1B`3$p-TQMw+D_gSY^_8!I#ep(es}{J)3Jzj29O6b{f7U8w zGQ=BZQDM!os9|nYiwg{Qff2DpBV*907&JNtwZ@<}LfZI+n*m@a<67l0L_m8jOsVsp z!n57B+j!fl4aWjgHys)K%9Iq@ZPKN4wJl~G5MA-fJUFA4*{(gOF8A4S7kghAPj&C| zGWhmTGh+#q>9hov?nh&XU90ovf(QO-dtc@x3q6EX2{CMF(E#l*w8ShCES zSUAqgWuSS4~ed}uC?F!j82K^`%9yk=t>5hV^F8@B^$YSAzD@`Wbhss2bvCHas@+Q3nyHI z!3!kVNz8;dLhX7jxY#SNdoL5z8N(57jw*4?NJxG9JErjqpk0{WFXRLJ;Cx`wV0U?@ zd-jlLre~2nYkT&TXI;-?Jh>XMgio#ph-XQ3uk7&{HH9Ct74X*6ztW=)bo~k5i9sUd zGyDr2tOf`k&u(SB+aUi*(5uoF$iU3Uh}-{I7(F$X^XNKb;VY3mnvbcGVj-=EiqX*6 zPp88zAc{>J8^b`Ub9ENMtZs`eJz)V&x)mw>I82C zp~`W~OeP&pv|QI=N?7Mi3G1RMVVyfAH1n&+yq0emo-^K$!1Gk{eD+53j6=?#nXbe0 zIWd|y$a5&^={h{08%y68&*7v`z_PCAN4=I84bM5R2E72ze)*;IHkxO=Dg&PBIy|2r zqd8Tkc~f_hrxl>@+%40RsR&F?2$%?(HWg8uDicr<5&J%JqPavDohs8{iiZ|6Ri?d6 zm1!+`Ogx&WNAn0z9p!YwVS|AuW*^*Doc zUbNA4;!HZ~k*-7M#W6bnpRPv?cyt%B@h#ifGq)a9+un-uxn!f|Gg0J2*OAYqG5Kt; zZBLT)bX9t>XKP~VBRz=hSvd8RFs*F3+qMf2))=3F4&d%?N`Lb40Y_N{OAr5;(Zu5Ay86l&WS;N=<2IWZd08?SOcI(ju7 zDF40HYSos1#5j|1Zjl>xXP7nBw-+PGsJSv;goos;nYK@w{Sc}D(hEU(4&S^{H_((ulNjc28P2a!Q=Xs zy8mHE>dm*U-iUDey8mIGC=6Xu7`gx9J28EU?tfSSf}{P`|J3~tDGx8acsr5a&slm^ z%Txr%Pd?x+P1q;8TEqD!-IFnjhbOykLGQDoP2L7>RgigA&v_Skdt}l+X*k|@C3>%S zff>oHKOf5)?*g~a<{QAbB1NG-QzjbT03N<#nP0DF>{%ankF|l9=w!@fuhsRlOQSb- zS>&|O*)tkCCrwMZFfQu!rf&16*(TN4X>3i)_I+#N;z+qTEuhaf+_=K*`5kpHS(khutS!J93%sV^E9 zfrdWjB9~!Bu_mYOmD-??b$N@buG3LtZRDOUU>m5egtJ)La0Q$QFFIW5e2qu8DkMWW zKPhYQQsd#CtmD&FWhTq8tJvN-Rov5f#&j{Gu^T4HFvsDN-T`~{4p`bdVDH`m`!K-j z)g0>8(;KZb@b|s{pr=dDC*zTE80-%|IVcInT@7%C!v$BL+7*o(Yfs3r}HXP zi8vdNN-T@JTHGF1<#Lg_>J!M%F68G+8_mxw;fJon&vX6pv*O?9$H*P~m44~@jiz(9 z&`H;!^UM9wx!-?|&Rt38S2mi?IYK90ht99|N9X?kIXdT&&aZ7WojVJibR9Zh=#S0= z{(U+*h8zL?3_zz=Y3WL%b6W?ZkjQ?_CqG}`XnuAPe&{;7L6N%#-TZs^IGgW7K^;pWHPTk2C6i84?S3#b824-PpS^qwcxza@5UdxEmadx&?2V z4m(7&l;=j=aS73Tk4p{(=6`!!G7t@i{jbn~@rtL;jw?CD&yF7s8ZZR z5y&c>u2VmUHN#Vx6eCBG zNcnIKLfylh;c1Mf?r*rxPY2q+S?8v5%Pi3-z-j=|?3DALc)uc4_v%-An1SG(3;YGr z{}8Wtdp$$ZEW_}s`!F|jpX7ryzY~z-Cfq0K>fD(m&?xCy09++KTf=UGbC|%$=Uf6< ziV)Vr^W3QO35bl+-VgCy=z12Hb6g5^KW?fR0M*TL6Q24QOTP_B=^-De}Ud zpmxI`x`#D-a+i40)+DOH!UpWfnu*=9P9qOo-z-z0V%m-HYD4 zRdqD=HyBedo+Z%%p`X&!Q`^PVpG=QhU^xL^ntDFNliPW7kdRDWZtF&$nHVm5IZK(CjTy_Rdt8hlRfNyeDfFa3I>>0c=H({z{V;UHrZc3*-)p>H@(-6_6j)0hfxWObTmaFYw%Ou+0XE^_Qj z{NCkTfM#vKv+sTq>TFZ@6JMgl=0Q``ej;uq_z&+V-h{zFK331U!cBbOMjk#e2f0O_ zxRD1>bRgkoC|l+Vx2u4%JUMv~59c+rpyzv1Pi_ZpHq-rUyfxc(2mBK<-5*&$KCk{N zIGR|G&y{rDDY30R+S7&PS;#mc?}~6Pob3LWO_@xDKSj!H;8mKo!^)vxs{)#flM~7C zHN-YmYKjvEdCBli0L5LyyO3i-i0wi<%oYz!p7bwFy(Z=p$#wK7yr$xT4rWr}-$VQf zy40n@{2iKkd6IeYfbUJ>|F@r*|6gs8|F>NJ-*NdTnU?>G;h&yR@FM<+nJf#w<)5W0 z{_oWM%ai;9GgI)JR@ZPaCj_ZD=sc_+&E4BW3?G2@q>#G8BN73CXoG zsWUR6CltI$Cd5pZ1>eeqrN(4}#_GuA_gW_Mq)f!Ki82|5GCrA1h9hPFGHFGumB|H1-;|THt8%Pns2#d_*X#+M%X4sGVgfhe4^#){y{gy~(ScH#cMq;hZd?Pb@Lcxn< zM$BYc@U6^Psw=bAaCu`4(kg|WBT#8uRp7#Y{b&}*-`8FB((h~|^Bwu3U?K$FG`LfiQd|MD5zuJYO zfSD56$kPUFqHGRES)WWc2OwqtvN;s7RyIcfu(Bb!RyHk0HuQvo7s-a0cwdnCRyHg( zCY#ZSj>`t>21{EV*w$CzW;T!#gs~No%F_mH>NukW8b6s#k4MV>WqJ}~txQh^U}Z{r ztxQK7nbH#qUL;duCd-0vWy(@xG97D$;xy24eFcuUfspzH3pmL(w}HS2E#P3tD=)pR zN3kzV80+e4l{X0_ISQE67lxd>HyB&?g@N9sSH`S-bRVJ(^0Wb)Hb=Q0vi)Sbz!UKO z>%xtQwYqQ%0ILh6*6Kph=mI^V;6=JX%w$>ctuC;Fdp zZ2gm5TmL(l`llxpyr}+(nH2V-`e&(XePB1uzC6jkcs8{kdKLM7GXA-n(LevMA=dK$ zCIHJn$+Z0MX!xfm6ugLkVkXOiZ*31tjp_daAXWA43vD3eF=wv@b85UA_&hI%-^nv3 zPnkS@%Jiw*G9>LC1NWJiv2T0^-h=-x?#4O?{=H7@UUl5c5-~a#*LXt;2-|xv?_gY9 zJ{VzR=k2}QE_faf_(W_djh%B$*P%qlUjpl8`@VixYkebtzt>FX2OU}ZPWb&99uVhY z<icsMENU58&SetGn{v5D!^+FTj(*6G`#6 z!z_j~^D^F!)9D@{?(5U&|EIX0 zk&u(b|J|t!A3AT=(HU>dbh^W*jXo>moi6!*Tim~iyVK+!%*l9%O=F3V9#8+rQ|bTO zv|+0<-XZfD^43(kYXs+4NR{)as1)>p4G| z)9Bq^_siiKZ?fRLChqQnIcnYy=3MW+fLnetUU!js-iz?8m!CoZ5rT8%Va)B&8O;Cn zZRjqaPxmKVG5=|kg_4y_weZZ-RtDadM>BTf=1kRAr2heNKakwME~N)MGkn(Jq-_mo zqx9!z=~CnFgsyDYwX7|I4msXH^;j;?O)V^Zdu!M)N3Q+2Ya3K zm$e-M-i8R&gSe4i9ll<9Hqt%bM9eyTUy;y-hY_mB*9w{L_*n`XA#s-+5+)coMxc)l zcA*1e&>J!6#8|q^W6c+h_-h~bt z<3e+Aax^O8bJ%K7&^ajYZ0y!X&@1~XXh)$siOU=qx067M&PH#JK#I;m*au9&9KL;o zhc8qP_VyF#>pK$~1}KXXe%C^7M>7r>ilfcE{RQ*(3B(+O8_JkVMRM6(L;u7TJy+sB z2^BZ&OhQ{}=vu*?O$d4JDw5bmL&w4fFZXu!PM5f!qW@X$&G*g}=+?=E7T^XTmiOfy znP;c>yg>UP?n-Y7A>{dE!Q4kfj~>Z%%e*%wPSwK-?{@;Jdf3lM>9y5NP~{C{o)a`QRG=+t zHkY`k1e#bA3iP2sTh?qL(9z9IH@&7P(Ag5VbxpfKMS-@hnJCaQ(SjXnCJ8iL(#@`! zEYM2=&9B)~ptq%UEU1|x&{h(+N6l1$ZW3tEnrQ;PESO7crVH3&Zy}SXnTRq zuGvgLW~M-QNV>(TNvN zrCz^D2>Q87;(l3kp~NXW@h?D0$mO?)U+z_EZV(6uIRSlKbCaa|wzQ*~#H~(Tt%hC@ z%(}$wf~i_ued10j;i(gt%OF6M{P$X^OMc>Bfg0x$DkSa`=ykN|#a?sbeu37&zQCd+ z9*{iOA19iecu?|u|8V9R5(35N3rAZd{wUBkI8%S6H&H{ciA9;Ep`VGhnG1-t`~;SE zvA2M6XgNd2G0!E5KS?fEp3PkLN+c63Vc{->mJtHxU1Ev$*U$=~<-kO(#2wbnTn#qd^Oh)RZGyd% zlJ1R(%O&nkobe>4f}YpV6%zNRhOU%!N`f~gt`bPe#Xw3f22zw6NKr4C0~K_mKo4l>CV}2R zK*ilG(Dpb0!_sdN=x@68TLs!tW8Nmv4>c{f3v@o-^I^I>1o}3PT@bocpw~5Ymq1C8 z;BAS!1sbNIdj#55=dwhVB>Wtp%#Q2L$2)L6-iYKp!ku&_e=c zbe<0jG;4nq_lQ8h#Wl}N_ozVMSgfGO1bP{hD#m?Upv(7A(BlHVqvi4$fu`vaJ}c0Z zn)fFJ8m;3#C(w6vc~1&-nT9?u(5;%krvzHA>){Im-QKB6e_EhlYg)c2(D7QH&j|FM zjC*cNJS))My57Ge&|fs>a{^tfd3au+f9#`5__9E!YI%M|pk*5Rsz9dRzZOgPLM+|a z1$sc2@S;FNwVr)LpffeM-xO#UU1Q%8=v57UTOd>3cLcge)A^D>S8C{Gf!@XuBG5_=truv4hJGN>lN$P=KsRaVM`CT%SopTYkEKnQi?mC( zCw}5UcO-u4KzAnIbJE?F_?rXWoA|o}-Jke}1AQ&=PY3#D;$IH*i$ujK;Wvqo6YS&u znq+PMHjz!z+9=9?m&hd>VSX9)B&fi_Q`El@`C+#-3NK+^;&CNB`^K!Mtm z7YU?lWn%IYf$+vK@|>K!OduusDak7wZl@-%a_F3%yjn0-c{7r?38c!~DtU)Ms)VhR zcL}6Q*d}?8K);akI+FJagzulB^lg*(J0;9aJ}7ZY65Ay|Cy?TOhvZWNDOvBBd|DtS z>z$I%2&AMtEBPgXPL%RyC!ZJS4uR$*zakLc??&l6C%-1p_l1^Sl3y1n5b4fMenTK7 zmwCx=J9N%ZzT`l=C4VBAs`LfPUkap3Uzq%LlD+RM(rXg+I70O1^SVUH9C{;2z0L4>(1o60!8m=ENrA4{5=;qnrSx2#$+SSf(djY*9iZcC1$sw%gwAB0K=r!3 zdVy+n30Z+&)Fm_s^gW#}Cy*MkbSCoxsS!&j&Y+TqNxHm20?pOXV1YK%b>s`Qt%d@D z#%Zbx0_~uoAp$+2p`il3q@gB(j@3}JKo@9em_Unl2`vJ3$=IedIb5LcX=sFs)0iU# zxv|Y3 zP=nUi2?8~0ZQWd;2^tCodR0bboyjc(`cOkffyU_CY!|4g<0c9;TSJpnoUYr+0?pFU zmI4jY&=i4A*3eXe_R-KZfof#5-I<&&&?}nG83Jwpf7pBP_^67v|9j?~4cRmZC7}g& z(?~W6CDQvs0t5u57X@8N=*0kmgqn?^DP15UMVF$0f}#>Zf*K?=K?OlXL|p_C6%fCm zBBK7T>vJZD&6hhq-}`qz&-2&K>&1KLJ#)>RYvz>QY)*DnE=^%!YR#I#;*>Rq<*M_c z1+2b023x|`sWoc_8?GW-!@Mf84Q!mUwy<=y^>(mbYOUMD`m3!wVFT5=bbx8nX5>YRptvjvBKQY^U0KXV`bDUl-URWofWS)E2tJ{M1#W8!S)d@*pftjoBS` zMs2+Z?0aPo!D^{7ABJsH*PfoR>dJb-2CFf9!xB|nAJ}`!`oextM{+;d71h=s_JTU& z2Eg7|`+Xp6g4$z)V0YCy_6Y2b+WMogMrvIK!&WF8V)Rq9Er0stj1^^U-iv=`+^|Sm`s@NLZNK-Y8gx%5yYqhsxZT18HPd6Yc?o1mU8GGTL-O@wt+qfCMgP&OGhURjpWPuUch zR7ciSSeUYGSn0D&4s3&(?KIfa%BI66sD3kGrLP2L!dj|xa~905Y&Ps6HHTbSLuGE* z9d+#H!K$gYCt-i6V<{h2Rb7SWz$&RVn+wZP$ICoe=`k@M)>a+63t$Cm4o|^eQ}(nG zsb;$n)=$|YSdPkbF|50~UN3>Yi=Vu^>q}vi)cLRswp-=79ClpUGq7)zt$^K8wi0$g zZEqE9x;p9#U=J&M7Pelk*=ksZ%IrBV*TOET)m>+)C)PK8Uqp(%O%966 zqH=?)RGw@5mN>z71w2T6!M37KRdFD^piX~xaGUoknpiTO?#GZOW)h^6tnD!oMYbpn}rlKH-sxrWLW#GkXj zrQhVeH4@Kg_;AG3M*Ta8nMLIaBASjy`VDzY<{Pz`v%&l8ug(6F;xA957m4F`60LzeS4$+2}Eu|-w4F-LOBgF?NDS}(aVk2_YnUS^51}(Q)s=35l&(2 z6Tzo3LRD=2M?_|$-h=VOG4e}@2|!E{xCN1M7(W6r2Qcz>Yw|-^*EV8=+UT_y)Dd|B zqYcE!hfs43y$TS&9rcy50vcxbA^N_A%y*;j!>B1l-xBnCmwJ`G=BJ1KMEm{I5ax-B z%wp7xB~}nm4!=b_8TUJJNd!M@7&SBQt66YgO-ejpE4~>2*T41c9L@ERKWgiPmaT@>gW^FkzD znN>{3dUPEY>pj7+iLpRRTcZWq?p2|fdnESf^``nFQbFqJOYj>rX5nZ|yw@u>6U7&A< z#w?7OqM<7&Cb!$Y40mCUzB3K9^QUW@i0BYPQ9|q%4lY#PkDC=Q7LM?C_`kqAnQj}i?YlCx8{{;9W z*dO)JVzhsu9ESSKs7Xcn3##{hg;sj3w(@_JGq*B_2QWVYuY;8XxuyrogTPxAxn@Tt zW^NF(BRDsN%LA)0=c1-XFqbn!nFkTy35-I_i7>8DL9fw>IgMVksjRM<;<*GD?Hz;9 z22fe;g~dU`sqZ@>Om8J-G5C4ta5EmgRJ;rwLow}xnN?7JGlfF|G@s(1tDJAHz@)GRRMRY!86V7aRb(zhxnCtN=La%x zg1-cDxgK~Eeb0ki5I-LAYY-WLn2M<1iI_|(m#+NVl^4@EPlqxeM!9~a#Xhaipq1IK zGSgP+8Cs36llVM(vmvkBv!j?da;cZNlE|%FNARoSf6d~U--%`CUZv8rG)~iS=81~T z$AX?Ux7Z?R9n}mAW%i`9@7^@VDLdMUiW?}hemHX*%4xw|u0u7YbIcBXiE6F|GXFyP z5wLk>)CVy?tH^YtCb0^aS5STF2#teZp_*+KnO_Go+lMiGhrWUsJ`xsG-bpo2fR6`r zIRoWdL0oQJg&9?m*_l{D^s(`E`1=@s4jq`w3>wcz+Ec@MJ*(1B!Sq~Km-%rF^WEVz zBQa?-myN!E&El(f-6xrLraC)LRVw5yhBAK(Vg3n@599J|Wxzm_l`As#O)= z)aN7o21% zu>S7!Nz7~YnHMm^04JAkBc=weHf^y1b7dy88sb-BwEZbua|Dq;WpH^7w&;&u#yAVm zD-JQ$(>Z1jwtKlbm+znHPDC2>jmJ!bzy+9>F&E#NPC-7#Y8bONa(kg3k8iAuF}rnG zt66DW|MNuVqY=zWL}MQr*W2>S6-52O(ra>QOyu~(wBK=k#+^L zrt)?NO<^uaxpp>}Z%$^$p(YQlU!Z;f>R-#^);}@dg{bL)nuDm>g7_gh9J3JYfW9B1 z{t1*{1k*8oBI^If2og148}%5uB}Rxt>tWQ)M>&A%edpNU9fEy*c@}TCXScGgrO#jY zR>QY%+17h&=)0a}V|<!D&MY@W43n*v!y%vYw3WP3*0pRJdZy|3){h#`6vaTCT{ zs6d}~7Sgj5Iu3J^uj5e#gNr9{?;*^bSvYf0TY_Nk53!!8~Rog@wB}_~(+tyYK6SH8(nAJrttU!d047XJm3zhL&*A$DD z@mkjuOO^3j*AmN>@mkjwE0ytD*A>qy)K+(z9?Ro0x@E2 zJzG7oHQKO~EgRY#B8~1|ajeft?9%pMNGL=P8TXV55$!Mz*G0xUP+*NilYpSiK=sVqL z`#fu$t(E9I+ptd}XV_Ycm2Sh1M2@qy7xp~E{%VtNa|$QS$gHDCD`P!j`C@%|itNap zgj*EY>n1;CyJv&PF1K|SLl9}44-bmTumaJCdJ4Ph!>20=$#V4@K@&tX0CH=|-TVHN}y4y}$Pw@rXN~o>S)=S(q`U!8R z)1tRckM>K&Mnb9xw>7QE|ne`QI(Pm`UPYgEti46B~TYr(I?97bQqQCe}S@Dbl*)C@Etn#!DSJGMBcD~KcjL${%8q5S?N(N~4%=bFD9=x5l&@gMj0TCz%6LYD#7}1A z=e9?LWiD^sm=XOdiT;(&=ur`ZHe*JEMG}mU7q4xIc+@Zvnt09T5?RWk6K|5ORrY+V zJGP->tFkv*{YCbcvZxWdeV90)tm%jVvXjcZDWUds@s+Y)Q^LuvmiDVv$DSbu&f`qy zi59h@$=u2|W+c#GGi_D&7TE}KLfPDL$@Y=rh51Im>dp#cq}UEKj@^;seOQ6m8PLW) zTAWaJ%9>&yBfe7hv$dOjthlP|P(UyHIB^Fy&-ya`oz-}eumD@IerUa88!sMJ_M^3r z94{6rD-IY;k?+8at&bO{U!blpBr_&?3_E1;j?MXHOhWXoI`e8S?2`q_m{FSTe3A; zVvIRt(lwgVFlFD>?;}@#EEy-jnR#tHm+rN}89loCW#Vq4djI*Oaw1Uy=f|N~>t3`^kBMEHXmHm{ljjW%t zHErIAd`_e*^UvKBxkikG&9ffJI6$^u*~&IY$v%P^+gmFxseS{TpGB@0*OV>D{F3Ys zWpN3&B3}>z%Q?>iQ9V5#Kijk1^AY@L*O z#<4x5Y-a-7KxI3|vJF!fUz=^5vLM)0WebwI&8_UKMr=eMYQEP=UNP`Zw~O0GBt75mi`pSVR&r*>^Yp7+G@qwm72#+zo~K_EEnxG+vrP^}?G&M# zIo8<1>!OA--ooo562{NyA4I(&n!$`MyvdzJ=_`RZMSHXvTi7LBMnAEp!O5sXk@X_S z&J$0>-Lw^owaR);lj1G0P1&`K0=Zkft?W<&+i_**=semj9(~CeWq-TRqIQc>%Eq+& zl5D23&r>f&?GY`u7?DT2T#ec*ZY%rHewS?iR-l3|qf46=88 z?4mgBW0%E`rp=4~UIgyJnAGpt=xZX<$8Lxgrg@@oiUB_Mo0w|ap6EZs4%1FVYw{h_ z&PH40dDFg$w#uufU5yTuL2s9C{Z4d68D*L!rm`GrT6j!Nxy-bv7@OQ}TI-k?`H_#s z$!~ouLEbejHKx9d*ju{2o-xUCf@x30w34$;%Z_OycbN8cOhX zib}_PEvBdJW!iz50n%;SnV2DRnQ7-^9+!tr`z>aK{0e4Vg-6RohqSx;H|)c0cDvZ=DfDMw=SWU8{ivrfi7Df=jsQ_scb%VEmCo_aBM zj+|K9Z}QdHxzeqyWzH|L^W;)xaan)G&X>_pJsO_>#eNUb~1Wf9b5Qg${S>xlzl#R580=s{U*Ol=6}G5Y@Aa<)>2ty z)(2!`mF=H=f^5CAysR^1A1l*y&XdU!9>uuMFO&hw_&UE(R)O*BiErvHl5sHOI=@(Q zuhQ2Oi)ACU8Q1wGvZvYa`+7^I+b~hDx>iV&LSf=e$)wZ?*w|%3mvX$+pGLgTjwrq@IIgI(KEd;~z#R#<3gc(=9 z0@)B&AVP9O;#SKR$}Z1h>!7S>x2j|h!{%ALb&H65PPz@FEu4vYPA)SoDsHWO&9ugG zFUZTLg^8EsuP|dzZf>lE7d$|K5}(fe*i@`kdVWcy@|k5!(- zZra|F?Ugm|JU#AR*;CoR>3MPcla`m7VHJ_a#WTve#Sh zj{87vRrW{6o3>-ptE@@4o3`UJ?4&WupVQur`%uOxTORp7S^OtPThERs;y#i|rwrqF z3qO`EmGQfUAImPv4pG|)*;m<@)OJD+Q}$ikcjHdVOl5zyjT9&4Y-L%U@7O+(3zaSE z{1@4C${y-^$977-q-;djzsPne+mUw1c3SRNb};QPvX7P7+Vzp2%Ja$^kH2I4RDQ3l z;skE{Rau*M^y*hyP8;*&oNaO7PRt78Mv;SKe2IK2|&G^eQ0cM>2{Fxc|uJhl? z#%MFn{wuPt(NCOeVvqk`hJMbm^TZELLd8|NM_H5UiSgHD#yO+y?}m-zf06^gFf6Q5 z7=5By_w$Bbbhe7WCC7bf*llMheF|E&uMGQ$+J2KwzBVkWLzwto#(ND5A^Sr{TwpV< zt$)e~UOWoudx)Yig`b)i4R zrhlc+f10)#ZN|Fj+5w}VSVHgKS+o<%TF~zUEZUdKo|!(-Zqa^Fc5^J-ZDo(sJBb$U z$Tz%=d18Iiz<7&x>!M-0ZD4!_jcyh~TgQ=)$6K`<%H|}EA&dCVXuB0TF+Na>xnfv% z`?UCA?Yy$Tr-zD)+MMr=wxe{Fs-*2zwq{(gt+IAlSz@CCSy}r`+4)$uE6QGrIZdB- zGWG{!lz#M+cV%scvgCBOh010`vaMBCC-&XA%Gx$%f5x!wR`wKK=PPR^Fk`P&){ZOV zy;52G)QF_Lk{@41`vGR`m8xa-N>%M9+KjzYO{?}J=UE{3&U`vPOe;|qpS(OiTx)dA zn8RV)O*kQ9qWm&rPcq*XxkX^B3Wx?PuJQWUt4=b zS){$t7NLz*_HM00TODntvU3rIwz}G4WxZMz+HBhM%F^f=!LIF8R_b*hv)?pqXiTVx(~c;6edbMD zymmubi;khfp{>4UM6P%5jZe^a{sNL2IULJlax}9f>ZG9kf2mZZ%~~ zS5~cAA@$2rCR-H9j@le$(JcyX9ko@;a+(#$6zxT2i>Y6V_Lj1D9R)H~JEZKiqtKSB zeWq+OjoC^2PT71Kvy*mP*-2{atXY3I=68kKI%_qREp1pJyJ!w&8ygndx@c{b?VJ96 ze3~{znLGD(d^c^SvN5^6A|KR#SN38fi{nA9!X0A^ljv2@gPL90!}KcXK`l*Lb873Z zeWt88&7r$?MOhP?Uk~lJvbW;dtbZ6|ejHzD>!HHMJeMoDftZP&H z#7ZqyS<;L^$HQ9eT^_|a&U$I}mGN=bOKS$>=eX*Q-r9pO<2dV6<~Zx4^+lU;ob}bR zjDB>SofiGH-;`z4uIuQh)%erMdVF%MqrcYRFT>_0H*gHl9#-a@-O}-hHdxt!*=@6cqoe0>&7tf%9X*e0t(1*w zULajsH)Xla3vDiKu(G}M+H|NkUs;uyG)KDTQMN1kAu<>Jl^H+hv`BC{Mrnseqw+;V~Ap6zbB)RASjdE2aVOf{`)+qI4y z(;BzkX`7+7=MSgCoiZC8GtIU$oeCX!rmgQ%=*TziOzk4aT+=?zD{{;;ZExOA+kDd= zaThrjn09O29Hq&N|D|EbKT8ML} zZHH-#o1AmJYTB{}g^o8&8y=T$+htmpY5BIdOuLv-$FLWFjXoYiPfJ zVA`^_Hyp=IOPchn<3rODXmwAUwxf2w?Tl$l$j+MfvpcznS*sh;JOXO^fIlpK!;tz>diYf19?qL6Jk# zOOGW!B6ZV7G%a#iOzSpgr_Il_24nJV{An}Bxl(0Jk;7`*bZQGQ?Qv=g(npwQaRm{q zPcTiAWgCY3bVBr8WlIuTB!uV-V28w^=BGtP{WL63q>XbXRMZ1>zA_Y8Pvmws{46{wtw=3h>ChB`&#%z;xO9h^vG20})C5(@dxe4|4PRdHi8tM$du9h9T>A`fgah=s@pkw$n?@Hc9rOVaU3@{;4v~y1nj&8Cg5^B>IM}(zSN#Lt&it zmV^%acx5GIDS9@{$hwpMlrqk`lfD7QS-+mpS$`X5WZgwSU>LGa(~rUO#Zk&SO+Q7Cg${aTr}UsPKj?V~hZ3*fBz6`&*wG7Pirs#jIUv+b%!z>L{;(?`LKBdeRf z9>%lXlklLvO<4(95B*KmkI(Rj^@GZIwh!xH!g#jtC-l^Rff=*yrT=XhX4_l$59B=a zg&)nRw_Z)zQkr{jJrc%qU~{Opr~tNRW*gn-sJAx^^XsE`QO5J@qxXav^XsdxgBkPd ztDl7N{EjB{)4xur^lkPX$lz>K3jT_2>3*Ckz_2;+6R zl#ro61vA!VxW2+Ltjh>}Ei9k@TA%(BQQumoZKr9H+TJz{a~P@bSH^P~sUL?Ka~P%9 z2;r=aIgHYKz<3TnCXChxDJvlxtEa<^IgHn*DC0Sd*B8Th4!ow24vT2g6mSNcMGxR8Byx(W&Nibu- z&(w2Z#(tlv?||`s4@sP*zpbojE604j zl3_Rl=IGU7`Qj4ozd1VH++ogPj-I62LeSQ-Oj`%l_A%NXD$~|qwKYXsdYQJdsx2CA zIc3`1s_ix%XLIz$W}74{Fbpd=SASj^ui#vLE6iBIdHOAwv4Zn-M-`qCuVCH8`Fc}j zC1g+O?P10>WTDG`n-!6Z z%r;4ps|>@QUaGHG#(R3Hz7=Nd>1FyYn6amq>5gipd%9uba=odtlH7)gEA;j-V^6Qr zdnw~Ry-FVq<2~Inu|Us*8GHI!eW78rr=?h}uQUvqJ*Tfz#+f~*Z-p6|tP zjy9 z4?A8qZIZpnL0{yhw$P_ukz>1Qqw9U+*kM}l_(I2ProBi%zrSwUEP5a14b#@N%eTF0 z+IOkF5(`cHJ9UBMZPU(Xo^$Lo?c>xziN&VvNGft1FzrxMzOBTxm2s}bL#92S?n*pr z+DF6kZTvZ}#+vPzoo}Nrs!}$kPQLAgX-V|1*e9mFM0VP=zlYL0E~Ys;f8sc6+8fhH zCeoKxsWF$^vl72GZ4~{T)OFL2cHL>aVcM3~`L>@;`?;el@uq1B-CT*kns$@k5&Ye> z`H{&9cTDR{@3H)88o!q(ETy^ddwJ5deblC#c8c08rhVDA$Wg(xTW#}g{-%xTeAp3S z+LN7+I|5Bh?RwY|Y}(+i#~mT2ZAv@rsAO7E+HpsyX<>APR58sl{;;E}X_g5^j%ubo zKu1rQXOwGOfa> zyu=vOT6HUQB$@VXN};2HX|GY9jZ8a4xg?u*w8`Sc#-@3jEO4|iEn#|Jc*r5``o!Lv72evoeLcOOe>+bfu==u@Fb?2rjv~_Z4SLFJ>IkibSzCUZNc{&)y+`NmV$+t5qxZH=i)=*iZJYK=S<6`E8iN^R?ocQSZi9{WSOwuw0CUzwhg9b&0OHvWZJx$ zg^rg@`z5x}vDLKI5&5>4O>@&b@s{uI4OoyklCs5djIsrp>1#>!4|R)B?v5)4Gx!Gi^Z30>?+DZJC*GJ84>j zjtd;8Ok3eTn0UrC{yoW;rk$@_==jRCz4T7L*ED{v`o=VVKDuNYKXZL+8b5PgHZ7gn zzBBFJ=px4z(|(|5r|(S*Y?g2P!L;9+7dft)R`$I+isdRxqO6+L8jHGR|z4erO_NJnU+BFt8ChK`kh7< z(+Vddv<;YG_*HI7?EpY3))A9S@k+H@w)<#I)`ciyh5PJ3)K8m1&n~ zPq#MhF*-upnl`0*zO9{UJL#2&(=;nxLsCq8Il59(s%Z@pB9eNTHZe6ZX`pF`>Dl*j z)5eAuIb5cV7**&PN=AQoJL?`V*QT3=#KH{ze#Ofl}G3nz^k`~=sSYZYSfe$ zd4Ij1_z~mWTX`wExOrsW3sP)MxVM#S&Ht(XPps8@Lpj5DTK-ey=|o<)ts^+HX(~r@ zjTEa|Gr3->`s`XuvQas#NMsX^_MZi04JCKMohh2F2^-suFYi9pG6Zl(#n)(<-0P*if!>ZckZ>8 z#xJ08O3QJymC~{;{a$$wa=VQEZshhNW_oWlDVC*iChiDkdB+T&N9DH;#u=IPgdec-(Jylh0*AfWckQ^1IONM zqDG%E%QakYQT5kwv>Q2>H*4bxaGi3~MW~zm4rs<(>`X_aCU)W2Fv$B$qtB`2$R$`w zqh`i^H4E;m;p>l1pHs=>`}XCnlpT$?rPJqBat_A$SzWj$k65;EdG#4~j(?kI5h=8K ze)Kt&{JpUqTJiVn`fmLy_NK9wkm=kjidc3lFGSwUq+>mfSw}1z^Ilu7pFw+}H0SGe zx#l>ns)asxl5;pp=NfRWattKkUo9U-K}zsFps<4~thko@-<-Nx}S1NrCEn)uNtNOC?mJ8=F* zbbYYWCrI+Qz50&Ny`-2+E3b)Mj64D(Z=>sgAAN%4zt4!TIXZoMBX7NED97Z|%9PG} z7qx1bY3aNIG4e(nOT5?0u7k1Ng&6Z;+PX!2L}fpbMP>es$baAajU#yLxidJDTm6Kj z@k_UE9RJ4bjFA^nj4pEMSh9#8X>I-J6C^o)71j8Q;8r|$KF&4z1WArG`ubjlj!xy6 zF;kcuQBKU}a$pv-BWjkT^(WL%n9TJhXswL$OW;V6V_NcD{Rz}TrupLHD!wAhW{yEgFM!7EP%e#h5X~?rSo*(&W(S-5*!euG0()yIr zcQy9V9yhLR#;d8)GGFm@`s_ts=TRvfQ`x~|zJ%kMzt!6!iktBIzmNUZoA#qWefA

oRp=+rWJ!sErq9tAVrLd$k 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%0A&}nj{kj=s^GgIsVKh!uO`wC{8%w+QH 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 HISu?Dx5LJZ literal 0 HcmV?d00001 diff --git a/bin/Release/net10.0/PumpkinApi.pdb b/bin/Release/net10.0/PumpkinApi.pdb new file mode 100644 index 0000000000000000000000000000000000000000..69b617a83df39c8313273213e0f99f6e5003a618 GIT binary patch literal 64788 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 literal 0 HcmV?d00001 diff --git a/generate.sh b/generate.sh new file mode 100755 index 0000000..5386d43 --- /dev/null +++ b/generate.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Ensure the submodule is initialized +git submodule update --init + +# Generate the C# bindings +mkdir -p src/gen +wit-bindgen csharp --runtime native-aot --out-dir src/gen -w plugin wit/repo/pumpkin-plugin-wit/v0.1 + +echo "Bindings generated successfully in src/gen/" diff --git a/obj/PumpkinApi.csproj.nuget.dgspec.json b/obj/PumpkinApi.csproj.nuget.dgspec.json new file mode 100644 index 0000000..3bdbff0 --- /dev/null +++ b/obj/PumpkinApi.csproj.nuget.dgspec.json @@ -0,0 +1,349 @@ +{ + "format": 1, + "restore": { + "/home/alex/Documents/Development/Rust/pumpkin-api-cs/PumpkinApi.csproj": {} + }, + "projects": { + "/home/alex/Documents/Development/Rust/pumpkin-api-cs/PumpkinApi.csproj": { + "version": "0.1.0-dev", + "restore": { + "projectUniqueName": "/home/alex/Documents/Development/Rust/pumpkin-api-cs/PumpkinApi.csproj", + "projectName": "PumpkinMC.PumpkinApi", + "projectPath": "/home/alex/Documents/Development/Rust/pumpkin-api-cs/PumpkinApi.csproj", + "packagesPath": "/home/alex/.nuget/packages/", + "outputPath": "/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/alex/Documents/Development/Rust/pumpkin-api-cs/NuGet.Config", + "/home/alex/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net10.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {}, + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-experimental/nuget/v3/index.json": {} + }, + "frameworks": { + "net10.0": { + "targetAlias": "net10.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net10.0": { + "targetAlias": "net10.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[10.0.4, 10.0.4]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/10.0.104/PortableRuntimeIdentifierGraph.json", + "packagesToPrune": { + "Microsoft.CSharp": "(,4.7.32767]", + "Microsoft.VisualBasic": "(,10.4.32767]", + "Microsoft.Win32.Primitives": "(,4.3.32767]", + "Microsoft.Win32.Registry": "(,5.0.32767]", + "runtime.any.System.Collections": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.any.System.Globalization": "(,4.3.32767]", + "runtime.any.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.any.System.IO": "(,4.3.32767]", + "runtime.any.System.Reflection": "(,4.3.32767]", + "runtime.any.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.any.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.any.System.Runtime": "(,4.3.32767]", + "runtime.any.System.Runtime.Handles": "(,4.3.32767]", + "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.any.System.Text.Encoding": "(,4.3.32767]", + "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.any.System.Threading.Tasks": "(,4.3.32767]", + "runtime.any.System.Threading.Timer": "(,4.3.32767]", + "runtime.aot.System.Collections": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.aot.System.Globalization": "(,4.3.32767]", + "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.aot.System.IO": "(,4.3.32767]", + "runtime.aot.System.Reflection": "(,4.3.32767]", + "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.aot.System.Runtime": "(,4.3.32767]", + "runtime.aot.System.Runtime.Handles": "(,4.3.32767]", + "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.aot.System.Threading.Tasks": "(,4.3.32767]", + "runtime.aot.System.Threading.Timer": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.unix.System.Console": "(,4.3.32767]", + "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.unix.System.IO.FileSystem": "(,4.3.32767]", + "runtime.unix.System.Net.Primitives": "(,4.3.32767]", + "runtime.unix.System.Net.Sockets": "(,4.3.32767]", + "runtime.unix.System.Private.Uri": "(,4.3.32767]", + "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.win.System.Console": "(,4.3.32767]", + "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.win.System.IO.FileSystem": "(,4.3.32767]", + "runtime.win.System.Net.Primitives": "(,4.3.32767]", + "runtime.win.System.Net.Sockets": "(,4.3.32767]", + "runtime.win.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7.System.Private.Uri": "(,4.3.32767]", + "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]", + "System.AppContext": "(,4.3.32767]", + "System.Buffers": "(,5.0.32767]", + "System.Collections": "(,4.3.32767]", + "System.Collections.Concurrent": "(,4.3.32767]", + "System.Collections.Immutable": "(,10.0.32767]", + "System.Collections.NonGeneric": "(,4.3.32767]", + "System.Collections.Specialized": "(,4.3.32767]", + "System.ComponentModel": "(,4.3.32767]", + "System.ComponentModel.Annotations": "(,4.3.32767]", + "System.ComponentModel.EventBasedAsync": "(,4.3.32767]", + "System.ComponentModel.Primitives": "(,4.3.32767]", + "System.ComponentModel.TypeConverter": "(,4.3.32767]", + "System.Console": "(,4.3.32767]", + "System.Data.Common": "(,4.3.32767]", + "System.Data.DataSetExtensions": "(,4.4.32767]", + "System.Diagnostics.Contracts": "(,4.3.32767]", + "System.Diagnostics.Debug": "(,4.3.32767]", + "System.Diagnostics.DiagnosticSource": "(,10.0.32767]", + "System.Diagnostics.FileVersionInfo": "(,4.3.32767]", + "System.Diagnostics.Process": "(,4.3.32767]", + "System.Diagnostics.StackTrace": "(,4.3.32767]", + "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]", + "System.Diagnostics.Tools": "(,4.3.32767]", + "System.Diagnostics.TraceSource": "(,4.3.32767]", + "System.Diagnostics.Tracing": "(,4.3.32767]", + "System.Drawing.Primitives": "(,4.3.32767]", + "System.Dynamic.Runtime": "(,4.3.32767]", + "System.Formats.Asn1": "(,10.0.32767]", + "System.Formats.Tar": "(,10.0.32767]", + "System.Globalization": "(,4.3.32767]", + "System.Globalization.Calendars": "(,4.3.32767]", + "System.Globalization.Extensions": "(,4.3.32767]", + "System.IO": "(,4.3.32767]", + "System.IO.Compression": "(,4.3.32767]", + "System.IO.Compression.ZipFile": "(,4.3.32767]", + "System.IO.FileSystem": "(,4.3.32767]", + "System.IO.FileSystem.AccessControl": "(,4.4.32767]", + "System.IO.FileSystem.DriveInfo": "(,4.3.32767]", + "System.IO.FileSystem.Primitives": "(,4.3.32767]", + "System.IO.FileSystem.Watcher": "(,4.3.32767]", + "System.IO.IsolatedStorage": "(,4.3.32767]", + "System.IO.MemoryMappedFiles": "(,4.3.32767]", + "System.IO.Pipelines": "(,10.0.32767]", + "System.IO.Pipes": "(,4.3.32767]", + "System.IO.Pipes.AccessControl": "(,5.0.32767]", + "System.IO.UnmanagedMemoryStream": "(,4.3.32767]", + "System.Linq": "(,4.3.32767]", + "System.Linq.AsyncEnumerable": "(,10.0.32767]", + "System.Linq.Expressions": "(,4.3.32767]", + "System.Linq.Parallel": "(,4.3.32767]", + "System.Linq.Queryable": "(,4.3.32767]", + "System.Memory": "(,5.0.32767]", + "System.Net.Http": "(,4.3.32767]", + "System.Net.Http.Json": "(,10.0.32767]", + "System.Net.NameResolution": "(,4.3.32767]", + "System.Net.NetworkInformation": "(,4.3.32767]", + "System.Net.Ping": "(,4.3.32767]", + "System.Net.Primitives": "(,4.3.32767]", + "System.Net.Requests": "(,4.3.32767]", + "System.Net.Security": "(,4.3.32767]", + "System.Net.ServerSentEvents": "(,10.0.32767]", + "System.Net.Sockets": "(,4.3.32767]", + "System.Net.WebHeaderCollection": "(,4.3.32767]", + "System.Net.WebSockets": "(,4.3.32767]", + "System.Net.WebSockets.Client": "(,4.3.32767]", + "System.Numerics.Vectors": "(,5.0.32767]", + "System.ObjectModel": "(,4.3.32767]", + "System.Private.DataContractSerialization": "(,4.3.32767]", + "System.Private.Uri": "(,4.3.32767]", + "System.Reflection": "(,4.3.32767]", + "System.Reflection.DispatchProxy": "(,6.0.32767]", + "System.Reflection.Emit": "(,4.7.32767]", + "System.Reflection.Emit.ILGeneration": "(,4.7.32767]", + "System.Reflection.Emit.Lightweight": "(,4.7.32767]", + "System.Reflection.Extensions": "(,4.3.32767]", + "System.Reflection.Metadata": "(,10.0.32767]", + "System.Reflection.Primitives": "(,4.3.32767]", + "System.Reflection.TypeExtensions": "(,4.3.32767]", + "System.Resources.Reader": "(,4.3.32767]", + "System.Resources.ResourceManager": "(,4.3.32767]", + "System.Resources.Writer": "(,4.3.32767]", + "System.Runtime": "(,4.3.32767]", + "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]", + "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]", + "System.Runtime.Extensions": "(,4.3.32767]", + "System.Runtime.Handles": "(,4.3.32767]", + "System.Runtime.InteropServices": "(,4.3.32767]", + "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]", + "System.Runtime.Loader": "(,4.3.32767]", + "System.Runtime.Numerics": "(,4.3.32767]", + "System.Runtime.Serialization.Formatters": "(,4.3.32767]", + "System.Runtime.Serialization.Json": "(,4.3.32767]", + "System.Runtime.Serialization.Primitives": "(,4.3.32767]", + "System.Runtime.Serialization.Xml": "(,4.3.32767]", + "System.Security.AccessControl": "(,6.0.32767]", + "System.Security.Claims": "(,4.3.32767]", + "System.Security.Cryptography.Algorithms": "(,4.3.32767]", + "System.Security.Cryptography.Cng": "(,5.0.32767]", + "System.Security.Cryptography.Csp": "(,4.3.32767]", + "System.Security.Cryptography.Encoding": "(,4.3.32767]", + "System.Security.Cryptography.OpenSsl": "(,5.0.32767]", + "System.Security.Cryptography.Primitives": "(,4.3.32767]", + "System.Security.Cryptography.X509Certificates": "(,4.3.32767]", + "System.Security.Principal": "(,4.3.32767]", + "System.Security.Principal.Windows": "(,5.0.32767]", + "System.Security.SecureString": "(,4.3.32767]", + "System.Text.Encoding": "(,4.3.32767]", + "System.Text.Encoding.CodePages": "(,10.0.32767]", + "System.Text.Encoding.Extensions": "(,4.3.32767]", + "System.Text.Encodings.Web": "(,10.0.32767]", + "System.Text.Json": "(,10.0.32767]", + "System.Text.RegularExpressions": "(,4.3.32767]", + "System.Threading": "(,4.3.32767]", + "System.Threading.AccessControl": "(,10.0.32767]", + "System.Threading.Channels": "(,10.0.32767]", + "System.Threading.Overlapped": "(,4.3.32767]", + "System.Threading.Tasks": "(,4.3.32767]", + "System.Threading.Tasks.Dataflow": "(,10.0.32767]", + "System.Threading.Tasks.Extensions": "(,5.0.32767]", + "System.Threading.Tasks.Parallel": "(,4.3.32767]", + "System.Threading.Thread": "(,4.3.32767]", + "System.Threading.ThreadPool": "(,4.3.32767]", + "System.Threading.Timer": "(,4.3.32767]", + "System.ValueTuple": "(,4.5.32767]", + "System.Xml.ReaderWriter": "(,4.3.32767]", + "System.Xml.XDocument": "(,4.3.32767]", + "System.Xml.XmlDocument": "(,4.3.32767]", + "System.Xml.XmlSerializer": "(,4.3.32767]", + "System.Xml.XPath": "(,4.3.32767]", + "System.Xml.XPath.XDocument": "(,5.0.32767]" + } + } + } + } + } +} \ No newline at end of file diff --git a/obj/PumpkinApi.csproj.nuget.g.props b/obj/PumpkinApi.csproj.nuget.g.props new file mode 100644 index 0000000..1c6c18f --- /dev/null +++ b/obj/PumpkinApi.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/alex/.nuget/packages/ + /home/alex/.nuget/packages/ + PackageReference + 7.0.0 + + + + + \ No newline at end of file diff --git a/obj/PumpkinApi.csproj.nuget.g.targets b/obj/PumpkinApi.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/obj/PumpkinApi.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/obj/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nuspec b/obj/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nuspec new file mode 100644 index 0000000..bc9f3dd --- /dev/null +++ b/obj/Release/PumpkinMC.PumpkinApi.0.1.0-dev.nuspec @@ -0,0 +1,20 @@ + + + + PumpkinMC.PumpkinApi + 0.1.0-dev + PumpkinMC Contributors + GPL-3.0-or-later + https://licenses.nuget.org/GPL-3.0-or-later + README.md + Pumpkin server plugin API bindings for C# (.NET) + + + + + + + + + + \ No newline at end of file diff --git a/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs b/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs new file mode 100644 index 0000000..925b135 --- /dev/null +++ b/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] diff --git a/obj/Release/net10.0/PumpkinApi.AssemblyInfo.cs b/obj/Release/net10.0/PumpkinApi.AssemblyInfo.cs new file mode 100644 index 0000000..2f18405 --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.AssemblyInfo.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("PumpkinMC Contributors")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyDescriptionAttribute("Pumpkin server plugin API bindings for C# (.NET)")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("0.1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.1.0-dev")] +[assembly: System.Reflection.AssemblyProductAttribute("PumpkinApi")] +[assembly: System.Reflection.AssemblyTitleAttribute("PumpkinApi")] +[assembly: System.Reflection.AssemblyVersionAttribute("0.1.0.0")] +[assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/Pumpkin-MC/pumpkin-api-cs")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/obj/Release/net10.0/PumpkinApi.AssemblyInfoInputs.cache b/obj/Release/net10.0/PumpkinApi.AssemblyInfoInputs.cache new file mode 100644 index 0000000..f5a4b74 --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +200d64c1b82f7a6396630e55162364d9d715146da5ee00ace6806cd51a4441a9 diff --git a/obj/Release/net10.0/PumpkinApi.GeneratedMSBuildEditorConfig.editorconfig b/obj/Release/net10.0/PumpkinApi.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..54cbc2c --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,17 @@ +is_global = true +build_property.TargetFramework = net10.0 +build_property.TargetFrameworkIdentifier = .NETCoreApp +build_property.TargetFrameworkVersion = v10.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = PumpkinApi +build_property.ProjectDir = /home/alex/Documents/Development/Rust/pumpkin-api-cs/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 10.0 +build_property.EnableCodeStyleSeverity = diff --git a/obj/Release/net10.0/PumpkinApi.GlobalUsings.g.cs b/obj/Release/net10.0/PumpkinApi.GlobalUsings.g.cs new file mode 100644 index 0000000..d12bcbc --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using System; +global using System.Collections.Generic; +global using System.IO; +global using System.Linq; +global using System.Net.Http; +global using System.Threading; +global using System.Threading.Tasks; diff --git a/obj/Release/net10.0/PumpkinApi.assets.cache b/obj/Release/net10.0/PumpkinApi.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..601fc4085034f6b9c533d03023d2dbc781251355 GIT binary patch literal 148 zcmWIWc6a1qU|=A>5W>*bZErrWhQ literal 0 HcmV?d00001 diff --git a/obj/Release/net10.0/PumpkinApi.csproj.CoreCompileInputs.cache b/obj/Release/net10.0/PumpkinApi.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..7bbc2c7 --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +eabf36b0f657105612c32ab100916f90b2229089c54ecb8d86432c8011e96e8d diff --git a/obj/Release/net10.0/PumpkinApi.csproj.FileListAbsolute.txt b/obj/Release/net10.0/PumpkinApi.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..ea96326 --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.csproj.FileListAbsolute.txt @@ -0,0 +1,12 @@ +/home/alex/Documents/Development/Rust/pumpkin-api-cs/bin/Release/net10.0/PumpkinApi.deps.json +/home/alex/Documents/Development/Rust/pumpkin-api-cs/bin/Release/net10.0/PumpkinApi.dll +/home/alex/Documents/Development/Rust/pumpkin-api-cs/bin/Release/net10.0/PumpkinApi.pdb +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.GeneratedMSBuildEditorConfig.editorconfig +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.AssemblyInfoInputs.cache +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.AssemblyInfo.cs +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.csproj.CoreCompileInputs.cache +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.sourcelink.json +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.dll +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/refint/PumpkinApi.dll +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/PumpkinApi.pdb +/home/alex/Documents/Development/Rust/pumpkin-api-cs/obj/Release/net10.0/ref/PumpkinApi.dll diff --git a/obj/Release/net10.0/PumpkinApi.dll b/obj/Release/net10.0/PumpkinApi.dll new file mode 100644 index 0000000000000000000000000000000000000000..383f1c1e2a13232a8e263cf59d7bd478bf403713 GIT binary patch literal 169472 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

oRp=+rWJ!sErq9tAVrLd$k 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%0A&}nj{kj=s^GgIsVKh!uO`wC{8%w+QH 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 HISu?Dx5LJZ literal 0 HcmV?d00001 diff --git a/obj/Release/net10.0/PumpkinApi.pdb b/obj/Release/net10.0/PumpkinApi.pdb new file mode 100644 index 0000000000000000000000000000000000000000..69b617a83df39c8313273213e0f99f6e5003a618 GIT binary patch literal 64788 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 literal 0 HcmV?d00001 diff --git a/obj/Release/net10.0/PumpkinApi.sourcelink.json b/obj/Release/net10.0/PumpkinApi.sourcelink.json new file mode 100644 index 0000000..c3110f6 --- /dev/null +++ b/obj/Release/net10.0/PumpkinApi.sourcelink.json @@ -0,0 +1 @@ +{"documents":{"/home/alex/Documents/Development/Rust/pumpkin-api-cs/wit/repo/*":"https://raw.githubusercontent.com/Pumpkin-MC/Pumpkin/6f2c3cd5e37a3c39e1e5f27c1300d31bd97fe936/*"}} \ No newline at end of file diff --git a/obj/Release/net10.0/ref/PumpkinApi.dll b/obj/Release/net10.0/ref/PumpkinApi.dll new file mode 100644 index 0000000000000000000000000000000000000000..99db318812de286bfd8a11cc0ab0f4711ce7ab83 GIT binary patch literal 89088 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 { "Author" }, + "A Pumpkin plugin written in C#", + new List() + ); + } + } +} diff --git a/src/gen/Plugin.cs b/src/gen/Plugin.cs new file mode 100644 index 0000000..e13838c --- /dev/null +++ b/src/gen/Plugin.cs @@ -0,0 +1,1892 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; +using System.Runtime.InteropServices; +using System.Collections.Concurrent; +using System.Threading; +using System.Threading.Tasks; + +namespace PluginWorld { + + public interface IPluginWorldImports{ + + } + + public interface IPluginWorldExports{ + static abstract void InitPlugin(); + + static abstract void OnLoad(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context context); + + static abstract void OnUnload(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context context); + + static abstract global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event HandleEvent(uint eventId, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server server, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event @event); + + static abstract int HandleCommand(uint commandId, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSender sender, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server server, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.ConsumedArgs args); + + static abstract void HandleTask(uint handlerId, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server server); + + } + + public readonly struct None {} + + [global::System.Runtime.InteropServices.StructLayoutAttribute(global::System.Runtime.InteropServices.LayoutKind.Sequential)] + public readonly struct Result + { + public readonly byte Tag; + private readonly object value; + + private Result(byte tag, object value) + { + Tag = tag; + this.value = value; + } + + public static Result Ok(TOk ok) + { + return new Result(Tags.Ok, ok!); + } + + public static Result Err(TErr err) + { + return new Result(Tags.Err, err!); + } + + public bool IsOk => Tag == Tags.Ok; + public bool IsErr => Tag == Tags.Err; + + public TOk AsOk + { + get + { + if (Tag == Tags.Ok) + { + return (TOk)value; + } + + throw new global::System.ArgumentException("expected k, got " + Tag); + } + } + + public TErr AsErr + { + get + { + if (Tag == Tags.Err) + { + return (TErr)value; + } + + throw new global::System.ArgumentException("expected Err, got " + Tag); + } + } + + public class Tags + { + public const byte Ok = 0; + public const byte Err = 1; + } + } + + public class Option { + private static Option none = new (); + + private Option() + { + HasValue = false; + } + + public Option(T v) + { + HasValue = true; + Value = v; + } + + public static Option None => none; + + [global::System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, nameof(Value))] + public bool HasValue { get; } + + public T? Value { get; } + } + + public class WitException: global::System.Exception { + public object Value { get; } + public uint NestingLevel { get; } + + public WitException(object v, uint level) + { + Value = v; + NestingLevel = level; + } + } + + public class WitException: WitException { + public T TypedValue { get { return (T)this.Value;} } + + public WitException(T v, uint level) : base(v!, level) + { + } + } + + public static class InteropReturnArea + { + [global::System.Runtime.CompilerServices.InlineArrayAttribute(9)] + [global::System.Runtime.InteropServices.StructLayoutAttribute(global::System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)] + internal struct ReturnArea + { + private ulong buffer; + + internal unsafe nint AddressOfReturnArea() + { + return (nint)global::System.Runtime.CompilerServices.Unsafe.AsPointer(ref buffer); + } + } + + [global::System.ThreadStaticAttribute] + [global::System.Runtime.CompilerServices.FixedAddressValueTypeAttribute] + internal static ReturnArea returnArea = default; + } + + public static class MemoryHelper + { + public static unsafe void* AlignStackPtr(void* stackAddress, uint alignment) + { + return (void*)(((nint)stackAddress) + ((int)alignment - 1) & -(int)alignment); + } + } + + namespace Imports { + public partial class PluginWorldImportsInterop : IPluginWorldImports + {} + } + namespace Exports { + public static class PluginWorldInterop + { + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "init-plugin")] + public static unsafe void wasmExportInitPlugin() { + + PluginWorldExportsImpl.InitPlugin(); + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "on-load")] + public static unsafe nint wasmExportOnLoad(int p0) { + + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context.THandle(p0)); + Result ret; + + try + { + + PluginWorldExportsImpl.OnLoad((resource)); + ret = Result.Ok(new None()); + } + catch (WitException e) + { + switch (e.NestingLevel) + { + case 0: + { + ret = Result.Err((string) e.Value); + break; + } + + default: throw new global::System.ArgumentException($"invalid nesting level: {e.NestingLevel}"); + } + } + + var ptr = InteropReturnArea.returnArea.AddressOfReturnArea(); + + switch (ret.Tag) { + case 0: { + + *(byte*)(ptr + 0) = (byte)0; + + break; + } + case 1: { + string payload2 = ret.AsErr; + *(byte*)(ptr + 0) = (byte)1; + + var stringSpan = global::System.MemoryExtensions.AsSpan(payload2); + var length = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan); + var strPtr = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan, new global::System.Span(strPtr, length)); + + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = length; + new global::System.Span((void*)((byte*)ptr + 4), 1)[0] = (nint)(int)strPtr; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + ret); + } + return ptr; + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "cabi_post_on-load")] + public static unsafe void cabi_post_wasmExportOnLoad(nint p0) { + + switch (new global::System.Span((byte*)p0 + 0, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 4), 1)[0]); + + break; + } + } + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "on-unload")] + public static unsafe nint wasmExportOnUnload(int p0) { + + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.Context.THandle(p0)); + Result ret; + + try + { + + PluginWorldExportsImpl.OnUnload((resource)); + ret = Result.Ok(new None()); + } + catch (WitException e) + { + switch (e.NestingLevel) + { + case 0: + { + ret = Result.Err((string) e.Value); + break; + } + + default: throw new global::System.ArgumentException($"invalid nesting level: {e.NestingLevel}"); + } + } + + var ptr = InteropReturnArea.returnArea.AddressOfReturnArea(); + + switch (ret.Tag) { + case 0: { + + *(byte*)(ptr + 0) = (byte)0; + + break; + } + case 1: { + string payload2 = ret.AsErr; + *(byte*)(ptr + 0) = (byte)1; + + var stringSpan = global::System.MemoryExtensions.AsSpan(payload2); + var length = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan); + var strPtr = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan, new global::System.Span(strPtr, length)); + + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = length; + new global::System.Span((void*)((byte*)ptr + 4), 1)[0] = (nint)(int)strPtr; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + ret); + } + return ptr; + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "cabi_post_on-unload")] + public static unsafe void cabi_post_wasmExportOnUnload(nint p0) { + + switch (new global::System.Span((byte*)p0 + 0, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 4), 1)[0]); + + break; + } + } + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "handle-event")] + public static unsafe nint wasmExportHandleEvent(nint p0) { + + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server.THandle(new global::System.Span((void*)((byte*)p0 + 4), 1)[0])); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event lifted159; + + switch (new global::System.Span((byte*)p0 + 8, 1)[0]) { + case 0: { + var resource0 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + var resource1 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerJoinEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerJoinEventData ( + resource0, resource1, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0))); + break; + } + case 1: { + var resource4 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + var resource5 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerLeaveEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerLeaveEventData ( + resource4, resource5, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0))); + break; + } + case 2: { + var resource8 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + var resource9 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerLoginEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerLoginEventData ( + resource8, resource9, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0))); + break; + } + case 3: { + var resource12 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)p0 + 32), 1)[0]; ++index) { + nint basePtr14 = new global::System.Span((void*)((byte*)p0 + 28), 1)[0] + (index * 4); + var resource15 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)basePtr14 + 0), 1)[0])); + + array.Add(resource15); + } + + if (new global::System.Span((void*)((byte*)p0 + 32), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerChatEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChatEventData ( + resource12, str, array, (new global::System.Span((byte*)p0 + 36, 1)[0] != 0))); + break; + } + case 4: { + var resource18 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str19 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerCommandSendEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerCommandSendEventData ( + resource18, str19, (new global::System.Span((byte*)p0 + 28, 1)[0] != 0))); + break; + } + case 5: { + var resource22 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str23 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerPermissionCheckEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerPermissionCheckEventData ( + resource22, str23, (new global::System.Span((byte*)p0 + 28, 1)[0] != 0))); + break; + } + case 6: { + var resource26 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerMoveEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerMoveEventData ( + resource26, (new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0]), (new global::System.Span((void*)((byte*)p0 + 48), 1)[0], new global::System.Span((void*)((byte*)p0 + 56), 1)[0], new global::System.Span((void*)((byte*)p0 + 64), 1)[0]), (new global::System.Span((byte*)p0 + 72, 1)[0] != 0))); + break; + } + case 7: { + var resource29 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerTeleportEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerTeleportEventData ( + resource29, (new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0]), (new global::System.Span((void*)((byte*)p0 + 48), 1)[0], new global::System.Span((void*)((byte*)p0 + 56), 1)[0], new global::System.Span((void*)((byte*)p0 + 64), 1)[0]), (new global::System.Span((byte*)p0 + 72, 1)[0] != 0))); + break; + } + case 8: { + var resource32 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + var resource33 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + var resource34 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)p0 + 24), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerChangeWorldEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChangeWorldEventData ( + resource32, resource33, resource34, (new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0], new global::System.Span((void*)((byte*)p0 + 48), 1)[0]), new global::System.Span((void*)((byte*)p0 + 56), 1)[0], new global::System.Span((void*)((byte*)p0 + 60), 1)[0], (new global::System.Span((byte*)p0 + 64, 1)[0] != 0))); + break; + } + case 9: { + var resource37 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerExpChangeEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerExpChangeEventData ( + resource37, new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + break; + } + case 10: { + var resource40 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerItemHeldEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerItemHeldEventData ( + resource40, ((byte)new global::System.Span((byte*)p0 + 20, 1)[0]), ((byte)new global::System.Span((byte*)p0 + 21, 1)[0]), (new global::System.Span((byte*)p0 + 22, 1)[0] != 0))); + break; + } + case 11: { + var resource43 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerChangedMainHandEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChangedMainHandEventData ( + resource43, (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand)new global::System.Span((byte*)p0 + 20, 1)[0])); + break; + } + case 12: { + var resource46 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerGamemodeChangeEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerGamemodeChangeEventData ( + resource46, (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode)new global::System.Span((byte*)p0 + 20, 1)[0], (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode)new global::System.Span((byte*)p0 + 21, 1)[0], (new global::System.Span((byte*)p0 + 22, 1)[0] != 0))); + break; + } + case 13: { + var resource49 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str50 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + var array51 = new byte[new global::System.Span((void*)((byte*)p0 + 32), 1)[0]]; + new global::System.Span((void*)(new global::System.Span((void*)((byte*)p0 + 28), 1)[0]), new global::System.Span((void*)((byte*)p0 + 32), 1)[0]).CopyTo(new global::System.Span(array51)); + + if (new global::System.Span((void*)((byte*)p0 + 32), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerCustomPayloadEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerCustomPayloadEventData ( + resource49, str50, array51)); + break; + } + case 14: { + var resource54 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + string? lifted; + + switch (new global::System.Span((byte*)p0 + 20, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + var str59 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 28), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + } + + lifted = str59; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 20, 1)[0])); + } + + var str60 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 36), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + } + + var str61 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 40), 1)[0], new global::System.Span((void*)((byte*)p0 + 44), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 44), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 40), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerFishEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerFishEventData ( + resource54, lifted, str60, str61, (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerFishState)new global::System.Span((byte*)p0 + 48, 1)[0], (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand)new global::System.Span((byte*)p0 + 49, 1)[0], new global::System.Span((void*)((byte*)p0 + 52), 1)[0], (new global::System.Span((byte*)p0 + 56, 1)[0] != 0))); + break; + } + case 15: { + var resource64 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str65 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + var str66 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 36), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerEggThrowEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerEggThrowEventData ( + resource64, str65, (new global::System.Span((byte*)p0 + 28, 1)[0] != 0), ((byte)new global::System.Span((byte*)p0 + 29, 1)[0]), str66, (new global::System.Span((byte*)p0 + 40, 1)[0] != 0))); + break; + } + case 16: { + var resource69 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerInteractUnknownEntityEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerInteractUnknownEntityEventData ( + resource69, new global::System.Span((void*)((byte*)p0 + 20), 1)[0], (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.EntityInteractionAction)new global::System.Span((byte*)p0 + 24, 1)[0], (new global::System.Span((byte*)p0 + 25, 1)[0] != 0))); + break; + } + case 17: { + var resource72 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + (int, int, int)? lifted77; + + switch (new global::System.Span((byte*)p0 + 24, 1)[0]) { + case 0: { + lifted77 = null; + break; + } + + case 1: { + + lifted77 = (new global::System.Span((void*)((byte*)p0 + 28), 1)[0], new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 24, 1)[0])); + } + + var str78 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 40), 1)[0], new global::System.Span((void*)((byte*)p0 + 44), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 44), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 40), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerInteractEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerInteractEventData ( + resource72, (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.InteractAction)new global::System.Span((byte*)p0 + 20, 1)[0], lifted77, str78, (new global::System.Span((byte*)p0 + 48, 1)[0] != 0))); + break; + } + case 18: { + var resource81 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerToggleSneakEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleSneakEventData ( + resource81, (new global::System.Span((byte*)p0 + 20, 1)[0] != 0), (new global::System.Span((byte*)p0 + 21, 1)[0] != 0))); + break; + } + case 19: { + var resource84 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerToggleFlightEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleFlightEventData ( + resource84, (new global::System.Span((byte*)p0 + 20, 1)[0] != 0), (new global::System.Span((byte*)p0 + 21, 1)[0] != 0))); + break; + } + case 20: { + var resource87 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.PlayerToggleSprintEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleSprintEventData ( + resource87, (new global::System.Span((byte*)p0 + 20, 1)[0] != 0), (new global::System.Span((byte*)p0 + 21, 1)[0] != 0))); + break; + } + case 21: { + var resource90 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + string? lifted96; + + switch (new global::System.Span((byte*)p0 + 20, 1)[0]) { + case 0: { + lifted96 = null; + break; + } + + case 1: { + + var str95 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 28), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + } + + lifted96 = str95; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 20, 1)[0])); + } + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? lifted102; + + switch (new global::System.Span((byte*)p0 + 40, 1)[0]) { + case 0: { + lifted102 = null; + break; + } + + case 1: { + + var str101 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 44), 1)[0], new global::System.Span((void*)((byte*)p0 + 48), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 48), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 44), 1)[0]); + } + + lifted102 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack ( + str101, ((byte)new global::System.Span((byte*)p0 + 52, 1)[0])); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 40, 1)[0])); + } + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? lifted108; + + switch (new global::System.Span((byte*)p0 + 56, 1)[0]) { + case 0: { + lifted108 = null; + break; + } + + case 1: { + + var str107 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 60), 1)[0], new global::System.Span((void*)((byte*)p0 + 64), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 64), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 60), 1)[0]); + } + + lifted108 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack ( + str107, ((byte)new global::System.Span((byte*)p0 + 68, 1)[0])); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 56, 1)[0])); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.InventoryClickEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.InventoryClickEventData ( + resource90, lifted96, (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ClickType)new global::System.Span((byte*)p0 + 32, 1)[0], ((short)new global::System.Span((void*)((byte*)p0 + 34), 1)[0]), ((short)new global::System.Span((void*)((byte*)p0 + 36), 1)[0]), lifted102, lifted108, new global::System.Span((void*)((byte*)p0 + 72), 1)[0], (new global::System.Span((byte*)p0 + 76, 1)[0] != 0))); + break; + } + case 22: { + var resource111 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + string? lifted117; + + switch (new global::System.Span((byte*)p0 + 20, 1)[0]) { + case 0: { + lifted117 = null; + break; + } + + case 1: { + + var str116 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 28), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + } + + lifted117 = str116; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 20, 1)[0])); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.InventoryCloseEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.InventoryCloseEventData ( + resource111, lifted117)); + break; + } + case 23: { + var resource120 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockRedstoneEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockRedstoneEventData ( + resource120, ((ushort)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]), (new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0], new global::System.Span((void*)((byte*)p0 + 32), 1)[0]), new global::System.Span((void*)((byte*)p0 + 36), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0], (new global::System.Span((byte*)p0 + 44, 1)[0] != 0))); + break; + } + case 24: { + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? lifted128; + + switch (new global::System.Span((byte*)p0 + 16, 1)[0]) { + case 0: { + lifted128 = null; + break; + } + + case 1: { + var resource127 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + + lifted128 = resource127; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)p0 + 16, 1)[0])); + } + + var str129 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 28), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockBreakEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockBreakEventData ( + lifted128, str129, (new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0]), unchecked((uint)(new global::System.Span((void*)((byte*)p0 + 44), 1)[0])), (new global::System.Span((byte*)p0 + 48, 1)[0] != 0), (new global::System.Span((byte*)p0 + 49, 1)[0] != 0))); + break; + } + case 25: { + + var str132 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0], new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 20), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + } + + var str133 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 28), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockBurnEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockBurnEventData ( + str132, str133, (new global::System.Span((byte*)p0 + 32, 1)[0] != 0))); + break; + } + case 26: { + + var str136 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0], new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 20), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + } + + var resource137 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 28), 1)[0])); + + var str138 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 36), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockCanBuildEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockCanBuildEventData ( + str136, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0), resource137, str138, (new global::System.Span((byte*)p0 + 40, 1)[0] != 0))); + break; + } + case 27: { + var resource141 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str142 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + var str143 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 36), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockGrowEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockGrowEventData ( + resource141, str142, ((ushort)new global::System.Span((void*)((byte*)p0 + 28), 1)[0]), str143, ((ushort)new global::System.Span((void*)((byte*)p0 + 40), 1)[0]), (new global::System.Span((void*)((byte*)p0 + 44), 1)[0], new global::System.Span((void*)((byte*)p0 + 48), 1)[0], new global::System.Span((void*)((byte*)p0 + 52), 1)[0]), (new global::System.Span((byte*)p0 + 56, 1)[0] != 0))); + break; + } + case 28: { + var resource146 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + var str147 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 24), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + } + + var str148 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 28), 1)[0], new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 32), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 28), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.BlockPlaceEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockPlaceEventData ( + resource146, str147, str148, (new global::System.Span((void*)((byte*)p0 + 36), 1)[0], new global::System.Span((void*)((byte*)p0 + 40), 1)[0], new global::System.Span((void*)((byte*)p0 + 44), 1)[0]), (new global::System.Span((byte*)p0 + 48, 1)[0] != 0), (new global::System.Span((byte*)p0 + 49, 1)[0] != 0))); + break; + } + case 29: { + + var str151 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0], new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + if (new global::System.Span((void*)((byte*)p0 + 20), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + } + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.ServerCommandEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.ServerCommandEventData ( + str151, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0))); + break; + } + case 30: { + var resource154 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.SpawnChangeEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.SpawnChangeEventData ( + resource154, (new global::System.Span((void*)((byte*)p0 + 20), 1)[0], new global::System.Span((void*)((byte*)p0 + 24), 1)[0], new global::System.Span((void*)((byte*)p0 + 28), 1)[0]), new global::System.Span((void*)((byte*)p0 + 32), 1)[0], new global::System.Span((void*)((byte*)p0 + 36), 1)[0], (new global::System.Span((void*)((byte*)p0 + 40), 1)[0], new global::System.Span((void*)((byte*)p0 + 44), 1)[0], new global::System.Span((void*)((byte*)p0 + 48), 1)[0]), new global::System.Span((void*)((byte*)p0 + 52), 1)[0], new global::System.Span((void*)((byte*)p0 + 56), 1)[0])); + break; + } + case 31: { + var resource157 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)p0 + 16), 1)[0])); + var resource158 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)p0 + 20), 1)[0])); + + lifted159 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event.ServerBroadcastEvent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.ServerBroadcastEventData ( + resource157, resource158, (new global::System.Span((byte*)p0 + 24, 1)[0] != 0))); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)p0 + 8, 1)[0]); + } + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.Event ret; + ret = PluginWorldExportsImpl.HandleEvent((unchecked((uint)(new global::System.Span((void*)((byte*)p0 + 0), 1)[0]))), (resource), (lifted159)); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)p0); + + var ptr = InteropReturnArea.returnArea.AddressOfReturnArea(); + + switch (ret.Tag) { + case 0: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerJoinEventData payload = ret.AsPlayerJoinEvent; + *(byte*)(ptr + 0) = (byte)0; + var handle = payload.player.Handle; + payload.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle; + var handle162 = payload.joinMessage.Handle; + payload.joinMessage.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle162; + *(byte*)(ptr + 16) = (byte)(payload.cancelled ? 1 : 0); + + break; + } + case 1: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerLeaveEventData payload165 = ret.AsPlayerLeaveEvent; + *(byte*)(ptr + 0) = (byte)1; + var handle166 = payload165.player.Handle; + payload165.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle166; + var handle167 = payload165.leaveMessage.Handle; + payload165.leaveMessage.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle167; + *(byte*)(ptr + 16) = (byte)(payload165.cancelled ? 1 : 0); + + break; + } + case 2: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerLoginEventData payload170 = ret.AsPlayerLoginEvent; + *(byte*)(ptr + 0) = (byte)2; + var handle171 = payload170.player.Handle; + payload170.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle171; + var handle172 = payload170.kickMessage.Handle; + payload170.kickMessage.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle172; + *(byte*)(ptr + 16) = (byte)(payload170.cancelled ? 1 : 0); + + break; + } + case 3: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChatEventData payload175 = ret.AsPlayerChatEvent; + *(byte*)(ptr + 0) = (byte)3; + var handle176 = payload175.player.Handle; + payload175.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle176; + + var stringSpan = global::System.MemoryExtensions.AsSpan(payload175.message); + var length = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan); + var strPtr = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan, new global::System.Span(strPtr, length)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr; + + var bufferSize = 4 * (nuint)payload175.recipients.Count; + void* address = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize, 4); + + for (int index180 = 0; index180 < payload175.recipients.Count; ++index180) { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player element177 = payload175.recipients[index180]; + int basePtr178 = (int)address + (index180 * 4); + var handle179 = element177.Handle; + element177.Handle = 0; + new global::System.Span((void*)((byte*)basePtr178 + 0), 1)[0] = handle179; + + } + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = payload175.recipients.Count; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = (nint)(int)address; + *(byte*)(ptr + 28) = (byte)(payload175.cancelled ? 1 : 0); + + break; + } + case 4: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerCommandSendEventData payload183 = ret.AsPlayerCommandSendEvent; + *(byte*)(ptr + 0) = (byte)4; + var handle184 = payload183.player.Handle; + payload183.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle184; + + var stringSpan189 = global::System.MemoryExtensions.AsSpan(payload183.command); + var length187 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan189); + var strPtr185 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length187); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan189, new global::System.Span(strPtr185, length187)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length187; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr185; + *(byte*)(ptr + 20) = (byte)(payload183.cancelled ? 1 : 0); + + break; + } + case 5: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerPermissionCheckEventData payload192 = ret.AsPlayerPermissionCheckEvent; + *(byte*)(ptr + 0) = (byte)5; + var handle193 = payload192.player.Handle; + payload192.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle193; + + var stringSpan198 = global::System.MemoryExtensions.AsSpan(payload192.permission); + var length196 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan198); + var strPtr194 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length196); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan198, new global::System.Span(strPtr194, length196)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length196; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr194; + *(byte*)(ptr + 20) = (byte)(payload192.permissionResult ? 1 : 0); + + break; + } + case 6: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerMoveEventData payload201 = ret.AsPlayerMoveEvent; + *(byte*)(ptr + 0) = (byte)6; + var handle202 = payload201.player.Handle; + payload201.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle202; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = unchecked((double)payload201.fromPosition.Item1); + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = unchecked((double)payload201.fromPosition.Item2); + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = unchecked((double)payload201.fromPosition.Item3); + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = unchecked((double)payload201.toPosition.Item1); + new global::System.Span((void*)((byte*)ptr + 48), 1)[0] = unchecked((double)payload201.toPosition.Item2); + new global::System.Span((void*)((byte*)ptr + 56), 1)[0] = unchecked((double)payload201.toPosition.Item3); + *(byte*)(ptr + 64) = (byte)(payload201.cancelled ? 1 : 0); + + break; + } + case 7: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerTeleportEventData payload205 = ret.AsPlayerTeleportEvent; + *(byte*)(ptr + 0) = (byte)7; + var handle206 = payload205.player.Handle; + payload205.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle206; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = unchecked((double)payload205.fromPosition.Item1); + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = unchecked((double)payload205.fromPosition.Item2); + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = unchecked((double)payload205.fromPosition.Item3); + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = unchecked((double)payload205.toPosition.Item1); + new global::System.Span((void*)((byte*)ptr + 48), 1)[0] = unchecked((double)payload205.toPosition.Item2); + new global::System.Span((void*)((byte*)ptr + 56), 1)[0] = unchecked((double)payload205.toPosition.Item3); + *(byte*)(ptr + 64) = (byte)(payload205.cancelled ? 1 : 0); + + break; + } + case 8: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChangeWorldEventData payload209 = ret.AsPlayerChangeWorldEvent; + *(byte*)(ptr + 0) = (byte)8; + var handle210 = payload209.player.Handle; + payload209.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle210; + var handle211 = payload209.previousWorld.Handle; + payload209.previousWorld.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle211; + var handle212 = payload209.newWorld.Handle; + payload209.newWorld.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = handle212; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = unchecked((double)payload209.position.Item1); + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = unchecked((double)payload209.position.Item2); + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = unchecked((double)payload209.position.Item3); + new global::System.Span((void*)((byte*)ptr + 48), 1)[0] = unchecked((float)payload209.yaw); + new global::System.Span((void*)((byte*)ptr + 52), 1)[0] = unchecked((float)payload209.pitch); + *(byte*)(ptr + 56) = (byte)(payload209.cancelled ? 1 : 0); + + break; + } + case 9: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerExpChangeEventData payload215 = ret.AsPlayerExpChangeEvent; + *(byte*)(ptr + 0) = (byte)9; + var handle216 = payload215.player.Handle; + payload215.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle216; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = payload215.amount; + + break; + } + case 10: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerItemHeldEventData payload219 = ret.AsPlayerItemHeldEvent; + *(byte*)(ptr + 0) = (byte)10; + var handle220 = payload219.player.Handle; + payload219.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle220; + *(byte*)(ptr + 12) = (byte)payload219.previousSlot; + *(byte*)(ptr + 13) = (byte)payload219.newSlot; + *(byte*)(ptr + 14) = (byte)(payload219.cancelled ? 1 : 0); + + break; + } + case 11: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerChangedMainHandEventData payload223 = ret.AsPlayerChangedMainHandEvent; + *(byte*)(ptr + 0) = (byte)11; + var handle224 = payload223.player.Handle; + payload223.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle224; + *(byte*)(ptr + 12) = (byte)(int)payload223.mainHand; + + break; + } + case 12: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerGamemodeChangeEventData payload227 = ret.AsPlayerGamemodeChangeEvent; + *(byte*)(ptr + 0) = (byte)12; + var handle228 = payload227.player.Handle; + payload227.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle228; + *(byte*)(ptr + 12) = (byte)(int)payload227.previousGamemode; + *(byte*)(ptr + 13) = (byte)(int)payload227.newGamemode; + *(byte*)(ptr + 14) = (byte)(payload227.cancelled ? 1 : 0); + + break; + } + case 13: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerCustomPayloadEventData payload231 = ret.AsPlayerCustomPayloadEvent; + *(byte*)(ptr + 0) = (byte)13; + var handle232 = payload231.player.Handle; + payload231.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle232; + + var stringSpan237 = global::System.MemoryExtensions.AsSpan(payload231.channel); + var length235 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan237); + var strPtr233 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length235); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan237, new global::System.Span(strPtr233, length235)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length235; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr233; + + var byteLength = (1) * payload231.data.Length; + var address238 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)(byteLength)); + global::System.MemoryExtensions.AsSpan(payload231.data).CopyTo(new global::System.Span(address238,byteLength)); + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = payload231.data.Length; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = (nint)(int)(address238); + + break; + } + case 14: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerFishEventData payload241 = ret.AsPlayerFishEvent; + *(byte*)(ptr + 0) = (byte)14; + var handle242 = payload241.player.Handle; + payload241.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle242; + + if (payload241.caughtUuid != null) { + var payload248 = (string) payload241.caughtUuid; + *(byte*)(ptr + 12) = (byte)1; + + var stringSpan253 = global::System.MemoryExtensions.AsSpan(payload248); + var length251 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan253); + var strPtr249 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length251); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan253, new global::System.Span(strPtr249, length251)); + + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = length251; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)strPtr249; + + } else { + + *(byte*)(ptr + 12) = (byte)0; + + } + + var stringSpan258 = global::System.MemoryExtensions.AsSpan(payload241.caughtType); + var length256 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan258); + var strPtr254 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length256); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan258, new global::System.Span(strPtr254, length256)); + + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = length256; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = (nint)(int)strPtr254; + + var stringSpan263 = global::System.MemoryExtensions.AsSpan(payload241.hookUuid); + var length261 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan263); + var strPtr259 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length261); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan263, new global::System.Span(strPtr259, length261)); + + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = length261; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = (nint)(int)strPtr259; + *(byte*)(ptr + 40) = (byte)(int)payload241.state; + *(byte*)(ptr + 41) = (byte)(int)payload241.hand; + new global::System.Span((void*)((byte*)ptr + 44), 1)[0] = payload241.expToDrop; + *(byte*)(ptr + 48) = (byte)(payload241.cancelled ? 1 : 0); + + break; + } + case 15: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerEggThrowEventData payload266 = ret.AsPlayerEggThrowEvent; + *(byte*)(ptr + 0) = (byte)15; + var handle267 = payload266.player.Handle; + payload266.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle267; + + var stringSpan272 = global::System.MemoryExtensions.AsSpan(payload266.eggUuid); + var length270 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan272); + var strPtr268 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length270); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan272, new global::System.Span(strPtr268, length270)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length270; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr268; + *(byte*)(ptr + 20) = (byte)(payload266.hatching ? 1 : 0); + *(byte*)(ptr + 21) = (byte)payload266.numHatches; + + var stringSpan277 = global::System.MemoryExtensions.AsSpan(payload266.hatchingType); + var length275 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan277); + var strPtr273 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length275); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan277, new global::System.Span(strPtr273, length275)); + + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = length275; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = (nint)(int)strPtr273; + *(byte*)(ptr + 32) = (byte)(payload266.cancelled ? 1 : 0); + + break; + } + case 16: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerInteractUnknownEntityEventData payload280 = ret.AsPlayerInteractUnknownEntityEvent; + *(byte*)(ptr + 0) = (byte)16; + var handle281 = payload280.player.Handle; + payload280.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle281; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = payload280.entityId; + *(byte*)(ptr + 16) = (byte)(int)payload280.action; + *(byte*)(ptr + 17) = (byte)(payload280.cancelled ? 1 : 0); + + break; + } + case 17: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerInteractEventData payload284 = ret.AsPlayerInteractEvent; + *(byte*)(ptr + 0) = (byte)17; + var handle285 = payload284.player.Handle; + payload284.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle285; + *(byte*)(ptr + 12) = (byte)(int)payload284.action; + + if (payload284.clickedPos != null) { + var payload291 = ((int, int, int)) payload284.clickedPos; + *(byte*)(ptr + 16) = (byte)1; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = payload291.Item1; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = payload291.Item2; + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = payload291.Item3; + + } else { + + *(byte*)(ptr + 16) = (byte)0; + + } + + var stringSpan296 = global::System.MemoryExtensions.AsSpan(payload284.block); + var length294 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan296); + var strPtr292 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length294); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan296, new global::System.Span(strPtr292, length294)); + + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = length294; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = (nint)(int)strPtr292; + *(byte*)(ptr + 40) = (byte)(payload284.cancelled ? 1 : 0); + + break; + } + case 18: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleSneakEventData payload299 = ret.AsPlayerToggleSneakEvent; + *(byte*)(ptr + 0) = (byte)18; + var handle300 = payload299.player.Handle; + payload299.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle300; + *(byte*)(ptr + 12) = (byte)(payload299.isSneaking ? 1 : 0); + *(byte*)(ptr + 13) = (byte)(payload299.cancelled ? 1 : 0); + + break; + } + case 19: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleFlightEventData payload303 = ret.AsPlayerToggleFlightEvent; + *(byte*)(ptr + 0) = (byte)19; + var handle304 = payload303.player.Handle; + payload303.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle304; + *(byte*)(ptr + 12) = (byte)(payload303.isFlying ? 1 : 0); + *(byte*)(ptr + 13) = (byte)(payload303.cancelled ? 1 : 0); + + break; + } + case 20: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.PlayerToggleSprintEventData payload307 = ret.AsPlayerToggleSprintEvent; + *(byte*)(ptr + 0) = (byte)20; + var handle308 = payload307.player.Handle; + payload307.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle308; + *(byte*)(ptr + 12) = (byte)(payload307.isSprinting ? 1 : 0); + *(byte*)(ptr + 13) = (byte)(payload307.cancelled ? 1 : 0); + + break; + } + case 21: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.InventoryClickEventData payload311 = ret.AsInventoryClickEvent; + *(byte*)(ptr + 0) = (byte)21; + var handle312 = payload311.player.Handle; + payload311.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle312; + + if (payload311.windowType != null) { + var payload318 = (string) payload311.windowType; + *(byte*)(ptr + 12) = (byte)1; + + var stringSpan323 = global::System.MemoryExtensions.AsSpan(payload318); + var length321 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan323); + var strPtr319 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length321); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan323, new global::System.Span(strPtr319, length321)); + + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = length321; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)strPtr319; + + } else { + + *(byte*)(ptr + 12) = (byte)0; + + } + *(byte*)(ptr + 24) = (byte)(int)payload311.clickType; + new global::System.Span((void*)((byte*)ptr + 26), 1)[0] = (short)payload311.slot; + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = (short)payload311.rawSlot; + + if (payload311.clickedItem != null) { + var payload329 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack) payload311.clickedItem; + *(byte*)(ptr + 32) = (byte)1; + + var stringSpan334 = global::System.MemoryExtensions.AsSpan(payload329.registryKey); + var length332 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan334); + var strPtr330 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length332); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan334, new global::System.Span(strPtr330, length332)); + + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = length332; + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = (nint)(int)strPtr330; + *(byte*)(ptr + 44) = (byte)payload329.count; + + } else { + + *(byte*)(ptr + 32) = (byte)0; + + } + + if (payload311.cursor != null) { + var payload340 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack) payload311.cursor; + *(byte*)(ptr + 48) = (byte)1; + + var stringSpan345 = global::System.MemoryExtensions.AsSpan(payload340.registryKey); + var length343 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan345); + var strPtr341 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length343); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan345, new global::System.Span(strPtr341, length343)); + + new global::System.Span((void*)((byte*)ptr + 56), 1)[0] = length343; + new global::System.Span((void*)((byte*)ptr + 52), 1)[0] = (nint)(int)strPtr341; + *(byte*)(ptr + 60) = (byte)payload340.count; + + } else { + + *(byte*)(ptr + 48) = (byte)0; + + } + new global::System.Span((void*)((byte*)ptr + 64), 1)[0] = payload311.hotbarButton; + *(byte*)(ptr + 68) = (byte)(payload311.cancelled ? 1 : 0); + + break; + } + case 22: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.InventoryCloseEventData payload348 = ret.AsInventoryCloseEvent; + *(byte*)(ptr + 0) = (byte)22; + var handle349 = payload348.player.Handle; + payload348.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle349; + + if (payload348.windowType != null) { + var payload355 = (string) payload348.windowType; + *(byte*)(ptr + 12) = (byte)1; + + var stringSpan360 = global::System.MemoryExtensions.AsSpan(payload355); + var length358 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan360); + var strPtr356 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length358); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan360, new global::System.Span(strPtr356, length358)); + + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = length358; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)strPtr356; + + } else { + + *(byte*)(ptr + 12) = (byte)0; + + } + + break; + } + case 23: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockRedstoneEventData payload363 = ret.AsBlockRedstoneEvent; + *(byte*)(ptr + 0) = (byte)23; + var handle364 = payload363.targetWorld.Handle; + payload363.targetWorld.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle364; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (short)payload363.stateId; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = payload363.blockPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = payload363.blockPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = payload363.blockPosition.Item3; + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = payload363.oldCurrent; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = payload363.newCurrent; + *(byte*)(ptr + 36) = (byte)(payload363.cancelled ? 1 : 0); + + break; + } + case 24: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockBreakEventData payload367 = ret.AsBlockBreakEvent; + *(byte*)(ptr + 0) = (byte)24; + + if (payload367.player != null) { + var payload373 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player) payload367.player; + *(byte*)(ptr + 8) = (byte)1; + var handle374 = payload373.Handle; + payload373.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle374; + + } else { + + *(byte*)(ptr + 8) = (byte)0; + + } + + var stringSpan379 = global::System.MemoryExtensions.AsSpan(payload367.block); + var length377 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan379); + var strPtr375 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length377); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan379, new global::System.Span(strPtr375, length377)); + + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = length377; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)strPtr375; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = payload367.blockPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = payload367.blockPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = payload367.blockPosition.Item3; + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = unchecked((int)(payload367.exp)); + *(byte*)(ptr + 40) = (byte)(payload367.shouldDrop ? 1 : 0); + *(byte*)(ptr + 41) = (byte)(payload367.cancelled ? 1 : 0); + + break; + } + case 25: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockBurnEventData payload382 = ret.AsBlockBurnEvent; + *(byte*)(ptr + 0) = (byte)25; + + var stringSpan387 = global::System.MemoryExtensions.AsSpan(payload382.ignitingBlock); + var length385 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan387); + var strPtr383 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length385); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan387, new global::System.Span(strPtr383, length385)); + + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = length385; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = (nint)(int)strPtr383; + + var stringSpan392 = global::System.MemoryExtensions.AsSpan(payload382.block); + var length390 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan392); + var strPtr388 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length390); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan392, new global::System.Span(strPtr388, length390)); + + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = length390; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)strPtr388; + *(byte*)(ptr + 24) = (byte)(payload382.cancelled ? 1 : 0); + + break; + } + case 26: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockCanBuildEventData payload395 = ret.AsBlockCanBuildEvent; + *(byte*)(ptr + 0) = (byte)26; + + var stringSpan400 = global::System.MemoryExtensions.AsSpan(payload395.blockToBuild); + var length398 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan400); + var strPtr396 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length398); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan400, new global::System.Span(strPtr396, length398)); + + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = length398; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = (nint)(int)strPtr396; + *(byte*)(ptr + 16) = (byte)(payload395.buildable ? 1 : 0); + var handle401 = payload395.player.Handle; + payload395.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = handle401; + + var stringSpan406 = global::System.MemoryExtensions.AsSpan(payload395.block); + var length404 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan406); + var strPtr402 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length404); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan406, new global::System.Span(strPtr402, length404)); + + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = length404; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = (nint)(int)strPtr402; + *(byte*)(ptr + 32) = (byte)(payload395.cancelled ? 1 : 0); + + break; + } + case 27: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockGrowEventData payload409 = ret.AsBlockGrowEvent; + *(byte*)(ptr + 0) = (byte)27; + var handle410 = payload409.targetWorld.Handle; + payload409.targetWorld.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle410; + + var stringSpan415 = global::System.MemoryExtensions.AsSpan(payload409.oldBlock); + var length413 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan415); + var strPtr411 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length413); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan415, new global::System.Span(strPtr411, length413)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length413; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr411; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = (short)payload409.oldStateId; + + var stringSpan420 = global::System.MemoryExtensions.AsSpan(payload409.newBlock); + var length418 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan420); + var strPtr416 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length418); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan420, new global::System.Span(strPtr416, length418)); + + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = length418; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = (nint)(int)strPtr416; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = (short)payload409.newStateId; + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = payload409.blockPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = payload409.blockPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 44), 1)[0] = payload409.blockPosition.Item3; + *(byte*)(ptr + 48) = (byte)(payload409.cancelled ? 1 : 0); + + break; + } + case 28: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.BlockPlaceEventData payload423 = ret.AsBlockPlaceEvent; + *(byte*)(ptr + 0) = (byte)28; + var handle424 = payload423.player.Handle; + payload423.player.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle424; + + var stringSpan429 = global::System.MemoryExtensions.AsSpan(payload423.blockPlaced); + var length427 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan429); + var strPtr425 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length427); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan429, new global::System.Span(strPtr425, length427)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length427; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr425; + + var stringSpan434 = global::System.MemoryExtensions.AsSpan(payload423.blockPlacedAgainst); + var length432 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan434); + var strPtr430 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length432); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan434, new global::System.Span(strPtr430, length432)); + + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = length432; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = (nint)(int)strPtr430; + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = payload423.blockPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = payload423.blockPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = payload423.blockPosition.Item3; + *(byte*)(ptr + 40) = (byte)(payload423.canBuild ? 1 : 0); + *(byte*)(ptr + 41) = (byte)(payload423.cancelled ? 1 : 0); + + break; + } + case 29: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.ServerCommandEventData payload437 = ret.AsServerCommandEvent; + *(byte*)(ptr + 0) = (byte)29; + + var stringSpan442 = global::System.MemoryExtensions.AsSpan(payload437.command); + var length440 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan442); + var strPtr438 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length440); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan442, new global::System.Span(strPtr438, length440)); + + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = length440; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = (nint)(int)strPtr438; + *(byte*)(ptr + 16) = (byte)(payload437.cancelled ? 1 : 0); + + break; + } + case 30: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.SpawnChangeEventData payload445 = ret.AsSpawnChangeEvent; + *(byte*)(ptr + 0) = (byte)30; + var handle446 = payload445.targetWorld.Handle; + payload445.targetWorld.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle446; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = payload445.previousPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = payload445.previousPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = payload445.previousPosition.Item3; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = unchecked((float)payload445.previousYaw); + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = unchecked((float)payload445.previousPitch); + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = payload445.newPosition.Item1; + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = payload445.newPosition.Item2; + new global::System.Span((void*)((byte*)ptr + 40), 1)[0] = payload445.newPosition.Item3; + new global::System.Span((void*)((byte*)ptr + 44), 1)[0] = unchecked((float)payload445.newYaw); + new global::System.Span((void*)((byte*)ptr + 48), 1)[0] = unchecked((float)payload445.newPitch); + + break; + } + case 31: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.ServerBroadcastEventData payload449 = ret.AsServerBroadcastEvent; + *(byte*)(ptr + 0) = (byte)31; + var handle450 = payload449.message.Handle; + payload449.message.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle450; + var handle451 = payload449.sender.Handle; + payload449.sender.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = handle451; + *(byte*)(ptr + 16) = (byte)(payload449.cancelled ? 1 : 0); + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + ret); + } + return ptr; + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "cabi_post_handle-event")] + public static unsafe void cabi_post_wasmExportHandleEvent(nint p0) { + + switch (new global::System.Span((byte*)p0 + 0, 1)[0]) { + case 0: { + + break; + } + case 1: { + + break; + } + case 2: { + + break; + } + case 3: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + + break; + } + case 4: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + + break; + } + case 5: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + + break; + } + case 6: { + + break; + } + case 7: { + + break; + } + case 8: { + + break; + } + case 9: { + + break; + } + case 10: { + + break; + } + case 11: { + + break; + } + case 12: { + + break; + } + case 13: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + + break; + } + case 14: { + + switch (new global::System.Span((byte*)p0 + 12, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + + break; + } + } + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + + break; + } + case 15: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + + break; + } + case 16: { + + break; + } + case 17: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + + break; + } + case 18: { + + break; + } + case 19: { + + break; + } + case 20: { + + break; + } + case 21: { + + switch (new global::System.Span((byte*)p0 + 12, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + + break; + } + } + + switch (new global::System.Span((byte*)p0 + 32, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 36), 1)[0]); + + break; + } + } + + switch (new global::System.Span((byte*)p0 + 48, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 52), 1)[0]); + + break; + } + } + + break; + } + case 22: { + + switch (new global::System.Span((byte*)p0 + 12, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + + break; + } + } + + break; + } + case 23: { + + break; + } + case 24: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + + break; + } + case 25: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 8), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + + break; + } + case 26: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 8), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + + break; + } + case 27: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + + break; + } + case 28: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 20), 1)[0]); + + break; + } + case 29: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 8), 1)[0]); + + break; + } + case 30: { + + break; + } + case 31: { + + break; + } + } + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "handle-command")] + public static unsafe nint wasmExportHandleCommand(int p0, int p1, int p2, int p3) { + + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSender(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSender.THandle(p1)); + var resource0 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server.THandle(p2)); + var resource1 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.ConsumedArgs(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.ConsumedArgs.THandle(p3)); + Result ret; + + try + { + + ret = Result.Ok(PluginWorldExportsImpl.HandleCommand((unchecked((uint)(p0))), (resource), (resource0), (resource1))); + } + catch (WitException e) + { + switch (e.NestingLevel) + { + case 0: + { + ret = Result.Err((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandError) e.Value); + break; + } + + default: throw new global::System.ArgumentException($"invalid nesting level: {e.NestingLevel}"); + } + } + + var ptr = InteropReturnArea.returnArea.AddressOfReturnArea(); + + switch (ret.Tag) { + case 0: { + int payload = ret.AsOk; + *(byte*)(ptr + 0) = (byte)0; + new global::System.Span((void*)((byte*)ptr + 4), 1)[0] = payload; + + break; + } + case 1: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandError payload4 = ret.AsErr; + *(byte*)(ptr + 0) = (byte)1; + + switch (payload4.Tag) { + case 0: { + string? payload7 = payload4.AsInvalidConsumption; + *(byte*)(ptr + 4) = (byte)0; + + if (payload7 != null) { + var payload13 = (string) payload7; + *(byte*)(ptr + 8) = (byte)1; + + var stringSpan = global::System.MemoryExtensions.AsSpan(payload13); + var length = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan); + var strPtr = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan, new global::System.Span(strPtr, length)); + + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = length; + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = (nint)(int)strPtr; + + } else { + + *(byte*)(ptr + 8) = (byte)0; + + } + + break; + } + case 1: { + + *(byte*)(ptr + 4) = (byte)1; + + break; + } + case 2: { + + *(byte*)(ptr + 4) = (byte)2; + + break; + } + case 3: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent payload22 = payload4.AsCommandFailed; + *(byte*)(ptr + 4) = (byte)3; + var handle = payload22.Handle; + payload22.Handle = 0; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = handle; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + payload4); + } + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + ret); + } + return ptr; + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "cabi_post_handle-command")] + public static unsafe void cabi_post_wasmExportHandleCommand(nint p0) { + + switch (new global::System.Span((byte*)p0 + 0, 1)[0]) { + case 0: { + + break; + } + case 1: { + + switch (new global::System.Span((byte*)p0 + 4, 1)[0]) { + case 0: { + + switch (new global::System.Span((byte*)p0 + 8, 1)[0]) { + case 0: { + + break; + } + case 1: { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 12), 1)[0]); + + break; + } + } + + break; + } + case 1: { + + break; + } + case 2: { + + break; + } + case 3: { + + break; + } + } + + break; + } + } + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "handle-task")] + public static unsafe void wasmExportHandleTask(int p0, int p1) { + + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server.THandle(p1)); + PluginWorldExportsImpl.HandleTask((unchecked((uint)(p0))), (resource)); + + } + } + } + +} diff --git a/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.cs b/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.cs new file mode 100644 index 0000000..1256f70 --- /dev/null +++ b/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.cs @@ -0,0 +1,26 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0; + +public interface IMetadataExports { + + public struct PluginMetadata { + public string name; + public string version; + public global::System.Collections.Generic.List authors; + public string description; + public global::System.Collections.Generic.List dependencies; + + public PluginMetadata(string name, string version, global::System.Collections.Generic.List authors, string description, global::System.Collections.Generic.List dependencies) { + this.name = name; + this.version = version; + this.authors = authors; + this.description = description; + this.dependencies = dependencies; + } + } + static abstract global::PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.PluginMetadata GetMetadata(); + +} diff --git a/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.MetadataExportsInterop.cs b/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.MetadataExportsInterop.cs new file mode 100644 index 0000000..5e62767 --- /dev/null +++ b/src/gen/PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.MetadataExportsInterop.cs @@ -0,0 +1,107 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0 +{ + public static class MetadataExportsInterop { + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "pumpkin:plugin/metadata@0.1.0#get-metadata")] + public static unsafe nint wasmExportGetMetadata() { + + global::PluginWorld.wit.Exports.pumpkin.plugin.v0_1_0.IMetadataExports.PluginMetadata ret; + ret = MetadataExportsImpl.GetMetadata(); + + var ptr = InteropReturnArea.returnArea.AddressOfReturnArea(); + + var stringSpan = global::System.MemoryExtensions.AsSpan(ret.name); + var length = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan); + var strPtr = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan, new global::System.Span(strPtr, length)); + + new global::System.Span((void*)((byte*)ptr + 4), 1)[0] = length; + new global::System.Span((void*)((byte*)ptr + 0), 1)[0] = (nint)(int)strPtr; + + var stringSpan4 = global::System.MemoryExtensions.AsSpan(ret.version); + var length2 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan4); + var strPtr0 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length2); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan4, new global::System.Span(strPtr0, length2)); + + new global::System.Span((void*)((byte*)ptr + 12), 1)[0] = length2; + new global::System.Span((void*)((byte*)ptr + 8), 1)[0] = (nint)(int)strPtr0; + + var bufferSize = 8 * (nuint)ret.authors.Count; + void* address = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize, 4); + + for (int index = 0; index < ret.authors.Count; ++index) { + string element = ret.authors[index]; + int basePtr = (int)address + (index * 8); + + var stringSpan9 = global::System.MemoryExtensions.AsSpan(element); + var length7 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan9); + var strPtr5 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length7); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan9, new global::System.Span(strPtr5, length7)); + + new global::System.Span((void*)((byte*)basePtr + 4), 1)[0] = length7; + new global::System.Span((void*)((byte*)basePtr + 0), 1)[0] = (nint)(int)strPtr5; + + } + new global::System.Span((void*)((byte*)ptr + 20), 1)[0] = ret.authors.Count; + new global::System.Span((void*)((byte*)ptr + 16), 1)[0] = (nint)(int)address; + + var stringSpan14 = global::System.MemoryExtensions.AsSpan(ret.description); + var length12 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan14); + var strPtr10 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length12); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan14, new global::System.Span(strPtr10, length12)); + + new global::System.Span((void*)((byte*)ptr + 28), 1)[0] = length12; + new global::System.Span((void*)((byte*)ptr + 24), 1)[0] = (nint)(int)strPtr10; + + var bufferSize24 = 8 * (nuint)ret.dependencies.Count; + void* address23 = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize24, 4); + + for (int index22 = 0; index22 < ret.dependencies.Count; ++index22) { + string element15 = ret.dependencies[index22]; + int basePtr16 = (int)address23 + (index22 * 8); + + var stringSpan21 = global::System.MemoryExtensions.AsSpan(element15); + var length19 = global::System.Text.Encoding.UTF8.GetByteCount(stringSpan21); + var strPtr17 = global::System.Runtime.InteropServices.NativeMemory.Alloc((nuint)length19); + global::System.Text.Encoding.UTF8.GetBytes(stringSpan21, new global::System.Span(strPtr17, length19)); + + new global::System.Span((void*)((byte*)basePtr16 + 4), 1)[0] = length19; + new global::System.Span((void*)((byte*)basePtr16 + 0), 1)[0] = (nint)(int)strPtr17; + + } + new global::System.Span((void*)((byte*)ptr + 36), 1)[0] = ret.dependencies.Count; + new global::System.Span((void*)((byte*)ptr + 32), 1)[0] = (nint)(int)address23; + return ptr; + + } + + [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(EntryPoint = "cabi_post_pumpkin:plugin/metadata@0.1.0#get-metadata")] + public static unsafe void cabi_post_wasmExportGetMetadata(nint p0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 0), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 8), 1)[0]); + + for (int index = 0; index < new global::System.Span((void*)((byte*)p0 + 20), 1)[0]; ++index) { + int basePtr = (int)new global::System.Span((void*)((byte*)p0 + 16), 1)[0] + (index * 8); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)basePtr + 0), 1)[0]); + + } + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 16), 1)[0]); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 24), 1)[0]); + + for (int index2 = 0; index2 < new global::System.Span((void*)((byte*)p0 + 36), 1)[0]; ++index2) { + int basePtr1 = (int)new global::System.Span((void*)((byte*)p0 + 32), 1)[0] + (index2 * 8); + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)basePtr1 + 0), 1)[0]); + + } + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)p0 + 32), 1)[0]); + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BlockEntityImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BlockEntityImportsInterop.cs new file mode 100644 index 0000000..06aa0b7 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BlockEntityImportsInterop.cs @@ -0,0 +1,100 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class BlockEntityImportsInterop { + + internal static class BlockEntity + { + + public static class ResourceLocationWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]block-entity.resource-location"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportResourceLocation(int p0, nint p1); + } + + public static class GetPositionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]block-entity.get-position"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPosition(int p0, nint p1); + } + + public static class GetIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]block-entity.get-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetId(int p0); + } + + public static class IsDirtyWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]block-entity.is-dirty"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsDirty(int p0); + } + + public static class ClearDirtyWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]block-entity.clear-dirty"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClearDirty(int p0); + } + + } + + internal static class CommandBlockEntity + { + + public static class GetBlockEntityWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.get-block-entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetBlockEntity(int p0); + } + + public static class LastOutputWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.last-output"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportLastOutput(int p0, nint p1); + } + + public static class TrackOutputWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.track-output"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportTrackOutput(int p0); + } + + public static class SuccessCountWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.success-count"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportSuccessCount(int p0); + } + + public static class CommandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportCommand(int p0, nint p1); + } + + public static class AutoWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.auto"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportAuto(int p0); + } + + public static class ConditionMetWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.condition-met"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportConditionMet(int p0); + } + + public static class PoweredWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[method]command-block-entity.powered"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportPowered(int p0); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BossBarImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BossBarImportsInterop.cs new file mode 100644 index 0000000..00ebf50 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.BossBarImportsInterop.cs @@ -0,0 +1,107 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class BossBarImportsInterop { + + internal static class BossBar + { + + public static class ConstructorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[constructor]boss-bar"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportConstructor(int p0, int p1, int p2); + } + + public static class GetTitleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-title"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetTitle(int p0); + } + + public static class SetTitleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.set-title"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTitle(int p0, int p1); + } + + public static class GetHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetHealth(int p0); + } + + public static class SetHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.set-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetHealth(int p0, float p1); + } + + public static class GetColorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-color"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetColor(int p0); + } + + public static class SetColorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.set-color"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetColor(int p0, int p1); + } + + public static class GetDivisionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-division"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetDivision(int p0); + } + + public static class SetDivisionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.set-division"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetDivision(int p0, int p1); + } + + public static class GetMetadataWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-metadata"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetMetadata(int p0, nint p1); + } + + public static class SetMetadataWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.set-metadata"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetMetadata(int p0, int p1, int p2, int p3); + } + + public static class AddPlayerWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.add-player"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddPlayer(int p0, int p1); + } + + public static class RemovePlayerWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.remove-player"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemovePlayer(int p0, int p1); + } + + public static class GetPlayersWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.get-players"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPlayers(int p0, nint p1); + } + + public static class RemoveAllWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[method]boss-bar.remove-all"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemoveAll(int p0); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommandImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommandImportsInterop.cs new file mode 100644 index 0000000..3cef9b5 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommandImportsInterop.cs @@ -0,0 +1,176 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class CommandImportsInterop { + + internal static class ConsumedArgs + { + + public static class GetValueWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]consumed-args.get-value"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetValue(int p0, nint p1, int p2, nint p3); + } + + } + + internal static class CommandSender + { + + public static class GetCommandSenderTypeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.get-command-sender-type"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetCommandSenderType(int p0, nint p1); + } + + public static class SendMessageWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.send-message"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSendMessage(int p0, int p1); + } + + public static class SetSuccessCountWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.set-success-count"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSuccessCount(int p0, int p1); + } + + public static class IsPlayerWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.is-player"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsPlayer(int p0); + } + + public static class IsConsoleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.is-console"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsConsole(int p0); + } + + public static class AsPlayerWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.as-player"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAsPlayer(int p0, nint p1); + } + + public static class PermissionLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.permission-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportPermissionLevel(int p0); + } + + public static class HasPermissionLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.has-permission-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportHasPermissionLevel(int p0, int p1); + } + + public static class HasPermissionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.has-permission"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportHasPermission(int p0, int p1, nint p2, int p3); + } + + public static class PositionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.position"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportPosition(int p0, nint p1); + } + + public static class WorldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportWorld(int p0, nint p1); + } + + public static class GetLocaleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.get-locale"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetLocale(int p0); + } + + public static class ShouldReceiveFeedbackWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.should-receive-feedback"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportShouldReceiveFeedback(int p0); + } + + public static class ShouldBroadcastConsoleToOpsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.should-broadcast-console-to-ops"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportShouldBroadcastConsoleToOps(int p0); + } + + public static class ShouldTrackOutputWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-sender.should-track-output"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportShouldTrackOutput(int p0); + } + + } + + internal static class CommandNode + { + + public static class LiteralWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[static]command-node.literal"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportLiteral(nint p0, int p1); + } + + public static class ArgumentWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[static]command-node.argument"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportArgument(nint p0, int p1, int p2, nint p3, long p4, int p5, long p6); + } + + public static class ThenWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-node.then"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportThen(int p0, int p1); + } + + public static class ExecuteWithHandlerIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-node.execute-with-handler-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportExecuteWithHandlerId(int p0, int p1); + } + + public static class RequireWithHandlerIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command-node.require-with-handler-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRequireWithHandlerId(int p0, int p1); + } + + } + + internal static class Command + { + + public static class ConstructorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[constructor]command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportConstructor(nint p0, int p1, nint p2, int p3); + } + + public static class ThenWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command.then"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportThen(int p0, int p1); + } + + public static class ExecuteWithHandlerIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[method]command.execute-with-handler-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportExecuteWithHandlerId(int p0, int p1); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommonImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommonImportsInterop.cs new file mode 100644 index 0000000..e11ecb6 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.CommonImportsInterop.cs @@ -0,0 +1,12 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class CommonImportsInterop { + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ContextImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ContextImportsInterop.cs new file mode 100644 index 0000000..3ba93da --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ContextImportsInterop.cs @@ -0,0 +1,47 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class ContextImportsInterop { + + internal static class Context + { + + public static class RegisterEventWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[method]context.register-event"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRegisterEvent(int p0, int p1, int p2, int p3, int p4); + } + + public static class RegisterCommandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[method]context.register-command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRegisterCommand(int p0, int p1, nint p2, int p3); + } + + public static class RegisterPermissionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[method]context.register-permission"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRegisterPermission(int p0, nint p1, int p2, nint p3, int p4, int p5, int p6, nint p7, int p8, nint p9); + } + + public static class GetDataFolderWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[method]context.get-data-folder"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetDataFolder(int p0, nint p1); + } + + public static class GetServerWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[method]context.get-server"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetServer(int p0); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EntityImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EntityImportsInterop.cs new file mode 100644 index 0000000..710f42e --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EntityImportsInterop.cs @@ -0,0 +1,12 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class EntityImportsInterop { + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EventImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EventImportsInterop.cs new file mode 100644 index 0000000..ded162c --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.EventImportsInterop.cs @@ -0,0 +1,12 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class EventImportsInterop { + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.GuiImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.GuiImportsInterop.cs new file mode 100644 index 0000000..7d8a3f4 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.GuiImportsInterop.cs @@ -0,0 +1,83 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class GuiImportsInterop { + + internal static class Gui + { + + public static class ConstructorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[constructor]gui"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportConstructor(int p0, int p1); + } + + public static class SetItemWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.set-item"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetItem(int p0, int p1, nint p2, int p3, int p4); + } + + public static class GetItemWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-item"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetItem(int p0, int p1, nint p2); + } + + public static class GetTypeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-type"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetType(int p0); + } + + public static class GetTitleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-title"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetTitle(int p0); + } + + public static class GetSizeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-size"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetSize(int p0); + } + + public static class ClearItemsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.clear-items"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClearItems(int p0); + } + + public static class SetAllowGrabItemsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.set-allow-grab-items"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetAllowGrabItems(int p0, int p1); + } + + public static class GetAllowGrabItemsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-allow-grab-items"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetAllowGrabItems(int p0); + } + + public static class SetAllowPutItemsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.set-allow-put-items"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetAllowPutItems(int p0, int p1); + } + + public static class GetAllowPutItemsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[method]gui.get-allow-put-items"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetAllowPutItems(int p0); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.I18nImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.I18nImportsInterop.cs new file mode 100644 index 0000000..82f1fa3 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.I18nImportsInterop.cs @@ -0,0 +1,24 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class I18nImportsInterop { + + public static class TranslateWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/i18n@0.1.0", EntryPoint = "translate"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportTranslate(nint p0, int p1, int p2, nint p3); + } + + public static class LoadTranslationsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/i18n@0.1.0", EntryPoint = "load-translations"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportLoadTranslations(nint p0, int p1, nint p2, int p3, int p4); + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.cs new file mode 100644 index 0000000..d6d58e6 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.cs @@ -0,0 +1,222 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IBlockEntityImports { + + public class BlockEntityType { + public readonly byte Tag; + private readonly object? value; + + private BlockEntityType(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static BlockEntityType CommandBlockEntity(CommandBlockEntity commandBlockEntity) { + return new BlockEntityType(Tags.CommandBlockEntity, commandBlockEntity); + } + + public CommandBlockEntity AsCommandBlockEntity + { + get + { + if (Tag == Tags.CommandBlockEntity) + return (CommandBlockEntity)value!; + else + throw new global::System.ArgumentException("expected CommandBlockEntity, got " + Tag); + } + } + + public class Tags { + public const byte CommandBlockEntity = 0; + } + } + + public class BlockEntity: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public BlockEntity(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[resource-drop]block-entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe string ResourceLocation() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + BlockEntityImportsInterop.BlockEntity.ResourceLocationWasmInterop.wasmImportResourceLocation(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe (int, int, int) GetPosition() + { + var handle = this.Handle; + + var retArea = stackalloc uint[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + BlockEntityImportsInterop.BlockEntity.GetPositionWasmInterop.wasmImportGetPosition(handle, ptr); + return (new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + + } + + public unsafe uint GetId() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.BlockEntity.GetIdWasmInterop.wasmImportGetId(handle); + return unchecked((uint)(result)); + + } + + public unsafe bool IsDirty() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.BlockEntity.IsDirtyWasmInterop.wasmImportIsDirty(handle); + return (result != 0); + + } + + public unsafe void ClearDirty() + { + var handle = this.Handle; + BlockEntityImportsInterop.BlockEntity.ClearDirtyWasmInterop.wasmImportClearDirty(handle); + + } + + } + + public class CommandBlockEntity: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public CommandBlockEntity(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/block-entity@0.1.0", EntryPoint = "[resource-drop]command-block-entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.BlockEntity GetBlockEntity() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.GetBlockEntityWasmInterop.wasmImportGetBlockEntity(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.BlockEntity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.BlockEntity.THandle(result)); + return resource; + + } + + public unsafe string LastOutput() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + BlockEntityImportsInterop.CommandBlockEntity.LastOutputWasmInterop.wasmImportLastOutput(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe bool TrackOutput() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.TrackOutputWasmInterop.wasmImportTrackOutput(handle); + return (result != 0); + + } + + public unsafe uint SuccessCount() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.SuccessCountWasmInterop.wasmImportSuccessCount(handle); + return unchecked((uint)(result)); + + } + + public unsafe string Command() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + BlockEntityImportsInterop.CommandBlockEntity.CommandWasmInterop.wasmImportCommand(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe bool Auto() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.AutoWasmInterop.wasmImportAuto(handle); + return (result != 0); + + } + + public unsafe bool ConditionMet() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.ConditionMetWasmInterop.wasmImportConditionMet(handle); + return (result != 0); + + } + + public unsafe bool Powered() + { + var handle = this.Handle; + var result = BlockEntityImportsInterop.CommandBlockEntity.PoweredWasmInterop.wasmImportPowered(handle); + return (result != 0); + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.cs new file mode 100644 index 0000000..ac2b0e2 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.cs @@ -0,0 +1,209 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IBossBarImports { + + /** + * Represents the color of a boss bar. + */ + + public enum BossBarColor { + PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE + } + + /** + * Represents the notches/divisions of a boss bar. + */ + + public enum BossBarDivision { + NO_DIVISION, NOTCHES_6, NOTCHES_10, NOTCHES_12, NOTCHES_20 + } + + /** + * Metadata flags that can be toggled on a boss bar. + */ + + public struct BossBarMetadata { + public bool darkenSky; + public bool dragonBar; + public bool createFog; + + public BossBarMetadata(bool darkenSky, bool dragonBar, bool createFog) { + this.darkenSky = darkenSky; + this.dragonBar = dragonBar; + this.createFog = createFog; + } + } + + /** + * Represents a boss bar that can be shown to players. + */ + + public class BossBar: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public BossBar(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/boss-bar@0.1.0", EntryPoint = "[resource-drop]boss-bar"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe BossBar(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent title, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarColor color, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarDivision division) + { + var handle = title.Handle; + title.Handle = 0; + var result = BossBarImportsInterop.BossBar.ConstructorWasmInterop.wasmImportConstructor(handle, (int)color, (int)division); + this.Handle = result; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent GetTitle() + { + var handle = this.Handle; + var result = BossBarImportsInterop.BossBar.GetTitleWasmInterop.wasmImportGetTitle(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + return resource; + + } + + public unsafe void SetTitle(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent title) + { + var handle = this.Handle; + var handle0 = title.Handle; + title.Handle = 0; + BossBarImportsInterop.BossBar.SetTitleWasmInterop.wasmImportSetTitle(handle, handle0); + + } + + public unsafe float GetHealth() + { + var handle = this.Handle; + var result = BossBarImportsInterop.BossBar.GetHealthWasmInterop.wasmImportGetHealth(handle); + return result; + + } + + public unsafe void SetHealth(float health) + { + var handle = this.Handle; + BossBarImportsInterop.BossBar.SetHealthWasmInterop.wasmImportSetHealth(handle, health); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarColor GetColor() + { + var handle = this.Handle; + var result = BossBarImportsInterop.BossBar.GetColorWasmInterop.wasmImportGetColor(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarColor)result; + + } + + public unsafe void SetColor(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarColor color) + { + var handle = this.Handle; + BossBarImportsInterop.BossBar.SetColorWasmInterop.wasmImportSetColor(handle, (int)color); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarDivision GetDivision() + { + var handle = this.Handle; + var result = BossBarImportsInterop.BossBar.GetDivisionWasmInterop.wasmImportGetDivision(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarDivision)result; + + } + + public unsafe void SetDivision(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarDivision division) + { + var handle = this.Handle; + BossBarImportsInterop.BossBar.SetDivisionWasmInterop.wasmImportSetDivision(handle, (int)division); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarMetadata GetMetadata() + { + var handle = this.Handle; + + var retArea = stackalloc byte[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 1); + BossBarImportsInterop.BossBar.GetMetadataWasmInterop.wasmImportGetMetadata(handle, ptr); + return new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarMetadata ( + (new global::System.Span((byte*)ptr + 0, 1)[0] != 0), (new global::System.Span((byte*)ptr + 1, 1)[0] != 0), (new global::System.Span((byte*)ptr + 2, 1)[0] != 0)); + + } + + public unsafe void SetMetadata(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBossBarImports.BossBarMetadata metadata) + { + var handle = this.Handle; + BossBarImportsInterop.BossBar.SetMetadataWasmInterop.wasmImportSetMetadata(handle, (metadata.darkenSky ? 1 : 0), (metadata.dragonBar ? 1 : 0), (metadata.createFog ? 1 : 0)); + + } + + public unsafe void AddPlayer(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player) + { + var handle = this.Handle; + var handle0 = player.Handle; + player.Handle = 0; + BossBarImportsInterop.BossBar.AddPlayerWasmInterop.wasmImportAddPlayer(handle, handle0); + + } + + public unsafe void RemovePlayer(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player) + { + var handle = this.Handle; + var handle0 = player.Handle; + player.Handle = 0; + BossBarImportsInterop.BossBar.RemovePlayerWasmInterop.wasmImportRemovePlayer(handle, handle0); + + } + + public unsafe global::System.Collections.Generic.List GetPlayers() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + BossBarImportsInterop.BossBar.GetPlayersWasmInterop.wasmImportGetPlayers(handle, ptr); + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)ptr + 4), 1)[0]; ++index) { + nint basePtr = new global::System.Span((void*)((byte*)ptr + 0), 1)[0] + (index * 4); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)basePtr + 0), 1)[0])); + + array.Add(resource); + } + + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + return array; + + } + + public unsafe void RemoveAll() + { + var handle = this.Handle; + BossBarImportsInterop.BossBar.RemoveAllWasmInterop.wasmImportRemoveAll(handle); + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.cs new file mode 100644 index 0000000..fc95f86 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.cs @@ -0,0 +1,2236 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface ICommandImports { + + public enum Gamemode { + SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR + } + + public enum BossbarColor { + PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE + } + + public enum BossbarStyle { + NO_DIVISION, NOTCHES6, NOTCHES10, NOTCHES12, NOTCHES20 + } + + public enum SoundCategory { + MASTER, MUSIC, RECORDS, WEATHER, BLOCKS, HOSTILE, NEUTRAL, PLAYERS, AMBIENT, VOICE, UI + } + + public enum EntityAnchor { + FEET, EYES + } + + public class Number { + public readonly byte Tag; + private readonly object? value; + + private Number(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static Number Float64(double float64) { + return new Number(Tags.Float64, float64); + } + + public static Number Float32(float float32) { + return new Number(Tags.Float32, float32); + } + + public static Number Int32(int int32) { + return new Number(Tags.Int32, int32); + } + + public static Number Int64(long int64) { + return new Number(Tags.Int64, int64); + } + + public double AsFloat64 + { + get + { + if (Tag == Tags.Float64) + return (double)value!; + else + throw new global::System.ArgumentException("expected Float64, got " + Tag); + } + } + + public float AsFloat32 + { + get + { + if (Tag == Tags.Float32) + return (float)value!; + else + throw new global::System.ArgumentException("expected Float32, got " + Tag); + } + } + + public int AsInt32 + { + get + { + if (Tag == Tags.Int32) + return (int)value!; + else + throw new global::System.ArgumentException("expected Int32, got " + Tag); + } + } + + public long AsInt64 + { + get + { + if (Tag == Tags.Int64) + return (long)value!; + else + throw new global::System.ArgumentException("expected Int64, got " + Tag); + } + } + + public class Tags { + public const byte Float64 = 0; + public const byte Float32 = 1; + public const byte Int32 = 2; + public const byte Int64 = 3; + } + } + + public class NotInBounds { + public readonly byte Tag; + private readonly object? value; + + private NotInBounds(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static NotInBounds LowerBound((Number, Number) lowerBound) { + return new NotInBounds(Tags.LowerBound, lowerBound); + } + + public static NotInBounds UpperBound((Number, Number) upperBound) { + return new NotInBounds(Tags.UpperBound, upperBound); + } + + public (Number, Number) AsLowerBound + { + get + { + if (Tag == Tags.LowerBound) + return ((Number, Number))value!; + else + throw new global::System.ArgumentException("expected LowerBound, got " + Tag); + } + } + + public (Number, Number) AsUpperBound + { + get + { + if (Tag == Tags.UpperBound) + return ((Number, Number))value!; + else + throw new global::System.ArgumentException("expected UpperBound, got " + Tag); + } + } + + public class Tags { + public const byte LowerBound = 0; + public const byte UpperBound = 1; + } + } + + public class Arg { + public readonly byte Tag; + private readonly object? value; + + private Arg(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static Arg Entities(global::System.Collections.Generic.List entities) { + return new Arg(Tags.Entities, entities); + } + + public static Arg Entity(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity entity) { + return new Arg(Tags.Entity, entity); + } + + public static Arg Players(global::System.Collections.Generic.List players) { + return new Arg(Tags.Players, players); + } + + public static Arg BlockPos((int, int, int) blockPos) { + return new Arg(Tags.BlockPos, blockPos); + } + + public static Arg Pos3d((double, double, double) pos3d) { + return new Arg(Tags.Pos3d, pos3d); + } + + public static Arg Pos2d((double, double) pos2d) { + return new Arg(Tags.Pos2d, pos2d); + } + + public static Arg Rotation((float, bool, float, bool) rotation) { + return new Arg(Tags.Rotation, rotation); + } + + public static Arg GameMode(Gamemode gameMode) { + return new Arg(Tags.GameMode, gameMode); + } + + public static Arg Difficulty(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty difficulty) { + return new Arg(Tags.Difficulty, difficulty); + } + + public static Arg Item(string item) { + return new Arg(Tags.Item, item); + } + + public static Arg ItemPredicate(string itemPredicate) { + return new Arg(Tags.ItemPredicate, itemPredicate); + } + + public static Arg ResourceLocation(string resourceLocation) { + return new Arg(Tags.ResourceLocation, resourceLocation); + } + + public static Arg Block(string block) { + return new Arg(Tags.Block, block); + } + + public static Arg BlockPredicate(string blockPredicate) { + return new Arg(Tags.BlockPredicate, blockPredicate); + } + + public static Arg BossbarColor(BossbarColor bossbarColor) { + return new Arg(Tags.BossbarColor, bossbarColor); + } + + public static Arg BossbarStyle(BossbarStyle bossbarStyle) { + return new Arg(Tags.BossbarStyle, bossbarStyle); + } + + public static Arg Particle(string particle) { + return new Arg(Tags.Particle, particle); + } + + public static Arg Msg(string msg) { + return new Arg(Tags.Msg, msg); + } + + public static Arg TextComponent(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent textComponent) { + return new Arg(Tags.TextComponent, textComponent); + } + + public static Arg Time(int time) { + return new Arg(Tags.Time, time); + } + + public static Arg Num(Result num) { + return new Arg(Tags.Num, num); + } + + public static Arg @bool(bool @bool) { + return new Arg(Tags.@bool, @bool); + } + + public static Arg Simple(string simple) { + return new Arg(Tags.Simple, simple); + } + + public static Arg SoundCategory(SoundCategory soundCategory) { + return new Arg(Tags.SoundCategory, soundCategory); + } + + public static Arg DamageType(string damageType) { + return new Arg(Tags.DamageType, damageType); + } + + public static Arg Effect(string effect) { + return new Arg(Tags.Effect, effect); + } + + public static Arg Enchantment(string enchantment) { + return new Arg(Tags.Enchantment, enchantment); + } + + public static Arg EntityAnchor(EntityAnchor entityAnchor) { + return new Arg(Tags.EntityAnchor, entityAnchor); + } + + public global::System.Collections.Generic.List AsEntities + { + get + { + if (Tag == Tags.Entities) + return (global::System.Collections.Generic.List)value!; + else + throw new global::System.ArgumentException("expected Entities, got " + Tag); + } + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity AsEntity + { + get + { + if (Tag == Tags.Entity) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity)value!; + else + throw new global::System.ArgumentException("expected Entity, got " + Tag); + } + } + + public global::System.Collections.Generic.List AsPlayers + { + get + { + if (Tag == Tags.Players) + return (global::System.Collections.Generic.List)value!; + else + throw new global::System.ArgumentException("expected Players, got " + Tag); + } + } + + public (int, int, int) AsBlockPos + { + get + { + if (Tag == Tags.BlockPos) + return ((int, int, int))value!; + else + throw new global::System.ArgumentException("expected BlockPos, got " + Tag); + } + } + + public (double, double, double) AsPos3d + { + get + { + if (Tag == Tags.Pos3d) + return ((double, double, double))value!; + else + throw new global::System.ArgumentException("expected Pos3d, got " + Tag); + } + } + + public (double, double) AsPos2d + { + get + { + if (Tag == Tags.Pos2d) + return ((double, double))value!; + else + throw new global::System.ArgumentException("expected Pos2d, got " + Tag); + } + } + + public (float, bool, float, bool) AsRotation + { + get + { + if (Tag == Tags.Rotation) + return ((float, bool, float, bool))value!; + else + throw new global::System.ArgumentException("expected Rotation, got " + Tag); + } + } + + public Gamemode AsGameMode + { + get + { + if (Tag == Tags.GameMode) + return (Gamemode)value!; + else + throw new global::System.ArgumentException("expected GameMode, got " + Tag); + } + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty AsDifficulty + { + get + { + if (Tag == Tags.Difficulty) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty)value!; + else + throw new global::System.ArgumentException("expected Difficulty, got " + Tag); + } + } + + public string AsItem + { + get + { + if (Tag == Tags.Item) + return (string)value!; + else + throw new global::System.ArgumentException("expected Item, got " + Tag); + } + } + + public string AsItemPredicate + { + get + { + if (Tag == Tags.ItemPredicate) + return (string)value!; + else + throw new global::System.ArgumentException("expected ItemPredicate, got " + Tag); + } + } + + public string AsResourceLocation + { + get + { + if (Tag == Tags.ResourceLocation) + return (string)value!; + else + throw new global::System.ArgumentException("expected ResourceLocation, got " + Tag); + } + } + + public string AsBlock + { + get + { + if (Tag == Tags.Block) + return (string)value!; + else + throw new global::System.ArgumentException("expected Block, got " + Tag); + } + } + + public string AsBlockPredicate + { + get + { + if (Tag == Tags.BlockPredicate) + return (string)value!; + else + throw new global::System.ArgumentException("expected BlockPredicate, got " + Tag); + } + } + + public BossbarColor AsBossbarColor + { + get + { + if (Tag == Tags.BossbarColor) + return (BossbarColor)value!; + else + throw new global::System.ArgumentException("expected BossbarColor, got " + Tag); + } + } + + public BossbarStyle AsBossbarStyle + { + get + { + if (Tag == Tags.BossbarStyle) + return (BossbarStyle)value!; + else + throw new global::System.ArgumentException("expected BossbarStyle, got " + Tag); + } + } + + public string AsParticle + { + get + { + if (Tag == Tags.Particle) + return (string)value!; + else + throw new global::System.ArgumentException("expected Particle, got " + Tag); + } + } + + public string AsMsg + { + get + { + if (Tag == Tags.Msg) + return (string)value!; + else + throw new global::System.ArgumentException("expected Msg, got " + Tag); + } + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent AsTextComponent + { + get + { + if (Tag == Tags.TextComponent) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent)value!; + else + throw new global::System.ArgumentException("expected TextComponent, got " + Tag); + } + } + + public int AsTime + { + get + { + if (Tag == Tags.Time) + return (int)value!; + else + throw new global::System.ArgumentException("expected Time, got " + Tag); + } + } + + public Result AsNum + { + get + { + if (Tag == Tags.Num) + return (Result)value!; + else + throw new global::System.ArgumentException("expected Num, got " + Tag); + } + } + + public bool AsBool + { + get + { + if (Tag == Tags.@bool) + return (bool)value!; + else + throw new global::System.ArgumentException("expected @bool, got " + Tag); + } + } + + public string AsSimple + { + get + { + if (Tag == Tags.Simple) + return (string)value!; + else + throw new global::System.ArgumentException("expected Simple, got " + Tag); + } + } + + public SoundCategory AsSoundCategory + { + get + { + if (Tag == Tags.SoundCategory) + return (SoundCategory)value!; + else + throw new global::System.ArgumentException("expected SoundCategory, got " + Tag); + } + } + + public string AsDamageType + { + get + { + if (Tag == Tags.DamageType) + return (string)value!; + else + throw new global::System.ArgumentException("expected DamageType, got " + Tag); + } + } + + public string AsEffect + { + get + { + if (Tag == Tags.Effect) + return (string)value!; + else + throw new global::System.ArgumentException("expected Effect, got " + Tag); + } + } + + public string AsEnchantment + { + get + { + if (Tag == Tags.Enchantment) + return (string)value!; + else + throw new global::System.ArgumentException("expected Enchantment, got " + Tag); + } + } + + public EntityAnchor AsEntityAnchor + { + get + { + if (Tag == Tags.EntityAnchor) + return (EntityAnchor)value!; + else + throw new global::System.ArgumentException("expected EntityAnchor, got " + Tag); + } + } + + public class Tags { + public const byte Entities = 0; + public const byte Entity = 1; + public const byte Players = 2; + public const byte BlockPos = 3; + public const byte Pos3d = 4; + public const byte Pos2d = 5; + public const byte Rotation = 6; + public const byte GameMode = 7; + public const byte Difficulty = 8; + public const byte Item = 9; + public const byte ItemPredicate = 10; + public const byte ResourceLocation = 11; + public const byte Block = 12; + public const byte BlockPredicate = 13; + public const byte BossbarColor = 14; + public const byte BossbarStyle = 15; + public const byte Particle = 16; + public const byte Msg = 17; + public const byte TextComponent = 18; + public const byte Time = 19; + public const byte Num = 20; + public const byte @bool = 21; + public const byte Simple = 22; + public const byte SoundCategory = 23; + public const byte DamageType = 24; + public const byte Effect = 25; + public const byte Enchantment = 26; + public const byte EntityAnchor = 27; + } + } + + public class CommandSenderType { + public readonly byte Tag; + private readonly object? value; + + private CommandSenderType(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static CommandSenderType Rcon() { + return new CommandSenderType(Tags.Rcon, null); + } + + public static CommandSenderType Console() { + return new CommandSenderType(Tags.Console, null); + } + + public static CommandSenderType Player(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player) { + return new CommandSenderType(Tags.Player, player); + } + + public static CommandSenderType CommandBlock((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.CommandBlockEntity, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World) commandBlock) { + return new CommandSenderType(Tags.CommandBlock, commandBlock); + } + + public static CommandSenderType Dummy() { + return new CommandSenderType(Tags.Dummy, null); + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player AsPlayer + { + get + { + if (Tag == Tags.Player) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player)value!; + else + throw new global::System.ArgumentException("expected Player, got " + Tag); + } + } + + public (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.CommandBlockEntity, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World) AsCommandBlock + { + get + { + if (Tag == Tags.CommandBlock) + return ((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.CommandBlockEntity, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World))value!; + else + throw new global::System.ArgumentException("expected CommandBlock, got " + Tag); + } + } + + public class Tags { + public const byte Rcon = 0; + public const byte Console = 1; + public const byte Player = 2; + public const byte CommandBlock = 3; + public const byte Dummy = 4; + } + } + + public enum PermissionLevel { + ZERO, ONE, TWO, THREE, FOUR + } + + public enum StringType { + SINGLE_WORD, QUOTABLE, GREEDY + } + + public class ArgumentType { + public readonly byte Tag; + private readonly object? value; + + private ArgumentType(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static ArgumentType @bool() { + return new ArgumentType(Tags.@bool, null); + } + + public static ArgumentType @float((float?, float?) @float) { + return new ArgumentType(Tags.@float, @float); + } + + public static ArgumentType @double((double?, double?) @double) { + return new ArgumentType(Tags.@double, @double); + } + + public static ArgumentType Integer((int?, int?) integer) { + return new ArgumentType(Tags.Integer, integer); + } + + public static ArgumentType @long((long?, long?) @long) { + return new ArgumentType(Tags.@long, @long); + } + + public static ArgumentType @string(StringType @string) { + return new ArgumentType(Tags.@string, @string); + } + + public static ArgumentType Entities() { + return new ArgumentType(Tags.Entities, null); + } + + public static ArgumentType Entity() { + return new ArgumentType(Tags.Entity, null); + } + + public static ArgumentType Players() { + return new ArgumentType(Tags.Players, null); + } + + public static ArgumentType GameProfile() { + return new ArgumentType(Tags.GameProfile, null); + } + + public static ArgumentType BlockPos() { + return new ArgumentType(Tags.BlockPos, null); + } + + public static ArgumentType Position3d() { + return new ArgumentType(Tags.Position3d, null); + } + + public static ArgumentType Position2d() { + return new ArgumentType(Tags.Position2d, null); + } + + public static ArgumentType BlockState() { + return new ArgumentType(Tags.BlockState, null); + } + + public static ArgumentType BlockPredicate() { + return new ArgumentType(Tags.BlockPredicate, null); + } + + public static ArgumentType Item() { + return new ArgumentType(Tags.Item, null); + } + + public static ArgumentType ItemPredicate() { + return new ArgumentType(Tags.ItemPredicate, null); + } + + public static ArgumentType Component() { + return new ArgumentType(Tags.Component, null); + } + + public static ArgumentType Rotation() { + return new ArgumentType(Tags.Rotation, null); + } + + public static ArgumentType ResourceLocation() { + return new ArgumentType(Tags.ResourceLocation, null); + } + + public static ArgumentType EntityAnchor() { + return new ArgumentType(Tags.EntityAnchor, null); + } + + public static ArgumentType Gamemode() { + return new ArgumentType(Tags.Gamemode, null); + } + + public static ArgumentType Difficulty() { + return new ArgumentType(Tags.Difficulty, null); + } + + public static ArgumentType Time(int time) { + return new ArgumentType(Tags.Time, time); + } + + public static ArgumentType Resource(string resource) { + return new ArgumentType(Tags.Resource, resource); + } + + public (float?, float?) AsFloat + { + get + { + if (Tag == Tags.@float) + return ((float?, float?))value!; + else + throw new global::System.ArgumentException("expected @float, got " + Tag); + } + } + + public (double?, double?) AsDouble + { + get + { + if (Tag == Tags.@double) + return ((double?, double?))value!; + else + throw new global::System.ArgumentException("expected @double, got " + Tag); + } + } + + public (int?, int?) AsInteger + { + get + { + if (Tag == Tags.Integer) + return ((int?, int?))value!; + else + throw new global::System.ArgumentException("expected Integer, got " + Tag); + } + } + + public (long?, long?) AsLong + { + get + { + if (Tag == Tags.@long) + return ((long?, long?))value!; + else + throw new global::System.ArgumentException("expected @long, got " + Tag); + } + } + + public StringType AsString + { + get + { + if (Tag == Tags.@string) + return (StringType)value!; + else + throw new global::System.ArgumentException("expected @string, got " + Tag); + } + } + + public int AsTime + { + get + { + if (Tag == Tags.Time) + return (int)value!; + else + throw new global::System.ArgumentException("expected Time, got " + Tag); + } + } + + public string AsResource + { + get + { + if (Tag == Tags.Resource) + return (string)value!; + else + throw new global::System.ArgumentException("expected Resource, got " + Tag); + } + } + + public class Tags { + public const byte @bool = 0; + public const byte @float = 1; + public const byte @double = 2; + public const byte Integer = 3; + public const byte @long = 4; + public const byte @string = 5; + public const byte Entities = 6; + public const byte Entity = 7; + public const byte Players = 8; + public const byte GameProfile = 9; + public const byte BlockPos = 10; + public const byte Position3d = 11; + public const byte Position2d = 12; + public const byte BlockState = 13; + public const byte BlockPredicate = 14; + public const byte Item = 15; + public const byte ItemPredicate = 16; + public const byte Component = 17; + public const byte Rotation = 18; + public const byte ResourceLocation = 19; + public const byte EntityAnchor = 20; + public const byte Gamemode = 21; + public const byte Difficulty = 22; + public const byte Time = 23; + public const byte Resource = 24; + } + } + + public class CommandError { + public readonly byte Tag; + private readonly object? value; + + private CommandError(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static CommandError InvalidConsumption(string? invalidConsumption) { + return new CommandError(Tags.InvalidConsumption, invalidConsumption); + } + + public static CommandError InvalidRequirement() { + return new CommandError(Tags.InvalidRequirement, null); + } + + public static CommandError PermissionDenied() { + return new CommandError(Tags.PermissionDenied, null); + } + + public static CommandError CommandFailed(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent commandFailed) { + return new CommandError(Tags.CommandFailed, commandFailed); + } + + public string? AsInvalidConsumption + { + get + { + if (Tag == Tags.InvalidConsumption) + return (string?)value!; + else + throw new global::System.ArgumentException("expected InvalidConsumption, got " + Tag); + } + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent AsCommandFailed + { + get + { + if (Tag == Tags.CommandFailed) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent)value!; + else + throw new global::System.ArgumentException("expected CommandFailed, got " + Tag); + } + } + + public class Tags { + public const byte InvalidConsumption = 0; + public const byte InvalidRequirement = 1; + public const byte PermissionDenied = 2; + public const byte CommandFailed = 3; + } + } + + public class ConsumedArgs: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public ConsumedArgs(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[resource-drop]consumed-args"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg GetValue(string key) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(key); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc ulong[8]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 8); + CommandImportsInterop.ConsumedArgs.GetValueWasmInterop.wasmImportGetValue(handle, strPtr.ToInt32(), length, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg lifted127; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)ptr + 12), 1)[0]; ++index) { + nint basePtr1 = new global::System.Span((void*)((byte*)ptr + 8), 1)[0] + (index * 4); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity.THandle(new global::System.Span((void*)((byte*)basePtr1 + 0), 1)[0])); + + array.Add(resource); + } + + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Entities(array); + break; + } + case 1: { + var resource4 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity.THandle(new global::System.Span((void*)((byte*)ptr + 8), 1)[0])); + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Entity(resource4); + break; + } + case 2: { + + var array10 = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + for (int index11 = 0; index11 < new global::System.Span((void*)((byte*)ptr + 12), 1)[0]; ++index11) { + nint basePtr8 = new global::System.Span((void*)((byte*)ptr + 8), 1)[0] + (index11 * 4); + var resource9 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)basePtr8 + 0), 1)[0])); + + array10.Add(resource9); + } + + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Players(array10); + break; + } + case 3: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.BlockPos((new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0])); + break; + } + case 4: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Pos3d((new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0], new global::System.Span((void*)((byte*)ptr + 24), 1)[0])); + break; + } + case 5: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Pos2d((new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0])); + break; + } + case 6: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Rotation((new global::System.Span((void*)((byte*)ptr + 8), 1)[0], (new global::System.Span((byte*)ptr + 12, 1)[0] != 0), new global::System.Span((void*)((byte*)ptr + 16), 1)[0], (new global::System.Span((byte*)ptr + 20, 1)[0] != 0))); + break; + } + case 7: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.GameMode((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Gamemode)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + case 8: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Difficulty((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + case 9: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Item(str); + break; + } + case 10: { + + var str28 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.ItemPredicate(str28); + break; + } + case 11: { + + var str31 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.ResourceLocation(str31); + break; + } + case 12: { + + var str34 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Block(str34); + break; + } + case 13: { + + var str37 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.BlockPredicate(str37); + break; + } + case 14: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.BossbarColor((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.BossbarColor)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + case 15: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.BossbarStyle((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.BossbarStyle)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + case 16: { + + var str44 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Particle(str44); + break; + } + case 17: { + + var str47 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Msg(str47); + break; + } + case 18: { + var resource50 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)ptr + 8), 1)[0])); + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.TextComponent(resource50); + break; + } + case 19: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Time(new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + break; + } + case 20: { + + Result lifted108; + + switch (new global::System.Span((byte*)ptr + 8, 1)[0]) { + case 0: { + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number lifted; + + switch (new global::System.Span((byte*)ptr + 16, 1)[0]) { + case 0: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float64(new global::System.Span((void*)((byte*)ptr + 24), 1)[0]); + break; + } + case 1: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float32(new global::System.Span((void*)((byte*)ptr + 24), 1)[0]); + break; + } + case 2: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int32(new global::System.Span((void*)((byte*)ptr + 24), 1)[0]); + break; + } + case 3: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int64(new global::System.Span((void*)((byte*)ptr + 24), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 16, 1)[0]); + } + + lifted108 = Result.Ok(lifted); + break; + } + case 1: { + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.NotInBounds lifted107; + + switch (new global::System.Span((byte*)ptr + 16, 1)[0]) { + case 0: { + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number lifted77; + + switch (new global::System.Span((byte*)ptr + 24, 1)[0]) { + case 0: { + + lifted77 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float64(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 1: { + + lifted77 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float32(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 2: { + + lifted77 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int32(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 3: { + + lifted77 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int64(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 24, 1)[0]); + } + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number lifted86; + + switch (new global::System.Span((byte*)ptr + 40, 1)[0]) { + case 0: { + + lifted86 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float64(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 1: { + + lifted86 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float32(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 2: { + + lifted86 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int32(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 3: { + + lifted86 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int64(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 40, 1)[0]); + } + + lifted107 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.NotInBounds.LowerBound((lifted77, lifted86)); + break; + } + case 1: { + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number lifted97; + + switch (new global::System.Span((byte*)ptr + 24, 1)[0]) { + case 0: { + + lifted97 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float64(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 1: { + + lifted97 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float32(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 2: { + + lifted97 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int32(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + case 3: { + + lifted97 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int64(new global::System.Span((void*)((byte*)ptr + 32), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 24, 1)[0]); + } + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number lifted106; + + switch (new global::System.Span((byte*)ptr + 40, 1)[0]) { + case 0: { + + lifted106 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float64(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 1: { + + lifted106 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Float32(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 2: { + + lifted106 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int32(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + case 3: { + + lifted106 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Number.Int64(new global::System.Span((void*)((byte*)ptr + 48), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 40, 1)[0]); + } + + lifted107 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.NotInBounds.UpperBound((lifted97, lifted106)); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 16, 1)[0]); + } + + lifted108 = Result.Err(lifted107); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 8, 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Num(lifted108); + break; + } + case 21: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.@bool((new global::System.Span((byte*)ptr + 8, 1)[0] != 0)); + break; + } + case 22: { + + var str113 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Simple(str113); + break; + } + case 23: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.SoundCategory((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.SoundCategory)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + case 24: { + + var str118 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.DamageType(str118); + break; + } + case 25: { + + var str121 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Effect(str121); + break; + } + case 26: { + + var str124 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 12), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + } + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.Enchantment(str124); + break; + } + case 27: { + + lifted127 = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Arg.EntityAnchor((global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.EntityAnchor)new global::System.Span((byte*)ptr + 8, 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 0, 1)[0]); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return lifted127; + + } + + } + + public class CommandSender: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public CommandSender(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[resource-drop]command-sender"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType GetCommandSenderType() + { + var handle = this.Handle; + + var retArea = stackalloc uint[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + CommandImportsInterop.CommandSender.GetCommandSenderTypeWasmInterop.wasmImportGetCommandSenderType(handle, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType.Rcon(); + break; + } + case 1: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType.Console(); + break; + } + case 2: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType.Player(resource); + break; + } + case 3: { + var resource6 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.CommandBlockEntity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IBlockEntityImports.CommandBlockEntity.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + var resource7 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)ptr + 8), 1)[0])); + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType.CommandBlock((resource6, resource7)); + break; + } + case 4: { + + lifted = global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandSenderType.Dummy(); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 0, 1)[0]); + } + return lifted; + + } + + public unsafe void SendMessage(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + CommandImportsInterop.CommandSender.SendMessageWasmInterop.wasmImportSendMessage(handle, handle0); + + } + + public unsafe void SetSuccessCount(int count) + { + var handle = this.Handle; + CommandImportsInterop.CommandSender.SetSuccessCountWasmInterop.wasmImportSetSuccessCount(handle, count); + + } + + public unsafe bool IsPlayer() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.IsPlayerWasmInterop.wasmImportIsPlayer(handle); + return (result != 0); + + } + + public unsafe bool IsConsole() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.IsConsoleWasmInterop.wasmImportIsConsole(handle); + return (result != 0); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? AsPlayer() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + CommandImportsInterop.CommandSender.AsPlayerWasmInterop.wasmImportAsPlayer(handle, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.PermissionLevel PermissionLevel() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.PermissionLevelWasmInterop.wasmImportPermissionLevel(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.PermissionLevel)result; + + } + + public unsafe bool HasPermissionLevel(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.PermissionLevel level) + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.HasPermissionLevelWasmInterop.wasmImportHasPermissionLevel(handle, (int)level); + return (result != 0); + + } + + public unsafe bool HasPermission(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server server, string node) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + var handle0 = server.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var result = CommandImportsInterop.CommandSender.HasPermissionWasmInterop.wasmImportHasPermission(handle, handle0, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return (result != 0); + + } + + public unsafe (double, double, double)? Position() + { + var handle = this.Handle; + + var retArea = stackalloc ulong[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 8); + CommandImportsInterop.CommandSender.PositionWasmInterop.wasmImportPosition(handle, ptr); + + (double, double, double)? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + lifted = (new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0], new global::System.Span((void*)((byte*)ptr + 24), 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World? World() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + CommandImportsInterop.CommandSender.WorldWasmInterop.wasmImportWorld(handle, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale GetLocale() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.GetLocaleWasmInterop.wasmImportGetLocale(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale)result; + + } + + public unsafe bool ShouldReceiveFeedback() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.ShouldReceiveFeedbackWasmInterop.wasmImportShouldReceiveFeedback(handle); + return (result != 0); + + } + + public unsafe bool ShouldBroadcastConsoleToOps() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.ShouldBroadcastConsoleToOpsWasmInterop.wasmImportShouldBroadcastConsoleToOps(handle); + return (result != 0); + + } + + public unsafe bool ShouldTrackOutput() + { + var handle = this.Handle; + var result = CommandImportsInterop.CommandSender.ShouldTrackOutputWasmInterop.wasmImportShouldTrackOutput(handle); + return (result != 0); + + } + + } + + public class CommandNode: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public CommandNode(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[resource-drop]command-node"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public static unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode Literal(string name) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var result = CommandImportsInterop.CommandNode.LiteralWasmInterop.wasmImportLiteral(strPtr.ToInt32(), length); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode.THandle(result)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return resource; + + } + + public static unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode Argument(string name, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.ArgumentType argType) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + int lowered139; + nint lowered140; + long lowered141; + int lowered142; + long lowered143; + + switch (argType.Tag) { + case 0: { + + lowered139 = 0; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 1: { + (float?, float?) payload2 = argType.AsFloat; + + int lowered; + float lowered9; + + if (payload2.Item1 != null) { + var payload8 = (float) payload2.Item1; + + lowered = 1; + lowered9 = payload8; + + } else { + + lowered = 0; + lowered9 = 0.0F; + + } + + int lowered16; + float lowered17; + + if (payload2.Item2 != null) { + var payload15 = (float) payload2.Item2; + + lowered16 = 1; + lowered17 = payload15; + + } else { + + lowered16 = 0; + lowered17 = 0.0F; + + } + + lowered139 = 1; + lowered140 = lowered; + lowered141 = global::System.BitConverter.SingleToInt32Bits(lowered9); + lowered142 = lowered16; + lowered143 = global::System.BitConverter.SingleToInt32Bits(lowered17); + + break; + } + case 2: { + (double?, double?) payload20 = argType.AsDouble; + + int lowered27; + double lowered28; + + if (payload20.Item1 != null) { + var payload26 = (double) payload20.Item1; + + lowered27 = 1; + lowered28 = payload26; + + } else { + + lowered27 = 0; + lowered28 = 0.0D; + + } + + int lowered35; + double lowered36; + + if (payload20.Item2 != null) { + var payload34 = (double) payload20.Item2; + + lowered35 = 1; + lowered36 = payload34; + + } else { + + lowered35 = 0; + lowered36 = 0.0D; + + } + + lowered139 = 2; + lowered140 = lowered27; + lowered141 = global::System.BitConverter.DoubleToInt64Bits(lowered28); + lowered142 = lowered35; + lowered143 = global::System.BitConverter.DoubleToInt64Bits(lowered36); + + break; + } + case 3: { + (int?, int?) payload39 = argType.AsInteger; + + int lowered46; + int lowered47; + + if (payload39.Item1 != null) { + var payload45 = (int) payload39.Item1; + + lowered46 = 1; + lowered47 = payload45; + + } else { + + lowered46 = 0; + lowered47 = 0; + + } + + int lowered54; + int lowered55; + + if (payload39.Item2 != null) { + var payload53 = (int) payload39.Item2; + + lowered54 = 1; + lowered55 = payload53; + + } else { + + lowered54 = 0; + lowered55 = 0; + + } + + lowered139 = 3; + lowered140 = lowered46; + lowered141 = (long) (lowered47); + lowered142 = lowered54; + lowered143 = (long) (lowered55); + + break; + } + case 4: { + (long?, long?) payload58 = argType.AsLong; + + int lowered65; + long lowered66; + + if (payload58.Item1 != null) { + var payload64 = (long) payload58.Item1; + + lowered65 = 1; + lowered66 = payload64; + + } else { + + lowered65 = 0; + lowered66 = 0L; + + } + + int lowered73; + long lowered74; + + if (payload58.Item2 != null) { + var payload72 = (long) payload58.Item2; + + lowered73 = 1; + lowered74 = payload72; + + } else { + + lowered73 = 0; + lowered74 = 0L; + + } + + lowered139 = 4; + lowered140 = lowered65; + lowered141 = lowered66; + lowered142 = lowered73; + lowered143 = lowered74; + + break; + } + case 5: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.StringType payload77 = argType.AsString; + + lowered139 = 5; + lowered140 = (int)payload77; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 6: { + + lowered139 = 6; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 7: { + + lowered139 = 7; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 8: { + + lowered139 = 8; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 9: { + + lowered139 = 9; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 10: { + + lowered139 = 10; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 11: { + + lowered139 = 11; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 12: { + + lowered139 = 12; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 13: { + + lowered139 = 13; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 14: { + + lowered139 = 14; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 15: { + + lowered139 = 15; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 16: { + + lowered139 = 16; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 17: { + + lowered139 = 17; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 18: { + + lowered139 = 18; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 19: { + + lowered139 = 19; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 20: { + + lowered139 = 20; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 21: { + + lowered139 = 21; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 22: { + + lowered139 = 22; + lowered140 = 0; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 23: { + int payload131 = argType.AsTime; + + lowered139 = 23; + lowered140 = payload131; + lowered141 = 0L; + lowered142 = 0; + lowered143 = 0L; + + break; + } + case 24: { + string payload134 = argType.AsResource; + + var utf8Bytes136 = global::System.Text.Encoding.UTF8.GetBytes(payload134); + var length137 = utf8Bytes136.Length; + var gcHandle138 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes136, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr135 = gcHandle138.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle138.Free()); + + lowered139 = 24; + lowered140 = strPtr135.ToInt32(); + lowered141 = (long) (length137); + lowered142 = 0; + lowered143 = 0L; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + argType); + } + var result = CommandImportsInterop.CommandNode.ArgumentWasmInterop.wasmImportArgument(strPtr.ToInt32(), length, lowered139, lowered140, lowered141, lowered142, lowered143); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode.THandle(result)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return resource; + + } + + public unsafe void Then(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode node) + { + var handle = this.Handle; + var handle0 = node.Handle; + node.Handle = 0; + CommandImportsInterop.CommandNode.ThenWasmInterop.wasmImportThen(handle, handle0); + + } + + public unsafe void ExecuteWithHandlerId(uint handlerId) + { + var handle = this.Handle; + CommandImportsInterop.CommandNode.ExecuteWithHandlerIdWasmInterop.wasmImportExecuteWithHandlerId(handle, unchecked((int)(handlerId))); + + } + + public unsafe void RequireWithHandlerId(uint handlerId) + { + var handle = this.Handle; + CommandImportsInterop.CommandNode.RequireWithHandlerIdWasmInterop.wasmImportRequireWithHandlerId(handle, unchecked((int)(handlerId))); + + } + + } + + public class Command: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Command(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/command@0.1.0", EntryPoint = "[resource-drop]command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe Command(global::System.Collections.Generic.List names, string description) + { + var cleanups = new global::System.Collections.Generic.List(); + + void* address; + if ((8 * names.Count) < 1024) { + var retArea = stackalloc uint[2 * names.Count + 1]; + address = MemoryHelper.AlignStackPtr(retArea, 4); + } + else + { + var bufferSize = 8 * (nuint)names.Count; + address = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize, 4); + cleanups.Add(() => global::System.Runtime.InteropServices.NativeMemory.AlignedFree(address)); + } + + for (int index = 0; index < names.Count; ++index) { + string element = names[index]; + int basePtr = (int)address + (index * 8); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(element); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + new global::System.Span((void*)((byte*)basePtr + 4), 1)[0] = length; + new global::System.Span((void*)((byte*)basePtr + 0), 1)[0] = (nint)strPtr.ToInt32(); + + } + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(description); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + var result = CommandImportsInterop.Command.ConstructorWasmInterop.wasmImportConstructor((int)address, names.Count, strPtr0.ToInt32(), length2); + this.Handle = result; + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void Then(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.CommandNode node) + { + var handle = this.Handle; + var handle0 = node.Handle; + node.Handle = 0; + CommandImportsInterop.Command.ThenWasmInterop.wasmImportThen(handle, handle0); + + } + + public unsafe void ExecuteWithHandlerId(uint handlerId) + { + var handle = this.Handle; + CommandImportsInterop.Command.ExecuteWithHandlerIdWasmInterop.wasmImportExecuteWithHandlerId(handle, unchecked((int)(handlerId))); + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.cs new file mode 100644 index 0000000..ec37c12 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.cs @@ -0,0 +1,105 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface ICommonImports { + + /** + * Represents the hands of a player. + */ + + public enum Hand { + LEFT, RIGHT + } + + /** + * Represents the game modes available in Minecraft. + */ + + public enum GameMode { + SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR + } + + /** + * The 16 base Minecraft colors. + */ + + public enum NamedColor { + BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE + } + + /** + * An RGB color represented by its red, green, and blue components. + */ + + public struct RgbColor { + public byte r; + public byte g; + public byte b; + + public RgbColor(byte r, byte g, byte b) { + this.r = r; + this.g = g; + this.b = b; + } + } + + /** + * An ARGB color with alpha (transparency) channel. + */ + + public struct ArgbColor { + public byte a; + public byte r; + public byte g; + public byte b; + + public ArgbColor(byte a, byte r, byte g, byte b) { + this.a = a; + this.r = r; + this.g = g; + this.b = b; + } + } + + /** + * Represents a stack of items with its type and count. + */ + + public struct ItemStack { + public string registryKey; + public byte count; + + public ItemStack(string registryKey, byte count) { + this.registryKey = registryKey; + this.count = count; + } + } + + /** + * Represents the type of click interaction in a GUI. + */ + + public enum ClickType { + LEFT, RIGHT, SHIFT_LEFT, SHIFT_RIGHT, MIDDLE, DROP, CONTROL_DROP, DOUBLE_CLICK, NUMBER_KEY, UNKNOWN + } + + /** + * Represents the various poses an entity can be in. + */ + + public enum EntityPose { + STANDING, FALL_FLYING, SLEEPING, SWIMMING, SPIN_ATTACK, CROUCHING, LONG_JUMPING, DYING, CROAKING, USING_TONGUE, SITTING, ROARING, SNIFFING, EMERGING, DIGGING, SLIDING, SHOOTING, INHALING + } + + /** + * All Minecraft-supported locales. + */ + + public enum Locale { + AF_ZA, AR_SA, AST_ES, AZ_AZ, BA_RU, BAR, BE_BY, BG_BG, BR_FR, BRB, BS_BA, CA_ES, CS_CZ, CY_GB, DA_DK, DE_AT, DE_CH, DE_DE, EL_GR, EN_AU, EN_CA, EN_GB, EN_NZ, EN_PT, EN_UD, EN_US, ENP, ENWS, EO_UY, ES_AR, ES_CL, ES_EC, ES_ES, ES_MX, ES_UY, ES_VE, ESAN, ET_EE, EU_ES, FA_IR, FI_FI, FIL_PH, FO_FO, FR_CA, FR_FR, FRA_DE, FUR_IT, FY_NL, GA_IE, GD_GB, GL_ES, HAW_US, HE_IL, HI_IN, HR_HR, HU_HU, HY_AM, ID_ID, IG_NG, IO_EN, IS_IS, ISV, IT_IT, JA_JP, JBO_EN, KA_GE, KK_KZ, KN_IN, KO_KR, KSH, KW_GB, LA_LA, LB_LU, LI_LI, LMO, LO_LA, LOL_US, LT_LT, LV_LV, LZH, MK_MK, MN_MN, MS_MY, MT_MT, NAH, NDS_DE, NL_BE, NL_NL, NN_NO, NO_NO, OC_FR, OVD, PL_PL, PT_BR, PT_PT, QYA_AA, RO_RO, RPR, RU_RU, RY_UA, SAH_SAH, SE_NO, SK_SK, SL_SI, SO_SO, SQ_AL, SR_CS, SR_SP, SV_SE, SXU, SZL, TA_IN, TH_TH, TL_PH, TLH_AA, TOK, TR_TR, TT_RU, UK_UA, VAL_ES, VEC_IT, VI_VN, YI_DE, YO_NG, ZH_CN, ZH_HK, ZH_TW, ZLM_ARAB + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.cs new file mode 100644 index 0000000..1bb6d5a --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IContextImports.cs @@ -0,0 +1,212 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IContextImports { + + /** + * A contextual handle for plugin-related operations. + */ + + public class Context: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Context(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/context@0.1.0", EntryPoint = "[resource-drop]context"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe void RegisterEvent(uint handlerId, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.EventType eventType, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.EventPriority eventPriority, bool blocking) + { + var handle = this.Handle; + ContextImportsInterop.Context.RegisterEventWasmInterop.wasmImportRegisterEvent(handle, unchecked((int)(handlerId)), (int)eventType, (int)eventPriority, (blocking ? 1 : 0)); + + } + + public unsafe void RegisterCommand(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommandImports.Command command, string permission) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + var handle0 = command.Handle; + command.Handle = 0; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(permission); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + ContextImportsInterop.Context.RegisterCommandWasmInterop.wasmImportRegisterCommand(handle, handle0, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void RegisterPermission(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.Permission permission) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(permission.node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(permission.description); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + + int lowered; + int lowered10; + + switch (permission.@default.Tag) { + case 0: { + + lowered = 0; + lowered10 = 0; + + break; + } + case 1: { + + lowered = 1; + lowered10 = 0; + + break; + } + case 2: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.PermissionLevel payload9 = permission.@default.AsOp; + + lowered = 2; + lowered10 = (int)payload9; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + permission.@default); + } + + void* address; + if ((12 * permission.children.Count) < 1024) { + var retArea = stackalloc uint[3 * permission.children.Count + 1]; + address = MemoryHelper.AlignStackPtr(retArea, 4); + } + else + { + var bufferSize = 12 * (nuint)permission.children.Count; + address = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize, 4); + cleanups.Add(() => global::System.Runtime.InteropServices.NativeMemory.AlignedFree(address)); + } + + for (int index = 0; index < permission.children.Count; ++index) { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.PermissionChild element11 = permission.children[index]; + int basePtr12 = (int)address + (index * 12); + + var utf8Bytes14 = global::System.Text.Encoding.UTF8.GetBytes(element11.node); + var length15 = utf8Bytes14.Length; + var gcHandle16 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes14, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr13 = gcHandle16.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle16.Free()); + new global::System.Span((void*)((byte*)basePtr12 + 4), 1)[0] = length15; + new global::System.Span((void*)((byte*)basePtr12 + 0), 1)[0] = (nint)strPtr13.ToInt32(); + *(byte*)(basePtr12 + 8) = (byte)(element11.value ? 1 : 0); + + } + + var retArea17 = stackalloc uint[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea17, 4); + ContextImportsInterop.Context.RegisterPermissionWasmInterop.wasmImportRegisterPermission(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2, lowered, lowered10, (int)address, permission.children.Count, ptr); + + Result lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + + lifted = Result.Ok(new global::PluginWorld.None()); + break; + } + case 1: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 8), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + } + + lifted = Result.Err(str); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant:" + new global::System.Span((byte*)ptr + 0, 1)[0]); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + if (lifted.IsOk) + { + var tmp = lifted.AsOk; + return ; + } + else + { + throw new WitException(lifted.AsErr!, 0); + } + + } + + public unsafe string GetDataFolder() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ContextImportsInterop.Context.GetDataFolderWasmInterop.wasmImportGetDataFolder(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server GetServer() + { + var handle = this.Handle; + var result = ContextImportsInterop.Context.GetServerWasmInterop.wasmImportGetServer(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Server.THandle(result)); + return resource; + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.cs new file mode 100644 index 0000000..1bef463 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IEventImports.cs @@ -0,0 +1,1020 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IEventImports { + + public enum EventPriority { + HIGHEST, HIGH, NORMAL, LOW, LOWEST + } + + public struct PlayerJoinEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent joinMessage; + public bool cancelled; + + public PlayerJoinEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent joinMessage, bool cancelled) { + this.player = player; + this.joinMessage = joinMessage; + this.cancelled = cancelled; + } + } + + public struct PlayerLeaveEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent leaveMessage; + public bool cancelled; + + public PlayerLeaveEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent leaveMessage, bool cancelled) { + this.player = player; + this.leaveMessage = leaveMessage; + this.cancelled = cancelled; + } + } + + public struct PlayerLoginEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent kickMessage; + public bool cancelled; + + public PlayerLoginEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent kickMessage, bool cancelled) { + this.player = player; + this.kickMessage = kickMessage; + this.cancelled = cancelled; + } + } + + public struct PlayerChatEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string message; + public global::System.Collections.Generic.List recipients; + public bool cancelled; + + public PlayerChatEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string message, global::System.Collections.Generic.List recipients, bool cancelled) { + this.player = player; + this.message = message; + this.recipients = recipients; + this.cancelled = cancelled; + } + } + + public struct PlayerCommandSendEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string command; + public bool cancelled; + + public PlayerCommandSendEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string command, bool cancelled) { + this.player = player; + this.command = command; + this.cancelled = cancelled; + } + } + + public struct PlayerPermissionCheckEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string permission; + public bool permissionResult; + + public PlayerPermissionCheckEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string permission, bool permissionResult) { + this.player = player; + this.permission = permission; + this.permissionResult = permissionResult; + } + } + + public struct PlayerMoveEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public (double, double, double) fromPosition; + public (double, double, double) toPosition; + public bool cancelled; + + public PlayerMoveEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, (double, double, double) fromPosition, (double, double, double) toPosition, bool cancelled) { + this.player = player; + this.fromPosition = fromPosition; + this.toPosition = toPosition; + this.cancelled = cancelled; + } + } + + public struct PlayerTeleportEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public (double, double, double) fromPosition; + public (double, double, double) toPosition; + public bool cancelled; + + public PlayerTeleportEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, (double, double, double) fromPosition, (double, double, double) toPosition, bool cancelled) { + this.player = player; + this.fromPosition = fromPosition; + this.toPosition = toPosition; + this.cancelled = cancelled; + } + } + + public struct PlayerChangeWorldEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World previousWorld; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World newWorld; + public (double, double, double) position; + public float yaw; + public float pitch; + public bool cancelled; + + public PlayerChangeWorldEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World previousWorld, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World newWorld, (double, double, double) position, float yaw, float pitch, bool cancelled) { + this.player = player; + this.previousWorld = previousWorld; + this.newWorld = newWorld; + this.position = position; + this.yaw = yaw; + this.pitch = pitch; + this.cancelled = cancelled; + } + } + + public struct PlayerExpChangeEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public int amount; + + public PlayerExpChangeEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, int amount) { + this.player = player; + this.amount = amount; + } + } + + public struct PlayerItemHeldEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public byte previousSlot; + public byte newSlot; + public bool cancelled; + + public PlayerItemHeldEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, byte previousSlot, byte newSlot, bool cancelled) { + this.player = player; + this.previousSlot = previousSlot; + this.newSlot = newSlot; + this.cancelled = cancelled; + } + } + + public struct PlayerChangedMainHandEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand mainHand; + + public PlayerChangedMainHandEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand mainHand) { + this.player = player; + this.mainHand = mainHand; + } + } + + public struct PlayerGamemodeChangeEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode previousGamemode; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode newGamemode; + public bool cancelled; + + public PlayerGamemodeChangeEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode previousGamemode, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode newGamemode, bool cancelled) { + this.player = player; + this.previousGamemode = previousGamemode; + this.newGamemode = newGamemode; + this.cancelled = cancelled; + } + } + + public struct PlayerCustomPayloadEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string channel; + public byte[] data; + + public PlayerCustomPayloadEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string channel, byte[] data) { + this.player = player; + this.channel = channel; + this.data = data; + } + } + + public enum PlayerFishState { + FISHING, CAUGHT_FISH, CAUGHT_ENTITY, IN_GROUND, FAILED_ATTEMPT, REEL_IN, BITE + } + + public struct PlayerFishEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string? caughtUuid; + public string caughtType; + public string hookUuid; + public PlayerFishState state; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand hand; + public int expToDrop; + public bool cancelled; + + public PlayerFishEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string? caughtUuid, string caughtType, string hookUuid, PlayerFishState state, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand hand, int expToDrop, bool cancelled) { + this.player = player; + this.caughtUuid = caughtUuid; + this.caughtType = caughtType; + this.hookUuid = hookUuid; + this.state = state; + this.hand = hand; + this.expToDrop = expToDrop; + this.cancelled = cancelled; + } + } + + public struct PlayerEggThrowEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string eggUuid; + public bool hatching; + public byte numHatches; + public string hatchingType; + public bool cancelled; + + public PlayerEggThrowEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string eggUuid, bool hatching, byte numHatches, string hatchingType, bool cancelled) { + this.player = player; + this.eggUuid = eggUuid; + this.hatching = hatching; + this.numHatches = numHatches; + this.hatchingType = hatchingType; + this.cancelled = cancelled; + } + } + + public enum EntityInteractionAction { + INTERACT, ATTACK, INTERACT_AT + } + + public enum InteractAction { + LEFT_CLICK_BLOCK, LEFT_CLICK_AIR, RIGHT_CLICK_AIR, RIGHT_CLICK_BLOCK + } + + public struct PlayerInteractEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public InteractAction action; + public (int, int, int)? clickedPos; + public string block; + public bool cancelled; + + public PlayerInteractEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, InteractAction action, (int, int, int)? clickedPos, string block, bool cancelled) { + this.player = player; + this.action = action; + this.clickedPos = clickedPos; + this.block = block; + this.cancelled = cancelled; + } + } + + public struct PlayerToggleSneakEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public bool isSneaking; + public bool cancelled; + + public PlayerToggleSneakEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, bool isSneaking, bool cancelled) { + this.player = player; + this.isSneaking = isSneaking; + this.cancelled = cancelled; + } + } + + public struct PlayerToggleFlightEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public bool isFlying; + public bool cancelled; + + public PlayerToggleFlightEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, bool isFlying, bool cancelled) { + this.player = player; + this.isFlying = isFlying; + this.cancelled = cancelled; + } + } + + public struct PlayerToggleSprintEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public bool isSprinting; + public bool cancelled; + + public PlayerToggleSprintEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, bool isSprinting, bool cancelled) { + this.player = player; + this.isSprinting = isSprinting; + this.cancelled = cancelled; + } + } + + public struct PlayerInteractUnknownEntityEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public int entityId; + public EntityInteractionAction action; + public bool cancelled; + + public PlayerInteractUnknownEntityEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, int entityId, EntityInteractionAction action, bool cancelled) { + this.player = player; + this.entityId = entityId; + this.action = action; + this.cancelled = cancelled; + } + } + + public struct InventoryClickEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string? windowType; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ClickType clickType; + public short slot; + public short rawSlot; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? clickedItem; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? cursor; + public int hotbarButton; + public bool cancelled; + + public InventoryClickEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string? windowType, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ClickType clickType, short slot, short rawSlot, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? clickedItem, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? cursor, int hotbarButton, bool cancelled) { + this.player = player; + this.windowType = windowType; + this.clickType = clickType; + this.slot = slot; + this.rawSlot = rawSlot; + this.clickedItem = clickedItem; + this.cursor = cursor; + this.hotbarButton = hotbarButton; + this.cancelled = cancelled; + } + } + + public struct InventoryCloseEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string? windowType; + + public InventoryCloseEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string? windowType) { + this.player = player; + this.windowType = windowType; + } + } + + public struct BlockRedstoneEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld; + public ushort stateId; + public (int, int, int) blockPosition; + public int oldCurrent; + public int newCurrent; + public bool cancelled; + + public BlockRedstoneEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld, ushort stateId, (int, int, int) blockPosition, int oldCurrent, int newCurrent, bool cancelled) { + this.targetWorld = targetWorld; + this.stateId = stateId; + this.blockPosition = blockPosition; + this.oldCurrent = oldCurrent; + this.newCurrent = newCurrent; + this.cancelled = cancelled; + } + } + + public struct BlockBreakEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? player; + public string block; + public (int, int, int) blockPosition; + public uint exp; + public bool shouldDrop; + public bool cancelled; + + public BlockBreakEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? player, string block, (int, int, int) blockPosition, uint exp, bool shouldDrop, bool cancelled) { + this.player = player; + this.block = block; + this.blockPosition = blockPosition; + this.exp = exp; + this.shouldDrop = shouldDrop; + this.cancelled = cancelled; + } + } + + public struct BlockBurnEventData { + public string ignitingBlock; + public string block; + public bool cancelled; + + public BlockBurnEventData(string ignitingBlock, string block, bool cancelled) { + this.ignitingBlock = ignitingBlock; + this.block = block; + this.cancelled = cancelled; + } + } + + public struct BlockCanBuildEventData { + public string blockToBuild; + public bool buildable; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string block; + public bool cancelled; + + public BlockCanBuildEventData(string blockToBuild, bool buildable, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string block, bool cancelled) { + this.blockToBuild = blockToBuild; + this.buildable = buildable; + this.player = player; + this.block = block; + this.cancelled = cancelled; + } + } + + public struct BlockGrowEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld; + public string oldBlock; + public ushort oldStateId; + public string newBlock; + public ushort newStateId; + public (int, int, int) blockPosition; + public bool cancelled; + + public BlockGrowEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld, string oldBlock, ushort oldStateId, string newBlock, ushort newStateId, (int, int, int) blockPosition, bool cancelled) { + this.targetWorld = targetWorld; + this.oldBlock = oldBlock; + this.oldStateId = oldStateId; + this.newBlock = newBlock; + this.newStateId = newStateId; + this.blockPosition = blockPosition; + this.cancelled = cancelled; + } + } + + public struct BlockPlaceEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player; + public string blockPlaced; + public string blockPlacedAgainst; + public (int, int, int) blockPosition; + public bool canBuild; + public bool cancelled; + + public BlockPlaceEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player, string blockPlaced, string blockPlacedAgainst, (int, int, int) blockPosition, bool canBuild, bool cancelled) { + this.player = player; + this.blockPlaced = blockPlaced; + this.blockPlacedAgainst = blockPlacedAgainst; + this.blockPosition = blockPosition; + this.canBuild = canBuild; + this.cancelled = cancelled; + } + } + + public struct ServerCommandEventData { + public string command; + public bool cancelled; + + public ServerCommandEventData(string command, bool cancelled) { + this.command = command; + this.cancelled = cancelled; + } + } + + public struct SpawnChangeEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld; + public (int, int, int) previousPosition; + public float previousYaw; + public float previousPitch; + public (int, int, int) newPosition; + public float newYaw; + public float newPitch; + + public SpawnChangeEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World targetWorld, (int, int, int) previousPosition, float previousYaw, float previousPitch, (int, int, int) newPosition, float newYaw, float newPitch) { + this.targetWorld = targetWorld; + this.previousPosition = previousPosition; + this.previousYaw = previousYaw; + this.previousPitch = previousPitch; + this.newPosition = newPosition; + this.newYaw = newYaw; + this.newPitch = newPitch; + } + } + + public struct ServerBroadcastEventData { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent message; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent sender; + public bool cancelled; + + public ServerBroadcastEventData(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent message, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent sender, bool cancelled) { + this.message = message; + this.sender = sender; + this.cancelled = cancelled; + } + } + + public enum EventType { + PLAYER_JOIN_EVENT, PLAYER_LEAVE_EVENT, PLAYER_LOGIN_EVENT, PLAYER_CHAT_EVENT, PLAYER_COMMAND_SEND_EVENT, PLAYER_PERMISSION_CHECK_EVENT, PLAYER_MOVE_EVENT, PLAYER_TELEPORT_EVENT, PLAYER_CHANGE_WORLD_EVENT, PLAYER_EXP_CHANGE_EVENT, PLAYER_ITEM_HELD_EVENT, PLAYER_CHANGED_MAIN_HAND_EVENT, PLAYER_GAMEMODE_CHANGE_EVENT, PLAYER_CUSTOM_PAYLOAD_EVENT, PLAYER_FISH_EVENT, PLAYER_EGG_THROW_EVENT, PLAYER_INTERACT_UNKNOWN_ENTITY_EVENT, PLAYER_INTERACT_EVENT, PLAYER_TOGGLE_SNEAK_EVENT, PLAYER_TOGGLE_FLIGHT_EVENT, PLAYER_TOGGLE_SPRINT_EVENT, INVENTORY_CLICK_EVENT, INVENTORY_CLOSE_EVENT, BLOCK_REDSTONE_EVENT, BLOCK_BREAK_EVENT, BLOCK_BURN_EVENT, BLOCK_CAN_BUILD_EVENT, BLOCK_GROW_EVENT, BLOCK_PLACE_EVENT, SERVER_COMMAND_EVENT, SPAWN_CHANGE_EVENT, SERVER_BROADCAST_EVENT + } + + public class Event { + public readonly byte Tag; + private readonly object? value; + + private Event(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static Event PlayerJoinEvent(PlayerJoinEventData playerJoinEvent) { + return new Event(Tags.PlayerJoinEvent, playerJoinEvent); + } + + public static Event PlayerLeaveEvent(PlayerLeaveEventData playerLeaveEvent) { + return new Event(Tags.PlayerLeaveEvent, playerLeaveEvent); + } + + public static Event PlayerLoginEvent(PlayerLoginEventData playerLoginEvent) { + return new Event(Tags.PlayerLoginEvent, playerLoginEvent); + } + + public static Event PlayerChatEvent(PlayerChatEventData playerChatEvent) { + return new Event(Tags.PlayerChatEvent, playerChatEvent); + } + + public static Event PlayerCommandSendEvent(PlayerCommandSendEventData playerCommandSendEvent) { + return new Event(Tags.PlayerCommandSendEvent, playerCommandSendEvent); + } + + public static Event PlayerPermissionCheckEvent(PlayerPermissionCheckEventData playerPermissionCheckEvent) { + return new Event(Tags.PlayerPermissionCheckEvent, playerPermissionCheckEvent); + } + + public static Event PlayerMoveEvent(PlayerMoveEventData playerMoveEvent) { + return new Event(Tags.PlayerMoveEvent, playerMoveEvent); + } + + public static Event PlayerTeleportEvent(PlayerTeleportEventData playerTeleportEvent) { + return new Event(Tags.PlayerTeleportEvent, playerTeleportEvent); + } + + public static Event PlayerChangeWorldEvent(PlayerChangeWorldEventData playerChangeWorldEvent) { + return new Event(Tags.PlayerChangeWorldEvent, playerChangeWorldEvent); + } + + public static Event PlayerExpChangeEvent(PlayerExpChangeEventData playerExpChangeEvent) { + return new Event(Tags.PlayerExpChangeEvent, playerExpChangeEvent); + } + + public static Event PlayerItemHeldEvent(PlayerItemHeldEventData playerItemHeldEvent) { + return new Event(Tags.PlayerItemHeldEvent, playerItemHeldEvent); + } + + public static Event PlayerChangedMainHandEvent(PlayerChangedMainHandEventData playerChangedMainHandEvent) { + return new Event(Tags.PlayerChangedMainHandEvent, playerChangedMainHandEvent); + } + + public static Event PlayerGamemodeChangeEvent(PlayerGamemodeChangeEventData playerGamemodeChangeEvent) { + return new Event(Tags.PlayerGamemodeChangeEvent, playerGamemodeChangeEvent); + } + + public static Event PlayerCustomPayloadEvent(PlayerCustomPayloadEventData playerCustomPayloadEvent) { + return new Event(Tags.PlayerCustomPayloadEvent, playerCustomPayloadEvent); + } + + public static Event PlayerFishEvent(PlayerFishEventData playerFishEvent) { + return new Event(Tags.PlayerFishEvent, playerFishEvent); + } + + public static Event PlayerEggThrowEvent(PlayerEggThrowEventData playerEggThrowEvent) { + return new Event(Tags.PlayerEggThrowEvent, playerEggThrowEvent); + } + + public static Event PlayerInteractUnknownEntityEvent(PlayerInteractUnknownEntityEventData playerInteractUnknownEntityEvent) { + return new Event(Tags.PlayerInteractUnknownEntityEvent, playerInteractUnknownEntityEvent); + } + + public static Event PlayerInteractEvent(PlayerInteractEventData playerInteractEvent) { + return new Event(Tags.PlayerInteractEvent, playerInteractEvent); + } + + public static Event PlayerToggleSneakEvent(PlayerToggleSneakEventData playerToggleSneakEvent) { + return new Event(Tags.PlayerToggleSneakEvent, playerToggleSneakEvent); + } + + public static Event PlayerToggleFlightEvent(PlayerToggleFlightEventData playerToggleFlightEvent) { + return new Event(Tags.PlayerToggleFlightEvent, playerToggleFlightEvent); + } + + public static Event PlayerToggleSprintEvent(PlayerToggleSprintEventData playerToggleSprintEvent) { + return new Event(Tags.PlayerToggleSprintEvent, playerToggleSprintEvent); + } + + public static Event InventoryClickEvent(InventoryClickEventData inventoryClickEvent) { + return new Event(Tags.InventoryClickEvent, inventoryClickEvent); + } + + public static Event InventoryCloseEvent(InventoryCloseEventData inventoryCloseEvent) { + return new Event(Tags.InventoryCloseEvent, inventoryCloseEvent); + } + + public static Event BlockRedstoneEvent(BlockRedstoneEventData blockRedstoneEvent) { + return new Event(Tags.BlockRedstoneEvent, blockRedstoneEvent); + } + + public static Event BlockBreakEvent(BlockBreakEventData blockBreakEvent) { + return new Event(Tags.BlockBreakEvent, blockBreakEvent); + } + + public static Event BlockBurnEvent(BlockBurnEventData blockBurnEvent) { + return new Event(Tags.BlockBurnEvent, blockBurnEvent); + } + + public static Event BlockCanBuildEvent(BlockCanBuildEventData blockCanBuildEvent) { + return new Event(Tags.BlockCanBuildEvent, blockCanBuildEvent); + } + + public static Event BlockGrowEvent(BlockGrowEventData blockGrowEvent) { + return new Event(Tags.BlockGrowEvent, blockGrowEvent); + } + + public static Event BlockPlaceEvent(BlockPlaceEventData blockPlaceEvent) { + return new Event(Tags.BlockPlaceEvent, blockPlaceEvent); + } + + public static Event ServerCommandEvent(ServerCommandEventData serverCommandEvent) { + return new Event(Tags.ServerCommandEvent, serverCommandEvent); + } + + public static Event SpawnChangeEvent(SpawnChangeEventData spawnChangeEvent) { + return new Event(Tags.SpawnChangeEvent, spawnChangeEvent); + } + + public static Event ServerBroadcastEvent(ServerBroadcastEventData serverBroadcastEvent) { + return new Event(Tags.ServerBroadcastEvent, serverBroadcastEvent); + } + + public PlayerJoinEventData AsPlayerJoinEvent + { + get + { + if (Tag == Tags.PlayerJoinEvent) + return (PlayerJoinEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerJoinEvent, got " + Tag); + } + } + + public PlayerLeaveEventData AsPlayerLeaveEvent + { + get + { + if (Tag == Tags.PlayerLeaveEvent) + return (PlayerLeaveEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerLeaveEvent, got " + Tag); + } + } + + public PlayerLoginEventData AsPlayerLoginEvent + { + get + { + if (Tag == Tags.PlayerLoginEvent) + return (PlayerLoginEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerLoginEvent, got " + Tag); + } + } + + public PlayerChatEventData AsPlayerChatEvent + { + get + { + if (Tag == Tags.PlayerChatEvent) + return (PlayerChatEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerChatEvent, got " + Tag); + } + } + + public PlayerCommandSendEventData AsPlayerCommandSendEvent + { + get + { + if (Tag == Tags.PlayerCommandSendEvent) + return (PlayerCommandSendEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerCommandSendEvent, got " + Tag); + } + } + + public PlayerPermissionCheckEventData AsPlayerPermissionCheckEvent + { + get + { + if (Tag == Tags.PlayerPermissionCheckEvent) + return (PlayerPermissionCheckEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerPermissionCheckEvent, got " + Tag); + } + } + + public PlayerMoveEventData AsPlayerMoveEvent + { + get + { + if (Tag == Tags.PlayerMoveEvent) + return (PlayerMoveEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerMoveEvent, got " + Tag); + } + } + + public PlayerTeleportEventData AsPlayerTeleportEvent + { + get + { + if (Tag == Tags.PlayerTeleportEvent) + return (PlayerTeleportEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerTeleportEvent, got " + Tag); + } + } + + public PlayerChangeWorldEventData AsPlayerChangeWorldEvent + { + get + { + if (Tag == Tags.PlayerChangeWorldEvent) + return (PlayerChangeWorldEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerChangeWorldEvent, got " + Tag); + } + } + + public PlayerExpChangeEventData AsPlayerExpChangeEvent + { + get + { + if (Tag == Tags.PlayerExpChangeEvent) + return (PlayerExpChangeEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerExpChangeEvent, got " + Tag); + } + } + + public PlayerItemHeldEventData AsPlayerItemHeldEvent + { + get + { + if (Tag == Tags.PlayerItemHeldEvent) + return (PlayerItemHeldEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerItemHeldEvent, got " + Tag); + } + } + + public PlayerChangedMainHandEventData AsPlayerChangedMainHandEvent + { + get + { + if (Tag == Tags.PlayerChangedMainHandEvent) + return (PlayerChangedMainHandEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerChangedMainHandEvent, got " + Tag); + } + } + + public PlayerGamemodeChangeEventData AsPlayerGamemodeChangeEvent + { + get + { + if (Tag == Tags.PlayerGamemodeChangeEvent) + return (PlayerGamemodeChangeEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerGamemodeChangeEvent, got " + Tag); + } + } + + public PlayerCustomPayloadEventData AsPlayerCustomPayloadEvent + { + get + { + if (Tag == Tags.PlayerCustomPayloadEvent) + return (PlayerCustomPayloadEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerCustomPayloadEvent, got " + Tag); + } + } + + public PlayerFishEventData AsPlayerFishEvent + { + get + { + if (Tag == Tags.PlayerFishEvent) + return (PlayerFishEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerFishEvent, got " + Tag); + } + } + + public PlayerEggThrowEventData AsPlayerEggThrowEvent + { + get + { + if (Tag == Tags.PlayerEggThrowEvent) + return (PlayerEggThrowEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerEggThrowEvent, got " + Tag); + } + } + + public PlayerInteractUnknownEntityEventData AsPlayerInteractUnknownEntityEvent + { + get + { + if (Tag == Tags.PlayerInteractUnknownEntityEvent) + return (PlayerInteractUnknownEntityEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerInteractUnknownEntityEvent, got " + Tag); + } + } + + public PlayerInteractEventData AsPlayerInteractEvent + { + get + { + if (Tag == Tags.PlayerInteractEvent) + return (PlayerInteractEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerInteractEvent, got " + Tag); + } + } + + public PlayerToggleSneakEventData AsPlayerToggleSneakEvent + { + get + { + if (Tag == Tags.PlayerToggleSneakEvent) + return (PlayerToggleSneakEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerToggleSneakEvent, got " + Tag); + } + } + + public PlayerToggleFlightEventData AsPlayerToggleFlightEvent + { + get + { + if (Tag == Tags.PlayerToggleFlightEvent) + return (PlayerToggleFlightEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerToggleFlightEvent, got " + Tag); + } + } + + public PlayerToggleSprintEventData AsPlayerToggleSprintEvent + { + get + { + if (Tag == Tags.PlayerToggleSprintEvent) + return (PlayerToggleSprintEventData)value!; + else + throw new global::System.ArgumentException("expected PlayerToggleSprintEvent, got " + Tag); + } + } + + public InventoryClickEventData AsInventoryClickEvent + { + get + { + if (Tag == Tags.InventoryClickEvent) + return (InventoryClickEventData)value!; + else + throw new global::System.ArgumentException("expected InventoryClickEvent, got " + Tag); + } + } + + public InventoryCloseEventData AsInventoryCloseEvent + { + get + { + if (Tag == Tags.InventoryCloseEvent) + return (InventoryCloseEventData)value!; + else + throw new global::System.ArgumentException("expected InventoryCloseEvent, got " + Tag); + } + } + + public BlockRedstoneEventData AsBlockRedstoneEvent + { + get + { + if (Tag == Tags.BlockRedstoneEvent) + return (BlockRedstoneEventData)value!; + else + throw new global::System.ArgumentException("expected BlockRedstoneEvent, got " + Tag); + } + } + + public BlockBreakEventData AsBlockBreakEvent + { + get + { + if (Tag == Tags.BlockBreakEvent) + return (BlockBreakEventData)value!; + else + throw new global::System.ArgumentException("expected BlockBreakEvent, got " + Tag); + } + } + + public BlockBurnEventData AsBlockBurnEvent + { + get + { + if (Tag == Tags.BlockBurnEvent) + return (BlockBurnEventData)value!; + else + throw new global::System.ArgumentException("expected BlockBurnEvent, got " + Tag); + } + } + + public BlockCanBuildEventData AsBlockCanBuildEvent + { + get + { + if (Tag == Tags.BlockCanBuildEvent) + return (BlockCanBuildEventData)value!; + else + throw new global::System.ArgumentException("expected BlockCanBuildEvent, got " + Tag); + } + } + + public BlockGrowEventData AsBlockGrowEvent + { + get + { + if (Tag == Tags.BlockGrowEvent) + return (BlockGrowEventData)value!; + else + throw new global::System.ArgumentException("expected BlockGrowEvent, got " + Tag); + } + } + + public BlockPlaceEventData AsBlockPlaceEvent + { + get + { + if (Tag == Tags.BlockPlaceEvent) + return (BlockPlaceEventData)value!; + else + throw new global::System.ArgumentException("expected BlockPlaceEvent, got " + Tag); + } + } + + public ServerCommandEventData AsServerCommandEvent + { + get + { + if (Tag == Tags.ServerCommandEvent) + return (ServerCommandEventData)value!; + else + throw new global::System.ArgumentException("expected ServerCommandEvent, got " + Tag); + } + } + + public SpawnChangeEventData AsSpawnChangeEvent + { + get + { + if (Tag == Tags.SpawnChangeEvent) + return (SpawnChangeEventData)value!; + else + throw new global::System.ArgumentException("expected SpawnChangeEvent, got " + Tag); + } + } + + public ServerBroadcastEventData AsServerBroadcastEvent + { + get + { + if (Tag == Tags.ServerBroadcastEvent) + return (ServerBroadcastEventData)value!; + else + throw new global::System.ArgumentException("expected ServerBroadcastEvent, got " + Tag); + } + } + + public class Tags { + public const byte PlayerJoinEvent = 0; + public const byte PlayerLeaveEvent = 1; + public const byte PlayerLoginEvent = 2; + public const byte PlayerChatEvent = 3; + public const byte PlayerCommandSendEvent = 4; + public const byte PlayerPermissionCheckEvent = 5; + public const byte PlayerMoveEvent = 6; + public const byte PlayerTeleportEvent = 7; + public const byte PlayerChangeWorldEvent = 8; + public const byte PlayerExpChangeEvent = 9; + public const byte PlayerItemHeldEvent = 10; + public const byte PlayerChangedMainHandEvent = 11; + public const byte PlayerGamemodeChangeEvent = 12; + public const byte PlayerCustomPayloadEvent = 13; + public const byte PlayerFishEvent = 14; + public const byte PlayerEggThrowEvent = 15; + public const byte PlayerInteractUnknownEntityEvent = 16; + public const byte PlayerInteractEvent = 17; + public const byte PlayerToggleSneakEvent = 18; + public const byte PlayerToggleFlightEvent = 19; + public const byte PlayerToggleSprintEvent = 20; + public const byte InventoryClickEvent = 21; + public const byte InventoryCloseEvent = 22; + public const byte BlockRedstoneEvent = 23; + public const byte BlockBreakEvent = 24; + public const byte BlockBurnEvent = 25; + public const byte BlockCanBuildEvent = 26; + public const byte BlockGrowEvent = 27; + public const byte BlockPlaceEvent = 28; + public const byte ServerCommandEvent = 29; + public const byte SpawnChangeEvent = 30; + public const byte ServerBroadcastEvent = 31; + } + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.cs new file mode 100644 index 0000000..34ee3a1 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.cs @@ -0,0 +1,163 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IGuiImports { + + public enum GuiType { + GENERIC_9X1, GENERIC_9X2, GENERIC_9X3, GENERIC_9X4, GENERIC_9X5, GENERIC_9X6, GENERIC_3X3, CRAFTER_3X3, ANVIL, BEACON, BLAST_FURNACE, BREWING_STAND, CRAFTING, ENCHANTMENT, FURNACE, GRINDSTONE, HOPPER, LECTERN, LOOM, MERCHANT, SHULKER_BOX, SMITHING, SMOKER, CARTOGRAPHY_TABLE, STONECUTTER + } + + public class Gui: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Gui(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/gui@0.1.0", EntryPoint = "[resource-drop]gui"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe Gui(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.GuiType type, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent title) + { + var handle = title.Handle; + title.Handle = 0; + var result = GuiImportsInterop.Gui.ConstructorWasmInterop.wasmImportConstructor((int)type, handle); + this.Handle = result; + + } + + public unsafe void SetItem(uint slot, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack item) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(item.registryKey); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + GuiImportsInterop.Gui.SetItemWasmInterop.wasmImportSetItem(handle, unchecked((int)(slot)), strPtr.ToInt32(), length, item.count); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? GetItem(uint slot) + { + var handle = this.Handle; + + var retArea = stackalloc uint[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + GuiImportsInterop.Gui.GetItemWasmInterop.wasmImportGetItem(handle, unchecked((int)(slot)), ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 8), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + } + + lifted = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack ( + str, ((byte)new global::System.Span((byte*)ptr + 12, 1)[0])); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public new unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.GuiType GetType() + { + var handle = this.Handle; + var result = GuiImportsInterop.Gui.GetTypeWasmInterop.wasmImportGetType(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.GuiType)result; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent GetTitle() + { + var handle = this.Handle; + var result = GuiImportsInterop.Gui.GetTitleWasmInterop.wasmImportGetTitle(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + return resource; + + } + + public unsafe uint GetSize() + { + var handle = this.Handle; + var result = GuiImportsInterop.Gui.GetSizeWasmInterop.wasmImportGetSize(handle); + return unchecked((uint)(result)); + + } + + public unsafe void ClearItems() + { + var handle = this.Handle; + GuiImportsInterop.Gui.ClearItemsWasmInterop.wasmImportClearItems(handle); + + } + + public unsafe void SetAllowGrabItems(bool allow) + { + var handle = this.Handle; + GuiImportsInterop.Gui.SetAllowGrabItemsWasmInterop.wasmImportSetAllowGrabItems(handle, (allow ? 1 : 0)); + + } + + public unsafe bool GetAllowGrabItems() + { + var handle = this.Handle; + var result = GuiImportsInterop.Gui.GetAllowGrabItemsWasmInterop.wasmImportGetAllowGrabItems(handle); + return (result != 0); + + } + + public unsafe void SetAllowPutItems(bool allow) + { + var handle = this.Handle; + GuiImportsInterop.Gui.SetAllowPutItemsWasmInterop.wasmImportSetAllowPutItems(handle, (allow ? 1 : 0)); + + } + + public unsafe bool GetAllowPutItems() + { + var handle = this.Handle; + var result = GuiImportsInterop.Gui.GetAllowPutItemsWasmInterop.wasmImportGetAllowPutItems(handle); + return (result != 0); + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.II18nImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.II18nImports.cs new file mode 100644 index 0000000..5bef7d9 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.II18nImports.cs @@ -0,0 +1,63 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface II18nImports { + + public static unsafe string Translate(string key, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale locale) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(key); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + I18nImportsInterop.TranslateWasmInterop.wasmImportTranslate(strPtr.ToInt32(), length, (int)locale, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return str; + + } + + public static unsafe void LoadTranslations(string @namespace, string json, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Locale locale) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(@namespace); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(json); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + I18nImportsInterop.LoadTranslationsWasmInterop.wasmImportLoadTranslations(strPtr.ToInt32(), length, strPtr0.ToInt32(), length2, (int)locale); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ILoggingImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ILoggingImports.cs new file mode 100644 index 0000000..8af8e54 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ILoggingImports.cs @@ -0,0 +1,66 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface ILoggingImports { + + public enum Level { + TRACE, DEBUG, INFO, WARN, ERROR + } + + public static unsafe void Log(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ILoggingImports.Level level, string message) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(message); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + LoggingImportsInterop.LogWasmInterop.wasmImportLog((int)level, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public static unsafe void LogTracing(byte[] @event) + { + var cleanups = new global::System.Collections.Generic.List(); + + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(@event, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var listPtr = gcHandle.AddrOfPinnedObject(); + cleanups.Add(()=> gcHandle.Free()); + LoggingImportsInterop.LogTracingWasmInterop.wasmImportLogTracing((nint)listPtr, (@event).Length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public static unsafe void LogTracing(global::System.Span @event) + { + fixed (void* listPtr = @event) + { + LoggingImportsInterop.LogTracingWasmInterop.wasmImportLogTracing((nint)listPtr, (@event).Length); + } + + } + + public static unsafe void LogTracing(global::System.Memory @event) + { + fixed (void* listPtr = @event.Span) + { + LoggingImportsInterop.LogTracingWasmInterop.wasmImportLogTracing((nint)listPtr, (@event).Length); + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.cs new file mode 100644 index 0000000..8ac065e --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.cs @@ -0,0 +1,100 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IPermissionImports { + + /** + * Represents the player's permission level + * + * Permission levels determine the player's access to commands and server operations. + * Each numeric level corresponds to a specific role: + * - `Zero`: `normal`: Player can use basic commands. + * - `One`: `moderator`: Player can bypass spawn protection. + * - `Two`: `gamemaster`: Player or executor can use more commands and player can use command blocks. + * - `Three`: `admin`: Player or executor can use commands related to multiplayer management. + * - `Four`: `owner`: Player or executor can use all of the commands, including commands related to server management. + */ + + public enum PermissionLevel { + ZERO, ONE, TWO, THREE, FOUR + } + + /** + * Describes the default behavior for permissions + */ + + public class PermissionDefault { + public readonly byte Tag; + private readonly object? value; + + private PermissionDefault(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static PermissionDefault Deny() { + return new PermissionDefault(Tags.Deny, null); + } + + public static PermissionDefault Allow() { + return new PermissionDefault(Tags.Allow, null); + } + + public static PermissionDefault Op(PermissionLevel op) { + return new PermissionDefault(Tags.Op, op); + } + + public PermissionLevel AsOp + { + get + { + if (Tag == Tags.Op) + return (PermissionLevel)value!; + else + throw new global::System.ArgumentException("expected Op, got " + Tag); + } + } + + public class Tags { + public const byte Deny = 0; + public const byte Allow = 1; + public const byte Op = 2; + } + } + + /** + * A child permission entry + */ + + public struct PermissionChild { + public string node; + public bool value; + + public PermissionChild(string node, bool value) { + this.node = node; + this.value = value; + } + } + + /** + * Defines a permission node in the system + */ + + public struct Permission { + public string node; + public string description; + public PermissionDefault @default; + public global::System.Collections.Generic.List children; + + public Permission(string node, string description, PermissionDefault @default, global::System.Collections.Generic.List children) { + this.node = node; + this.description = description; + this.@default = @default; + this.children = children; + } + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.cs new file mode 100644 index 0000000..bd5d9dd --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.cs @@ -0,0 +1,924 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IPlayerImports { + + /** + * Various abilities a player can have. + */ + + public struct PlayerAbilities { + public bool invulnerable; + public bool flying; + public bool allowFlying; + public bool creative; + public bool allowModifyWorld; + public float flySpeed; + public float walkSpeed; + + public PlayerAbilities(bool invulnerable, bool flying, bool allowFlying, bool creative, bool allowModifyWorld, float flySpeed, float walkSpeed) { + this.invulnerable = invulnerable; + this.flying = flying; + this.allowFlying = allowFlying; + this.creative = creative; + this.allowModifyWorld = allowModifyWorld; + this.flySpeed = flySpeed; + this.walkSpeed = walkSpeed; + } + } + + /** + * Represents a player's skin textures and metadata. + */ + + public struct PlayerSkin { + public string value; + public string? signature; + + public PlayerSkin(string value, string? signature) { + this.value = value; + this.signature = signature; + } + } + + /** + * Flags representing visible skin parts. + */ + + public enum SkinParts : byte { + CAPE = 1 << 0, + JACKET = 1 << 1, + LEFT_SLEEVE = 1 << 2, + RIGHT_SLEEVE = 1 << 3, + LEFT_PANTS_LEG = 1 << 4, + RIGHT_PANTS_LEG = 1 << 5, + HAT = 1 << 6, + } + + /** + * A handle to a player on the server. + */ + + public class Player: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Player(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[resource-drop]player"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity AsEntity() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.AsEntityWasmInterop.wasmImportAsEntity(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity.THandle(result)); + return resource; + + } + + public unsafe string GetId() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetIdWasmInterop.wasmImportGetId(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe string GetName() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetNameWasmInterop.wasmImportGetName(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe (double, double, double) GetPosition() + { + var handle = this.Handle; + + var retArea = stackalloc ulong[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 8); + PlayerImportsInterop.Player.GetPositionWasmInterop.wasmImportGetPosition(handle, ptr); + return (new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0]); + + } + + public unsafe float GetYaw() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetYawWasmInterop.wasmImportGetYaw(handle); + return result; + + } + + public unsafe float GetPitch() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetPitchWasmInterop.wasmImportGetPitch(handle); + return result; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World GetWorld() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetWorldWasmInterop.wasmImportGetWorld(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(result)); + return resource; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode GetGamemode() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetGamemodeWasmInterop.wasmImportGetGamemode(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode)result; + + } + + public unsafe bool SetGamemode(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode mode) + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.SetGamemodeWasmInterop.wasmImportSetGamemode(handle, (int)mode); + return (result != 0); + + } + + public unsafe string GetLocale() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetLocaleWasmInterop.wasmImportGetLocale(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe uint GetPing() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetPingWasmInterop.wasmImportGetPing(handle); + return unchecked((uint)(result)); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.PermissionLevel GetPermissionLevel() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetPermissionLevelWasmInterop.wasmImportGetPermissionLevel(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.PermissionLevel)result; + + } + + public unsafe void SetPermissionLevel(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPermissionImports.PermissionLevel level) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetPermissionLevelWasmInterop.wasmImportSetPermissionLevel(handle, (int)level); + + } + + public unsafe void SetPermission(string node, bool value) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + PlayerImportsInterop.Player.SetPermissionWasmInterop.wasmImportSetPermission(handle, strPtr.ToInt32(), length, (value ? 1 : 0)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void UnsetPermission(string node) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + PlayerImportsInterop.Player.UnsetPermissionWasmInterop.wasmImportUnsetPermission(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe bool? HasPermissionSet(string node) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc byte[2]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 1); + PlayerImportsInterop.Player.HasPermissionSetWasmInterop.wasmImportHasPermissionSet(handle, strPtr.ToInt32(), length, ptr); + + bool? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + lifted = (new global::System.Span((byte*)ptr + 1, 1)[0] != 0); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return lifted; + + } + + public unsafe bool HasPermission(string node) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(node); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var result = PlayerImportsInterop.Player.HasPermissionWasmInterop.wasmImportHasPermission(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return (result != 0); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent GetDisplayName() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetDisplayNameWasmInterop.wasmImportGetDisplayName(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + return resource; + + } + + public unsafe void SetDisplayName(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent displayName) + { + var handle = this.Handle; + var handle0 = displayName.Handle; + displayName.Handle = 0; + PlayerImportsInterop.Player.SetDisplayNameWasmInterop.wasmImportSetDisplayName(handle, handle0); + + } + + public unsafe void SendSystemMessage(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text, bool overlay) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + PlayerImportsInterop.Player.SendSystemMessageWasmInterop.wasmImportSendSystemMessage(handle, handle0, (overlay ? 1 : 0)); + + } + + public unsafe void SetTabListHeaderFooter(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent header, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent footer) + { + var handle = this.Handle; + var handle0 = header.Handle; + header.Handle = 0; + var handle1 = footer.Handle; + footer.Handle = 0; + PlayerImportsInterop.Player.SetTabListHeaderFooterWasmInterop.wasmImportSetTabListHeaderFooter(handle, handle0, handle1); + + } + + public unsafe void SetTabListOrder(int order) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetTabListOrderWasmInterop.wasmImportSetTabListOrder(handle, order); + + } + + public unsafe void SetTabListLatency(int latency) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetTabListLatencyWasmInterop.wasmImportSetTabListLatency(handle, latency); + + } + + public unsafe void SetTabListListed(bool listed) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetTabListListedWasmInterop.wasmImportSetTabListListed(handle, (listed ? 1 : 0)); + + } + + public unsafe void ShowTitle(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + PlayerImportsInterop.Player.ShowTitleWasmInterop.wasmImportShowTitle(handle, handle0); + + } + + public unsafe void ShowSubtitle(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + PlayerImportsInterop.Player.ShowSubtitleWasmInterop.wasmImportShowSubtitle(handle, handle0); + + } + + public unsafe void ShowActionbar(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + PlayerImportsInterop.Player.ShowActionbarWasmInterop.wasmImportShowActionbar(handle, handle0); + + } + + public unsafe void SendTitleAnimation(int fadeIn, int stay, int fadeOut) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SendTitleAnimationWasmInterop.wasmImportSendTitleAnimation(handle, fadeIn, stay, fadeOut); + + } + + public unsafe void Teleport((double, double, double) position, float? yaw, float? pitch, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World world) + { + var handle = this.Handle; + + int lowered; + float lowered3; + + if (yaw != null) { + var payload2 = (float) yaw; + + lowered = 1; + lowered3 = payload2; + + } else { + + lowered = 0; + lowered3 = 0.0F; + + } + + int lowered10; + float lowered11; + + if (pitch != null) { + var payload9 = (float) pitch; + + lowered10 = 1; + lowered11 = payload9; + + } else { + + lowered10 = 0; + lowered11 = 0.0F; + + } + var handle12 = world.Handle; + world.Handle = 0; + PlayerImportsInterop.Player.TeleportWasmInterop.wasmImportTeleport(handle, position.Item1, position.Item2, position.Item3, lowered, lowered3, lowered10, lowered11, handle12); + + } + + public unsafe void TeleportWorld(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World worldRef, (double, double, double) position, float? yaw, float? pitch) + { + var handle = this.Handle; + var handle0 = worldRef.Handle; + worldRef.Handle = 0; + + int lowered; + float lowered4; + + if (yaw != null) { + var payload3 = (float) yaw; + + lowered = 1; + lowered4 = payload3; + + } else { + + lowered = 0; + lowered4 = 0.0F; + + } + + int lowered11; + float lowered12; + + if (pitch != null) { + var payload10 = (float) pitch; + + lowered11 = 1; + lowered12 = payload10; + + } else { + + lowered11 = 0; + lowered12 = 0.0F; + + } + PlayerImportsInterop.Player.TeleportWorldWasmInterop.wasmImportTeleportWorld(handle, handle0, position.Item1, position.Item2, position.Item3, lowered, lowered4, lowered11, lowered12); + + } + + public unsafe void Kick(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent message) + { + var handle = this.Handle; + var handle0 = message.Handle; + message.Handle = 0; + PlayerImportsInterop.Player.KickWasmInterop.wasmImportKick(handle, handle0); + + } + + public unsafe void Respawn() + { + var handle = this.Handle; + PlayerImportsInterop.Player.RespawnWasmInterop.wasmImportRespawn(handle); + + } + + public unsafe void OpenGui(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IGuiImports.Gui guiRef) + { + var handle = this.Handle; + var handle0 = guiRef.Handle; + guiRef.Handle = 0; + PlayerImportsInterop.Player.OpenGuiWasmInterop.wasmImportOpenGui(handle, handle0); + + } + + public unsafe void Ban(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent? reason) + { + var handle = this.Handle; + + int lowered; + int lowered4; + + if (reason != null) { + var payload2 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent) reason; + var handle3 = payload2.Handle; + payload2.Handle = 0; + + lowered = 1; + lowered4 = handle3; + + } else { + + lowered = 0; + lowered4 = 0; + + } + PlayerImportsInterop.Player.BanWasmInterop.wasmImportBan(handle, lowered, lowered4); + + } + + public unsafe void BanIp(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent? reason) + { + var handle = this.Handle; + + int lowered; + int lowered4; + + if (reason != null) { + var payload2 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent) reason; + var handle3 = payload2.Handle; + payload2.Handle = 0; + + lowered = 1; + lowered4 = handle3; + + } else { + + lowered = 0; + lowered4 = 0; + + } + PlayerImportsInterop.Player.BanIpWasmInterop.wasmImportBanIp(handle, lowered, lowered4); + + } + + public unsafe byte GetSelectedSlot() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetSelectedSlotWasmInterop.wasmImportGetSelectedSlot(handle); + return ((byte)result); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? GetItemInHand(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.Hand hand) + { + var handle = this.Handle; + + var retArea = stackalloc uint[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetItemInHandWasmInterop.wasmImportGetItemInHand(handle, (int)hand, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 8), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + } + + lifted = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack ( + str, ((byte)new global::System.Span((byte*)ptr + 12, 1)[0])); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? GetInventoryItem(byte slot) + { + var handle = this.Handle; + + var retArea = stackalloc uint[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetInventoryItemWasmInterop.wasmImportGetInventoryItem(handle, slot, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 8), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + } + + lifted = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ItemStack ( + str, ((byte)new global::System.Span((byte*)ptr + 12, 1)[0])); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe float GetHealth() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetHealthWasmInterop.wasmImportGetHealth(handle); + return result; + + } + + public unsafe void SetHealth(float health) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetHealthWasmInterop.wasmImportSetHealth(handle, health); + + } + + public unsafe float GetMaxHealth() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetMaxHealthWasmInterop.wasmImportGetMaxHealth(handle); + return result; + + } + + public unsafe void SetMaxHealth(float maxHealth) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetMaxHealthWasmInterop.wasmImportSetMaxHealth(handle, maxHealth); + + } + + public unsafe byte GetFoodLevel() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetFoodLevelWasmInterop.wasmImportGetFoodLevel(handle); + return ((byte)result); + + } + + public unsafe void SetFoodLevel(byte foodLevel) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetFoodLevelWasmInterop.wasmImportSetFoodLevel(handle, foodLevel); + + } + + public unsafe float GetSaturation() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetSaturationWasmInterop.wasmImportGetSaturation(handle); + return result; + + } + + public unsafe void SetSaturation(float saturation) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetSaturationWasmInterop.wasmImportSetSaturation(handle, saturation); + + } + + public unsafe float GetExhaustion() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetExhaustionWasmInterop.wasmImportGetExhaustion(handle); + return result; + + } + + public unsafe void SetExhaustion(float exhaustion) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetExhaustionWasmInterop.wasmImportSetExhaustion(handle, exhaustion); + + } + + public unsafe float GetAbsorption() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetAbsorptionWasmInterop.wasmImportGetAbsorption(handle); + return result; + + } + + public unsafe void SetAbsorption(float absorption) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetAbsorptionWasmInterop.wasmImportSetAbsorption(handle, absorption); + + } + + public unsafe int GetExperienceLevel() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetExperienceLevelWasmInterop.wasmImportGetExperienceLevel(handle); + return result; + + } + + public unsafe float GetExperienceProgress() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetExperienceProgressWasmInterop.wasmImportGetExperienceProgress(handle); + return result; + + } + + public unsafe int GetExperiencePoints() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetExperiencePointsWasmInterop.wasmImportGetExperiencePoints(handle); + return result; + + } + + public unsafe void SetExperienceLevel(int level) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetExperienceLevelWasmInterop.wasmImportSetExperienceLevel(handle, level); + + } + + public unsafe void SetExperienceProgress(float progress) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetExperienceProgressWasmInterop.wasmImportSetExperienceProgress(handle, progress); + + } + + public unsafe void SetExperiencePoints(int points) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetExperiencePointsWasmInterop.wasmImportSetExperiencePoints(handle, points); + + } + + public unsafe void AddExperienceLevels(int levels) + { + var handle = this.Handle; + PlayerImportsInterop.Player.AddExperienceLevelsWasmInterop.wasmImportAddExperienceLevels(handle, levels); + + } + + public unsafe void AddExperiencePoints(int points) + { + var handle = this.Handle; + PlayerImportsInterop.Player.AddExperiencePointsWasmInterop.wasmImportAddExperiencePoints(handle, points); + + } + + public unsafe bool IsFlying() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.IsFlyingWasmInterop.wasmImportIsFlying(handle); + return (result != 0); + + } + + public unsafe void SetFlying(bool flying) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetFlyingWasmInterop.wasmImportSetFlying(handle, (flying ? 1 : 0)); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerAbilities GetAbilities() + { + var handle = this.Handle; + + var retArea = stackalloc uint[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetAbilitiesWasmInterop.wasmImportGetAbilities(handle, ptr); + return new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerAbilities ( + (new global::System.Span((byte*)ptr + 0, 1)[0] != 0), (new global::System.Span((byte*)ptr + 1, 1)[0] != 0), (new global::System.Span((byte*)ptr + 2, 1)[0] != 0), (new global::System.Span((byte*)ptr + 3, 1)[0] != 0), (new global::System.Span((byte*)ptr + 4, 1)[0] != 0), new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]); + + } + + public unsafe void SetAbilities(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerAbilities abilities) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetAbilitiesWasmInterop.wasmImportSetAbilities(handle, (abilities.invulnerable ? 1 : 0), (abilities.flying ? 1 : 0), (abilities.allowFlying ? 1 : 0), (abilities.creative ? 1 : 0), (abilities.allowModifyWorld ? 1 : 0), abilities.flySpeed, abilities.walkSpeed); + + } + + public unsafe string GetIp() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetIpWasmInterop.wasmImportGetIp(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerSkin? GetSkin() + { + var handle = this.Handle; + + var retArea = stackalloc uint[7]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + PlayerImportsInterop.Player.GetSkinWasmInterop.wasmImportGetSkin(handle, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerSkin? lifted7; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted7 = null; + break; + } + + case 1: { + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 8), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + } + + string? lifted; + + switch (new global::System.Span((byte*)ptr + 12, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + var str6 = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 16), 1)[0], new global::System.Span((void*)((byte*)ptr + 20), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 20), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 16), 1)[0]); + } + + lifted = str6; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 12, 1)[0])); + } + + lifted7 = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.PlayerSkin ( + str, lifted); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted7; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.SkinParts GetSkinParts() + { + var handle = this.Handle; + var result = PlayerImportsInterop.Player.GetSkinPartsWasmInterop.wasmImportGetSkinParts(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.SkinParts)(result); + + } + + public unsafe void SetSkinParts(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.SkinParts parts) + { + var handle = this.Handle; + PlayerImportsInterop.Player.SetSkinPartsWasmInterop.wasmImportSetSkinParts(handle, (int)parts); + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ISchedulerImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ISchedulerImports.cs new file mode 100644 index 0000000..f96901c --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ISchedulerImports.cs @@ -0,0 +1,29 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface ISchedulerImports { + + public static unsafe uint ScheduleDelayedTask(uint handlerId, ulong delayTicks) + { + var result = SchedulerImportsInterop.ScheduleDelayedTaskWasmInterop.wasmImportScheduleDelayedTask(unchecked((int)(handlerId)), unchecked((long)(delayTicks))); + return unchecked((uint)(result)); + + } + + public static unsafe uint ScheduleRepeatingTask(uint handlerId, ulong delayTicks, ulong periodTicks) + { + var result = SchedulerImportsInterop.ScheduleRepeatingTaskWasmInterop.wasmImportScheduleRepeatingTask(unchecked((int)(handlerId)), unchecked((long)(delayTicks)), unchecked((long)(periodTicks))); + return unchecked((uint)(result)); + + } + + public static unsafe void CancelTask(uint taskId) + { + SchedulerImportsInterop.CancelTaskWasmInterop.wasmImportCancelTask(unchecked((int)(taskId))); + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.cs new file mode 100644 index 0000000..4f2a881 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.cs @@ -0,0 +1,314 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IScoreboardImports { + + public enum RenderType { + INTEGER, HEARTS + } + + public enum DisplaySlot { + PLAYER_LIST, SIDEBAR, BELOW_NAME, SIDEBAR_TEAM_BLACK, SIDEBAR_TEAM_DARK_BLUE, SIDEBAR_TEAM_DARK_GREEN, SIDEBAR_TEAM_DARK_AQUA, SIDEBAR_TEAM_DARK_RED, SIDEBAR_TEAM_DARK_PURPLE, SIDEBAR_TEAM_GOLD, SIDEBAR_TEAM_GRAY, SIDEBAR_TEAM_DARK_GRAY, SIDEBAR_TEAM_BLUE, SIDEBAR_TEAM_GREEN, SIDEBAR_TEAM_AQUA, SIDEBAR_TEAM_RED, SIDEBAR_TEAM_LIGHT_PURPLE, SIDEBAR_TEAM_YELLOW, SIDEBAR_TEAM_WHITE + } + + public enum NametagVisibility { + ALWAYS, NEVER, HIDE_FOR_OTHER_TEAMS, HIDE_FOR_OWN_TEAM + } + + public enum CollisionRule { + ALWAYS, NEVER, PUSH_OTHER_TEAMS, PUSH_OWN_TEAM + } + + public struct TeamSettings { + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent displayName; + public bool friendlyFire; + public bool seeFriendlyInvisibles; + public NametagVisibility nametagVisibility; + public CollisionRule collisionRule; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.NamedColor color; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent prefix; + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent suffix; + + public TeamSettings(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent displayName, bool friendlyFire, bool seeFriendlyInvisibles, NametagVisibility nametagVisibility, CollisionRule collisionRule, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.NamedColor color, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent prefix, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent suffix) { + this.displayName = displayName; + this.friendlyFire = friendlyFire; + this.seeFriendlyInvisibles = seeFriendlyInvisibles; + this.nametagVisibility = nametagVisibility; + this.collisionRule = collisionRule; + this.color = color; + this.prefix = prefix; + this.suffix = suffix; + } + } + + public class Scoreboard: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Scoreboard(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[resource-drop]scoreboard"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe void AddObjective(string name, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent displayName, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.RenderType renderType) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var handle0 = displayName.Handle; + displayName.Handle = 0; + ScoreboardImportsInterop.Scoreboard.AddObjectiveWasmInterop.wasmImportAddObjective(handle, strPtr.ToInt32(), length, handle0, (int)renderType); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void RemoveObjective(string name) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + ScoreboardImportsInterop.Scoreboard.RemoveObjectiveWasmInterop.wasmImportRemoveObjective(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void SetDisplaySlot(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.DisplaySlot slot, string objectiveName) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(objectiveName); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + ScoreboardImportsInterop.Scoreboard.SetDisplaySlotWasmInterop.wasmImportSetDisplaySlot(handle, (int)slot, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void UpdateScore(string entityName, string objectiveName, int value) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(entityName); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(objectiveName); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + ScoreboardImportsInterop.Scoreboard.UpdateScoreWasmInterop.wasmImportUpdateScore(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2, value); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void RemoveScore(string entityName, string objectiveName) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(entityName); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(objectiveName); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + ScoreboardImportsInterop.Scoreboard.RemoveScoreWasmInterop.wasmImportRemoveScore(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void CreateTeam(string name, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.TeamSettings settings) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var handle0 = settings.displayName.Handle; + settings.displayName.Handle = 0; + var handle1 = settings.prefix.Handle; + settings.prefix.Handle = 0; + var handle2 = settings.suffix.Handle; + settings.suffix.Handle = 0; + ScoreboardImportsInterop.Scoreboard.CreateTeamWasmInterop.wasmImportCreateTeam(handle, strPtr.ToInt32(), length, handle0, (settings.friendlyFire ? 1 : 0), (settings.seeFriendlyInvisibles ? 1 : 0), (int)settings.nametagVisibility, (int)settings.collisionRule, (int)settings.color, handle1, handle2); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void RemoveTeam(string name) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + ScoreboardImportsInterop.Scoreboard.RemoveTeamWasmInterop.wasmImportRemoveTeam(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void UpdateTeam(string name, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.TeamSettings settings) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var handle0 = settings.displayName.Handle; + settings.displayName.Handle = 0; + var handle1 = settings.prefix.Handle; + settings.prefix.Handle = 0; + var handle2 = settings.suffix.Handle; + settings.suffix.Handle = 0; + ScoreboardImportsInterop.Scoreboard.UpdateTeamWasmInterop.wasmImportUpdateTeam(handle, strPtr.ToInt32(), length, handle0, (settings.friendlyFire ? 1 : 0), (settings.seeFriendlyInvisibles ? 1 : 0), (int)settings.nametagVisibility, (int)settings.collisionRule, (int)settings.color, handle1, handle2); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void AddPlayerToTeam(string teamName, string playerName) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(teamName); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(playerName); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + ScoreboardImportsInterop.Scoreboard.AddPlayerToTeamWasmInterop.wasmImportAddPlayerToTeam(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void RemovePlayerFromTeam(string teamName, string playerName) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(teamName); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(playerName); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + ScoreboardImportsInterop.Scoreboard.RemovePlayerFromTeamWasmInterop.wasmImportRemovePlayerFromTeam(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.cs new file mode 100644 index 0000000..67342ab --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.cs @@ -0,0 +1,479 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IServerImports { + + /** + * Represents the difficulty setting of a Minecraft server. + */ + + public enum Difficulty { + PEACEFUL, EASY, NORMAL, HARD + } + + /** + * Represents the three main Minecraft dimensions. + */ + + public enum Dimension { + OVERWORLD, NETHER, END + } + + public class CommandSender { + public readonly byte Tag; + private readonly object? value; + + private CommandSender(byte tag, object? value) { + this.Tag = tag; + this.value = value; + } + + public static CommandSender Console() { + return new CommandSender(Tags.Console, null); + } + + public static CommandSender Player(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player player) { + return new CommandSender(Tags.Player, player); + } + + public global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player AsPlayer + { + get + { + if (Tag == Tags.Player) + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player)value!; + else + throw new global::System.ArgumentException("expected Player, got " + Tag); + } + } + + public class Tags { + public const byte Console = 0; + public const byte Player = 1; + } + } + + /** + * Represents the global server instance. + */ + + public class Server: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Server(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[resource-drop]server"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty GetDifficulty() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetDifficultyWasmInterop.wasmImportGetDifficulty(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Difficulty)result; + + } + + public unsafe uint GetPlayerCount() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetPlayerCountWasmInterop.wasmImportGetPlayerCount(handle); + return unchecked((uint)(result)); + + } + + public unsafe double GetMspt() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetMsptWasmInterop.wasmImportGetMspt(handle); + return result; + + } + + public unsafe double GetTps() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetTpsWasmInterop.wasmImportGetTps(handle); + return result; + + } + + public unsafe global::System.Collections.Generic.List GetAllPlayers() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetAllPlayersWasmInterop.wasmImportGetAllPlayers(handle, ptr); + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)ptr + 4), 1)[0]; ++index) { + nint basePtr = new global::System.Span((void*)((byte*)ptr + 0), 1)[0] + (index * 4); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)basePtr + 0), 1)[0])); + + array.Add(resource); + } + + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + return array; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? GetPlayerByName(string name) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetPlayerByNameWasmInterop.wasmImportGetPlayerByName(handle, strPtr.ToInt32(), length, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return lifted; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? GetPlayerByUuid(string id) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(id); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetPlayerByUuidWasmInterop.wasmImportGetPlayerByUuid(handle, strPtr.ToInt32(), length, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return lifted; + + } + + public unsafe global::System.Collections.Generic.List GetAllWorlds() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetAllWorldsWasmInterop.wasmImportGetAllWorlds(handle, ptr); + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)ptr + 4), 1)[0]; ++index) { + nint basePtr = new global::System.Span((void*)((byte*)ptr + 0), 1)[0] + (index * 4); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)basePtr + 0), 1)[0])); + + array.Add(resource); + } + + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + return array; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World? GetWorldByName(string name) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetWorldByNameWasmInterop.wasmImportGetWorldByName(handle, strPtr.ToInt32(), length, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return lifted; + + } + + public unsafe void ExecuteCommand(string command, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.CommandSender sender) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(command); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + int lowered; + int lowered4; + + switch (sender.Tag) { + case 0: { + + lowered = 0; + lowered4 = 0; + + break; + } + case 1: { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IPlayerImports.Player payload2 = sender.AsPlayer; + var handle3 = payload2.Handle; + payload2.Handle = 0; + + lowered = 1; + lowered4 = handle3; + + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + sender); + } + ServerImportsInterop.Server.ExecuteCommandWasmInterop.wasmImportExecuteCommand(handle, strPtr.ToInt32(), length, lowered, lowered4); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World CreateWorld(string name, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IServerImports.Dimension dimension) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(name); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var result = ServerImportsInterop.Server.CreateWorldWasmInterop.wasmImportCreateWorld(handle, strPtr.ToInt32(), length, (int)dimension); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(result)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return resource; + + } + + public unsafe void Broadcast(string message) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(message); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + ServerImportsInterop.Server.BroadcastWasmInterop.wasmImportBroadcast(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void BroadcastTabListHeaderFooter(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent header, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent footer) + { + var handle = this.Handle; + var handle0 = header.Handle; + header.Handle = 0; + var handle1 = footer.Handle; + footer.Handle = 0; + ServerImportsInterop.Server.BroadcastTabListHeaderFooterWasmInterop.wasmImportBroadcastTabListHeaderFooter(handle, handle0, handle1); + + } + + public unsafe uint GetMaxPlayers() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetMaxPlayersWasmInterop.wasmImportGetMaxPlayers(handle); + return unchecked((uint)(result)); + + } + + public unsafe bool IsHardcore() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.IsHardcoreWasmInterop.wasmImportIsHardcore(handle); + return (result != 0); + + } + + public unsafe bool IsOnlineMode() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.IsOnlineModeWasmInterop.wasmImportIsOnlineMode(handle); + return (result != 0); + + } + + public unsafe string GetMotd() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + ServerImportsInterop.Server.GetMotdWasmInterop.wasmImportGetMotd(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe bool HasWhitelist() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.HasWhitelistWasmInterop.wasmImportHasWhitelist(handle); + return (result != 0); + + } + + public unsafe bool GetAllowNether() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetAllowNetherWasmInterop.wasmImportGetAllowNether(handle); + return (result != 0); + + } + + public unsafe bool GetAllowEnd() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetAllowEndWasmInterop.wasmImportGetAllowEnd(handle); + return (result != 0); + + } + + public unsafe byte GetViewDistance() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetViewDistanceWasmInterop.wasmImportGetViewDistance(handle); + return ((byte)result); + + } + + public unsafe byte GetSimulationDistance() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetSimulationDistanceWasmInterop.wasmImportGetSimulationDistance(handle); + return ((byte)result); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode GetDefaultGamemode() + { + var handle = this.Handle; + var result = ServerImportsInterop.Server.GetDefaultGamemodeWasmInterop.wasmImportGetDefaultGamemode(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.GameMode)result; + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.cs new file mode 100644 index 0000000..3a9eaba --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.cs @@ -0,0 +1,411 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface ITextImports { + + public class TextComponent: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public TextComponent(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[resource-drop]text-component"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public static unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent Text(string plain) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(plain); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + var result = TextImportsInterop.TextComponent.TextWasmInterop.wasmImportText(strPtr.ToInt32(), length); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return resource; + + } + + public static unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent Translate(string key, global::System.Collections.Generic.List with) + { + var cleanups = new global::System.Collections.Generic.List(); + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(key); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + void* address; + if ((4 * with.Count) < 1024) { + var retArea = stackalloc uint[1 * with.Count + 1]; + address = MemoryHelper.AlignStackPtr(retArea, 4); + } + else + { + var bufferSize = 4 * (nuint)with.Count; + address = global::System.Runtime.InteropServices.NativeMemory.AlignedAlloc(bufferSize, 4); + cleanups.Add(() => global::System.Runtime.InteropServices.NativeMemory.AlignedFree(address)); + } + + for (int index = 0; index < with.Count; ++index) { + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent element = with[index]; + int basePtr = (int)address + (index * 4); + var handle = element.Handle; + element.Handle = 0; + new global::System.Span((void*)((byte*)basePtr + 0), 1)[0] = handle; + + } + var result = TextImportsInterop.TextComponent.TranslateWasmInterop.wasmImportTranslate(strPtr.ToInt32(), length, (int)address, with.Count); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + return resource; + + } + + public unsafe void AddChild(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent child) + { + var handle = this.Handle; + var handle0 = child.Handle; + child.Handle = 0; + TextImportsInterop.TextComponent.AddChildWasmInterop.wasmImportAddChild(handle, handle0); + + } + + public unsafe void AddText(string text) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(text); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.AddTextWasmInterop.wasmImportAddText(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe string GetText() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + TextImportsInterop.TextComponent.GetTextWasmInterop.wasmImportGetText(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe byte[] Encode() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + TextImportsInterop.TextComponent.EncodeWasmInterop.wasmImportEncode(handle, ptr); + + var array = new byte[new global::System.Span((void*)((byte*)ptr + 4), 1)[0]]; + new global::System.Span((void*)(new global::System.Span((void*)((byte*)ptr + 0), 1)[0]), new global::System.Span((void*)((byte*)ptr + 4), 1)[0]).CopyTo(new global::System.Span(array)); + + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + return array; + + } + + public unsafe void ColorNamed(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.NamedColor color) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.ColorNamedWasmInterop.wasmImportColorNamed(handle, (int)color); + + } + + public unsafe void ColorRgb(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.RgbColor color) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.ColorRgbWasmInterop.wasmImportColorRgb(handle, color.r, color.g, color.b); + + } + + public unsafe void Bold(bool value) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.BoldWasmInterop.wasmImportBold(handle, (value ? 1 : 0)); + + } + + public unsafe void Italic(bool value) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.ItalicWasmInterop.wasmImportItalic(handle, (value ? 1 : 0)); + + } + + public unsafe void Underlined(bool value) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.UnderlinedWasmInterop.wasmImportUnderlined(handle, (value ? 1 : 0)); + + } + + public unsafe void Strikethrough(bool value) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.StrikethroughWasmInterop.wasmImportStrikethrough(handle, (value ? 1 : 0)); + + } + + public unsafe void Obfuscated(bool value) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.ObfuscatedWasmInterop.wasmImportObfuscated(handle, (value ? 1 : 0)); + + } + + public unsafe void Insertion(string text) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(text); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.InsertionWasmInterop.wasmImportInsertion(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void Font(string font) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(font); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.FontWasmInterop.wasmImportFont(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void ShadowColor(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.ArgbColor color) + { + var handle = this.Handle; + TextImportsInterop.TextComponent.ShadowColorWasmInterop.wasmImportShadowColor(handle, color.a, color.r, color.g, color.b); + + } + + public unsafe void ClickOpenUrl(string url) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(url); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.ClickOpenUrlWasmInterop.wasmImportClickOpenUrl(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void ClickRunCommand(string command) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(command); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.ClickRunCommandWasmInterop.wasmImportClickRunCommand(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void ClickSuggestCommand(string command) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(command); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.ClickSuggestCommandWasmInterop.wasmImportClickSuggestCommand(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void ClickCopyToClipboard(string text) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(text); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.ClickCopyToClipboardWasmInterop.wasmImportClickCopyToClipboard(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void HoverShowText(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent text) + { + var handle = this.Handle; + var handle0 = text.Handle; + text.Handle = 0; + TextImportsInterop.TextComponent.HoverShowTextWasmInterop.wasmImportHoverShowText(handle, handle0); + + } + + public unsafe void HoverShowItem(string item) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(item); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + TextImportsInterop.TextComponent.HoverShowItemWasmInterop.wasmImportHoverShowItem(handle, strPtr.ToInt32(), length); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void HoverShowEntity(string entityType, string id, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent? name) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(entityType); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + + var utf8Bytes1 = global::System.Text.Encoding.UTF8.GetBytes(id); + var length2 = utf8Bytes1.Length; + var gcHandle3 = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes1, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr0 = gcHandle3.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle3.Free()); + + int lowered; + int lowered8; + + if (name != null) { + var payload6 = (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent) name; + var handle7 = payload6.Handle; + payload6.Handle = 0; + + lowered = 1; + lowered8 = handle7; + + } else { + + lowered = 0; + lowered8 = 0; + + } + TextImportsInterop.TextComponent.HoverShowEntityWasmInterop.wasmImportHoverShowEntity(handle, strPtr.ToInt32(), length, strPtr0.ToInt32(), length2, lowered, lowered8); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.cs new file mode 100644 index 0000000..e89d200 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.cs @@ -0,0 +1,779 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0; + +public interface IWorldImports { + + /** + * Defines how a block reacts when pushed by a piston. + */ + + public enum PistonBehavior { + NORMAL, DESTROY, BLOCK, IGNORE, PUSH_ONLY + } + + /** + * Categories for sounds to control their volume independently. + */ + + public enum SoundCategory { + MASTER, MUSIC, RECORDS, WEATHER, BLOCKS, HOSTILE, NEUTRAL, PLAYERS, AMBIENT, VOICE + } + + /** + * Defines how an explosion interacts with blocks in the world. + */ + + public enum ExplosionInteraction { + NONE, BLOCK, MOB, TNT, TRIGGER + } + + /** + * Flags used to control block updates and notifications. + */ + + public enum BlockFlags : byte { + NOTIFY_NEIGHBORS = 1 << 0, + NOTIFY_LISTENERS = 1 << 1, + FORCE_STATE = 1 << 2, + SKIP_DROPS = 1 << 3, + MOVED = 1 << 4, + SKIP_REDSTONE_WIRE_STATE_REPLACEMENT = 1 << 5, + SKIP_BLOCK_ENTITY_REPLACED_CALLBACK = 1 << 6, + SKIP_BLOCK_ADDED_CALLBACK = 1 << 7, + } + + /** + * Detailed information about a block's state. + */ + + public struct BlockState { + public ushort id; + public byte luminance; + public byte opacity; + public float hardness; + public bool isAir; + public bool isLiquid; + public bool isSolid; + public bool isFullCube; + public PistonBehavior pistonBehavior; + public bool hasRandomTicks; + + public BlockState(ushort id, byte luminance, byte opacity, float hardness, bool isAir, bool isLiquid, bool isSolid, bool isFullCube, PistonBehavior pistonBehavior, bool hasRandomTicks) { + this.id = id; + this.luminance = luminance; + this.opacity = opacity; + this.hardness = hardness; + this.isAir = isAir; + this.isLiquid = isLiquid; + this.isSolid = isSolid; + this.isFullCube = isFullCube; + this.pistonBehavior = pistonBehavior; + this.hasRandomTicks = hasRandomTicks; + } + } + + /** + * A simple wrapper for a block state ID. + */ + + public struct BlockStateId { + public ushort id; + + public BlockStateId(ushort id) { + this.id = id; + } + } + + /** + * A position in the world grid. + */ + + public struct BlockPos { + public int x; + public int y; + public int z; + + public BlockPos(int x, int y, int z) { + this.x = x; + this.y = y; + this.z = z; + } + } + + /** + * Represents a cardinal direction or block face. + */ + + public enum BlockDirection { + DOWN, UP, NORTH, SOUTH, WEST, EAST + } + + /** + * Result of a raycast operation. + */ + + public struct RaycastResult { + public BlockPos pos; + public BlockDirection face; + + public RaycastResult(BlockPos pos, BlockDirection face) { + this.pos = pos; + this.face = face; + } + } + + public class Entity: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public Entity(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[resource-drop]entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe uint GetId() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetIdWasmInterop.wasmImportGetId(handle); + return unchecked((uint)(result)); + + } + + public unsafe string GetUuid() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.Entity.GetUuidWasmInterop.wasmImportGetUuid(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public new unsafe string GetType() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.Entity.GetTypeWasmInterop.wasmImportGetType(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe (double, double, double) GetPosition() + { + var handle = this.Handle; + + var retArea = stackalloc ulong[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 8); + WorldImportsInterop.Entity.GetPositionWasmInterop.wasmImportGetPosition(handle, ptr); + return (new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0]); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World GetWorld() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetWorldWasmInterop.wasmImportGetWorld(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World.THandle(result)); + return resource; + + } + + public unsafe float GetYaw() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetYawWasmInterop.wasmImportGetYaw(handle); + return result; + + } + + public unsafe float GetPitch() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetPitchWasmInterop.wasmImportGetPitch(handle); + return result; + + } + + public unsafe float GetHeadYaw() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetHeadYawWasmInterop.wasmImportGetHeadYaw(handle); + return result; + + } + + public unsafe bool IsOnGround() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsOnGroundWasmInterop.wasmImportIsOnGround(handle); + return (result != 0); + + } + + public unsafe bool IsSneaking() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsSneakingWasmInterop.wasmImportIsSneaking(handle); + return (result != 0); + + } + + public unsafe void SetSneaking(bool sneaking) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetSneakingWasmInterop.wasmImportSetSneaking(handle, (sneaking ? 1 : 0)); + + } + + public unsafe bool IsSprinting() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsSprintingWasmInterop.wasmImportIsSprinting(handle); + return (result != 0); + + } + + public unsafe void SetSprinting(bool sprinting) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetSprintingWasmInterop.wasmImportSetSprinting(handle, (sprinting ? 1 : 0)); + + } + + public unsafe bool IsSwimming() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsSwimmingWasmInterop.wasmImportIsSwimming(handle); + return (result != 0); + + } + + public unsafe void SetSwimming(bool swimming) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetSwimmingWasmInterop.wasmImportSetSwimming(handle, (swimming ? 1 : 0)); + + } + + public unsafe bool IsInvisible() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsInvisibleWasmInterop.wasmImportIsInvisible(handle); + return (result != 0); + + } + + public unsafe void SetInvisible(bool invisible) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetInvisibleWasmInterop.wasmImportSetInvisible(handle, (invisible ? 1 : 0)); + + } + + public unsafe bool IsGlowing() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsGlowingWasmInterop.wasmImportIsGlowing(handle); + return (result != 0); + + } + + public unsafe void SetGlowing(bool glowing) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetGlowingWasmInterop.wasmImportSetGlowing(handle, (glowing ? 1 : 0)); + + } + + public unsafe bool IsFallFlying() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsFallFlyingWasmInterop.wasmImportIsFallFlying(handle); + return (result != 0); + + } + + public unsafe void SetFallFlying(bool fallFlying) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetFallFlyingWasmInterop.wasmImportSetFallFlying(handle, (fallFlying ? 1 : 0)); + + } + + public unsafe bool IsOnFire() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsOnFireWasmInterop.wasmImportIsOnFire(handle); + return (result != 0); + + } + + public unsafe void SetOnFire(bool onFire) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetOnFireWasmInterop.wasmImportSetOnFire(handle, (onFire ? 1 : 0)); + + } + + public unsafe void Teleport((double, double, double) pos, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.World worldRef) + { + var handle = this.Handle; + var handle0 = worldRef.Handle; + worldRef.Handle = 0; + WorldImportsInterop.Entity.TeleportWasmInterop.wasmImportTeleport(handle, pos.Item1, pos.Item2, pos.Item3, handle0); + + } + + public unsafe void SetVelocity((double, double, double) velocity) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetVelocityWasmInterop.wasmImportSetVelocity(handle, velocity.Item1, velocity.Item2, velocity.Item3); + + } + + public unsafe (double, double, double) GetVelocity() + { + var handle = this.Handle; + + var retArea = stackalloc ulong[4]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 8); + WorldImportsInterop.Entity.GetVelocityWasmInterop.wasmImportGetVelocity(handle, ptr); + return (new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 16), 1)[0]); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.EntityPose GetPose() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetPoseWasmInterop.wasmImportGetPose(handle); + return (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ICommonImports.EntityPose)result; + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent GetName() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetNameWasmInterop.wasmImportGetName(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(result)); + return resource; + + } + + public unsafe void SetCustomName(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent name) + { + var handle = this.Handle; + var handle0 = name.Handle; + name.Handle = 0; + WorldImportsInterop.Entity.SetCustomNameWasmInterop.wasmImportSetCustomName(handle, handle0); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent? GetCustomName() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.Entity.GetCustomNameWasmInterop.wasmImportGetCustomName(handle, ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent.THandle(new global::System.Span((void*)((byte*)ptr + 4), 1)[0])); + + lifted = resource; + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + public unsafe void SetCustomNameVisible(bool visible) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetCustomNameVisibleWasmInterop.wasmImportSetCustomNameVisible(handle, (visible ? 1 : 0)); + + } + + public unsafe bool IsCustomNameVisible() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsCustomNameVisibleWasmInterop.wasmImportIsCustomNameVisible(handle); + return (result != 0); + + } + + public unsafe bool IsInvulnerable() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.IsInvulnerableWasmInterop.wasmImportIsInvulnerable(handle); + return (result != 0); + + } + + public unsafe void SetInvulnerable(bool invulnerable) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetInvulnerableWasmInterop.wasmImportSetInvulnerable(handle, (invulnerable ? 1 : 0)); + + } + + public unsafe int GetFireTicks() + { + var handle = this.Handle; + var result = WorldImportsInterop.Entity.GetFireTicksWasmInterop.wasmImportGetFireTicks(handle); + return result; + + } + + public unsafe void SetFireTicks(int ticks) + { + var handle = this.Handle; + WorldImportsInterop.Entity.SetFireTicksWasmInterop.wasmImportSetFireTicks(handle, ticks); + + } + + public unsafe void Remove() + { + var handle = this.Handle; + WorldImportsInterop.Entity.RemoveWasmInterop.wasmImportRemove(handle); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.RaycastResult? Raycast(double maxDistance, bool fluidHandling) + { + var handle = this.Handle; + + var retArea = stackalloc uint[6]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.Entity.RaycastWasmInterop.wasmImportRaycast(handle, maxDistance, (fluidHandling ? 1 : 0), ptr); + + global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.RaycastResult? lifted; + + switch (new global::System.Span((byte*)ptr + 0, 1)[0]) { + case 0: { + lifted = null; + break; + } + + case 1: { + + lifted = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.RaycastResult ( + new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockPos ( + new global::System.Span((void*)((byte*)ptr + 4), 1)[0], new global::System.Span((void*)((byte*)ptr + 8), 1)[0], new global::System.Span((void*)((byte*)ptr + 12), 1)[0]), (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockDirection)new global::System.Span((byte*)ptr + 16, 1)[0]); + break; + } + + default: throw new global::System.ArgumentException("invalid discriminant: " + (new global::System.Span((byte*)ptr + 0, 1)[0])); + } + return lifted; + + } + + } + + /** + * Represents a Minecraft world (dimension). + */ + + public class World: global::System.IDisposable { + internal int Handle { get; set; } + + public readonly record struct THandle(int Handle); + + public World(THandle handle) { + Handle = handle.Handle; + } + + public void Dispose() { + Dispose(true); + } + + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[resource-drop]world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + private static extern void wasmImportResourceDrop(int p0); + + protected virtual void Dispose(bool disposing) { + if (disposing && Handle != 0) { + wasmImportResourceDrop(Handle); + Handle = 0; + } + } + + public unsafe string GetId() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.World.GetIdWasmInterop.wasmImportGetId(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe ushort GetBlockStateId(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockPos pos) + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetBlockStateIdWasmInterop.wasmImportGetBlockStateId(handle, pos.x, pos.y, pos.z); + return ((ushort)result); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockState GetBlockState(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockPos pos) + { + var handle = this.Handle; + + var retArea = stackalloc uint[5]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.World.GetBlockStateWasmInterop.wasmImportGetBlockState(handle, pos.x, pos.y, pos.z, ptr); + return new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockState ( + ((ushort)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]), ((byte)new global::System.Span((byte*)ptr + 2, 1)[0]), ((byte)new global::System.Span((byte*)ptr + 3, 1)[0]), new global::System.Span((void*)((byte*)ptr + 4), 1)[0], (new global::System.Span((byte*)ptr + 8, 1)[0] != 0), (new global::System.Span((byte*)ptr + 9, 1)[0] != 0), (new global::System.Span((byte*)ptr + 10, 1)[0] != 0), (new global::System.Span((byte*)ptr + 11, 1)[0] != 0), (global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.PistonBehavior)new global::System.Span((byte*)ptr + 12, 1)[0], (new global::System.Span((byte*)ptr + 13, 1)[0] != 0)); + + } + + public unsafe void SetBlockState(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockPos pos, ushort state, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.BlockFlags updateFlags) + { + var handle = this.Handle; + WorldImportsInterop.World.SetBlockStateWasmInterop.wasmImportSetBlockState(handle, pos.x, pos.y, pos.z, state, (int)updateFlags); + + } + + public unsafe ulong GetTimeOfDay() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetTimeOfDayWasmInterop.wasmImportGetTimeOfDay(handle); + return unchecked((ulong)(result)); + + } + + public unsafe void SetTimeOfDay(ulong time) + { + var handle = this.Handle; + WorldImportsInterop.World.SetTimeOfDayWasmInterop.wasmImportSetTimeOfDay(handle, unchecked((long)(time))); + + } + + public unsafe ulong GetWorldAge() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetWorldAgeWasmInterop.wasmImportGetWorldAge(handle); + return unchecked((ulong)(result)); + + } + + public unsafe string GetDimension() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.World.GetDimensionWasmInterop.wasmImportGetDimension(handle, ptr); + + var str = global::System.Text.Encoding.UTF8.GetString((byte*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0], new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + + return str; + + } + + public unsafe int GetTopBlockY(int x, int z) + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetTopBlockYWasmInterop.wasmImportGetTopBlockY(handle, x, z); + return result; + + } + + public unsafe int GetMotionBlockingHeight(int x, int z) + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetMotionBlockingHeightWasmInterop.wasmImportGetMotionBlockingHeight(handle, x, z); + return result; + + } + + public unsafe bool IsRaining() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.IsRainingWasmInterop.wasmImportIsRaining(handle); + return (result != 0); + + } + + public unsafe void SetRaining(bool raining) + { + var handle = this.Handle; + WorldImportsInterop.World.SetRainingWasmInterop.wasmImportSetRaining(handle, (raining ? 1 : 0)); + + } + + public unsafe bool IsThundering() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.IsThunderingWasmInterop.wasmImportIsThundering(handle); + return (result != 0); + + } + + public unsafe void SetThundering(bool thundering) + { + var handle = this.Handle; + WorldImportsInterop.World.SetThunderingWasmInterop.wasmImportSetThundering(handle, (thundering ? 1 : 0)); + + } + + public unsafe void BroadcastSystemMessage(global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ITextImports.TextComponent message, bool overlay) + { + var handle = this.Handle; + var handle0 = message.Handle; + message.Handle = 0; + WorldImportsInterop.World.BroadcastSystemMessageWasmInterop.wasmImportBroadcastSystemMessage(handle, handle0, (overlay ? 1 : 0)); + + } + + public unsafe global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.Scoreboard GetScoreboard() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetScoreboardWasmInterop.wasmImportGetScoreboard(handle); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.Scoreboard(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IScoreboardImports.Scoreboard.THandle(result)); + return resource; + + } + + public unsafe void PlaySound(string sound, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.SoundCategory category, (double, double, double) pos, float volume, float pitch) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(sound); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + WorldImportsInterop.World.PlaySoundWasmInterop.wasmImportPlaySound(handle, strPtr.ToInt32(), length, (int)category, pos.Item1, pos.Item2, pos.Item3, volume, pitch); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void SpawnParticle(string particle, (double, double, double) pos, (double, double, double) offset, float maxSpeed, int count) + { + var cleanups = new global::System.Collections.Generic.List(); + var handle = this.Handle; + + var utf8Bytes = global::System.Text.Encoding.UTF8.GetBytes(particle); + var length = utf8Bytes.Length; + var gcHandle = global::System.Runtime.InteropServices.GCHandle.Alloc(utf8Bytes, global::System.Runtime.InteropServices.GCHandleType.Pinned); + var strPtr = gcHandle.AddrOfPinnedObject(); + + cleanups.Add(()=> gcHandle.Free()); + WorldImportsInterop.World.SpawnParticleWasmInterop.wasmImportSpawnParticle(handle, strPtr.ToInt32(), length, pos.Item1, pos.Item2, pos.Item3, offset.Item1, offset.Item2, offset.Item3, maxSpeed, count); + + foreach (var cleanup in cleanups) + { + cleanup(); + } + + } + + public unsafe void CreateExplosion((double, double, double) pos, float power, bool createFire, global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.ExplosionInteraction interaction) + { + var handle = this.Handle; + WorldImportsInterop.World.CreateExplosionWasmInterop.wasmImportCreateExplosion(handle, pos.Item1, pos.Item2, pos.Item3, power, (createFire ? 1 : 0), (int)interaction); + + } + + public unsafe int GetSeaLevel() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetSeaLevelWasmInterop.wasmImportGetSeaLevel(handle); + return result; + + } + + public unsafe int GetMinY() + { + var handle = this.Handle; + var result = WorldImportsInterop.World.GetMinYWasmInterop.wasmImportGetMinY(handle); + return result; + + } + + public unsafe global::System.Collections.Generic.List GetEntities() + { + var handle = this.Handle; + + var retArea = stackalloc uint[3]; + var ptr = (nint)MemoryHelper.AlignStackPtr(retArea, 4); + WorldImportsInterop.World.GetEntitiesWasmInterop.wasmImportGetEntities(handle, ptr); + + var array = new global::System.Collections.Generic.List(new global::System.Span((void*)((byte*)ptr + 4), 1)[0]); + for (int index = 0; index < new global::System.Span((void*)((byte*)ptr + 4), 1)[0]; ++index) { + nint basePtr = new global::System.Span((void*)((byte*)ptr + 0), 1)[0] + (index * 4); + var resource = new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity(new global::PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.IWorldImports.Entity.THandle(new global::System.Span((void*)((byte*)basePtr + 0), 1)[0])); + + array.Add(resource); + } + + if (new global::System.Span((void*)((byte*)ptr + 4), 1)[0] > 0) { + global::System.Runtime.InteropServices.NativeMemory.Free((void*)new global::System.Span((void*)((byte*)ptr + 0), 1)[0]); + } + return array; + + } + + } + +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.LoggingImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.LoggingImportsInterop.cs new file mode 100644 index 0000000..ec1d2f6 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.LoggingImportsInterop.cs @@ -0,0 +1,24 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class LoggingImportsInterop { + + public static class LogWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/logging@0.1.0", EntryPoint = "log"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportLog(int p0, nint p1, int p2); + } + + public static class LogTracingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/logging@0.1.0", EntryPoint = "log-tracing"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportLogTracing(nint p0, int p1); + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PermissionImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PermissionImportsInterop.cs new file mode 100644 index 0000000..b625f56 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PermissionImportsInterop.cs @@ -0,0 +1,12 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class PermissionImportsInterop { + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PlayerImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PlayerImportsInterop.cs new file mode 100644 index 0000000..f834ebe --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.PlayerImportsInterop.cs @@ -0,0 +1,413 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class PlayerImportsInterop { + + internal static class Player + { + + public static class AsEntityWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.as-entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportAsEntity(int p0); + } + + public static class GetIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetId(int p0, nint p1); + } + + public static class GetNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetName(int p0, nint p1); + } + + public static class GetPositionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-position"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPosition(int p0, nint p1); + } + + public static class GetYawWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-yaw"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetYaw(int p0); + } + + public static class GetPitchWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-pitch"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetPitch(int p0); + } + + public static class GetWorldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetWorld(int p0); + } + + public static class GetGamemodeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-gamemode"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetGamemode(int p0); + } + + public static class SetGamemodeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-gamemode"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportSetGamemode(int p0, int p1); + } + + public static class GetLocaleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-locale"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetLocale(int p0, nint p1); + } + + public static class GetPingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-ping"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetPing(int p0); + } + + public static class GetPermissionLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-permission-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetPermissionLevel(int p0); + } + + public static class SetPermissionLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-permission-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetPermissionLevel(int p0, int p1); + } + + public static class SetPermissionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-permission"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetPermission(int p0, nint p1, int p2, int p3); + } + + public static class UnsetPermissionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.unset-permission"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportUnsetPermission(int p0, nint p1, int p2); + } + + public static class HasPermissionSetWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.has-permission-set"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportHasPermissionSet(int p0, nint p1, int p2, nint p3); + } + + public static class HasPermissionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.has-permission"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportHasPermission(int p0, nint p1, int p2); + } + + public static class GetDisplayNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-display-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetDisplayName(int p0); + } + + public static class SetDisplayNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-display-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetDisplayName(int p0, int p1); + } + + public static class SendSystemMessageWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.send-system-message"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSendSystemMessage(int p0, int p1, int p2); + } + + public static class SetTabListHeaderFooterWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-tab-list-header-footer"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTabListHeaderFooter(int p0, int p1, int p2); + } + + public static class SetTabListOrderWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-tab-list-order"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTabListOrder(int p0, int p1); + } + + public static class SetTabListLatencyWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-tab-list-latency"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTabListLatency(int p0, int p1); + } + + public static class SetTabListListedWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-tab-list-listed"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTabListListed(int p0, int p1); + } + + public static class ShowTitleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.show-title"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportShowTitle(int p0, int p1); + } + + public static class ShowSubtitleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.show-subtitle"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportShowSubtitle(int p0, int p1); + } + + public static class ShowActionbarWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.show-actionbar"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportShowActionbar(int p0, int p1); + } + + public static class SendTitleAnimationWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.send-title-animation"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSendTitleAnimation(int p0, int p1, int p2, int p3); + } + + public static class TeleportWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.teleport"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportTeleport(int p0, double p1, double p2, double p3, int p4, float p5, int p6, float p7, int p8); + } + + public static class TeleportWorldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.teleport-world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportTeleportWorld(int p0, int p1, double p2, double p3, double p4, int p5, float p6, int p7, float p8); + } + + public static class KickWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.kick"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportKick(int p0, int p1); + } + + public static class RespawnWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.respawn"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRespawn(int p0); + } + + public static class OpenGuiWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.open-gui"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportOpenGui(int p0, int p1); + } + + public static class BanWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.ban"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBan(int p0, int p1, int p2); + } + + public static class BanIpWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.ban-ip"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBanIp(int p0, int p1, int p2); + } + + public static class GetSelectedSlotWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-selected-slot"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetSelectedSlot(int p0); + } + + public static class GetItemInHandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-item-in-hand"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetItemInHand(int p0, int p1, nint p2); + } + + public static class GetInventoryItemWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-inventory-item"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetInventoryItem(int p0, int p1, nint p2); + } + + public static class GetHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetHealth(int p0); + } + + public static class SetHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetHealth(int p0, float p1); + } + + public static class GetMaxHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-max-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetMaxHealth(int p0); + } + + public static class SetMaxHealthWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-max-health"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetMaxHealth(int p0, float p1); + } + + public static class GetFoodLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-food-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetFoodLevel(int p0); + } + + public static class SetFoodLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-food-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetFoodLevel(int p0, int p1); + } + + public static class GetSaturationWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-saturation"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetSaturation(int p0); + } + + public static class SetSaturationWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-saturation"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSaturation(int p0, float p1); + } + + public static class GetExhaustionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-exhaustion"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetExhaustion(int p0); + } + + public static class SetExhaustionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-exhaustion"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetExhaustion(int p0, float p1); + } + + public static class GetAbsorptionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-absorption"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetAbsorption(int p0); + } + + public static class SetAbsorptionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-absorption"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetAbsorption(int p0, float p1); + } + + public static class GetExperienceLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-experience-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetExperienceLevel(int p0); + } + + public static class GetExperienceProgressWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-experience-progress"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetExperienceProgress(int p0); + } + + public static class GetExperiencePointsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-experience-points"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetExperiencePoints(int p0); + } + + public static class SetExperienceLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-experience-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetExperienceLevel(int p0, int p1); + } + + public static class SetExperienceProgressWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-experience-progress"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetExperienceProgress(int p0, float p1); + } + + public static class SetExperiencePointsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-experience-points"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetExperiencePoints(int p0, int p1); + } + + public static class AddExperienceLevelsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.add-experience-levels"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddExperienceLevels(int p0, int p1); + } + + public static class AddExperiencePointsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.add-experience-points"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddExperiencePoints(int p0, int p1); + } + + public static class IsFlyingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.is-flying"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsFlying(int p0); + } + + public static class SetFlyingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-flying"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetFlying(int p0, int p1); + } + + public static class GetAbilitiesWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-abilities"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetAbilities(int p0, nint p1); + } + + public static class SetAbilitiesWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-abilities"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetAbilities(int p0, int p1, int p2, int p3, int p4, int p5, float p6, float p7); + } + + public static class GetIpWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-ip"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetIp(int p0, nint p1); + } + + public static class GetSkinWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-skin"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetSkin(int p0, nint p1); + } + + public static class GetSkinPartsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.get-skin-parts"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetSkinParts(int p0); + } + + public static class SetSkinPartsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/player@0.1.0", EntryPoint = "[method]player.set-skin-parts"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSkinParts(int p0, int p1); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.SchedulerImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.SchedulerImportsInterop.cs new file mode 100644 index 0000000..2cc8908 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.SchedulerImportsInterop.cs @@ -0,0 +1,30 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class SchedulerImportsInterop { + + public static class ScheduleDelayedTaskWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scheduler@0.1.0", EntryPoint = "schedule-delayed-task"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportScheduleDelayedTask(int p0, long p1); + } + + public static class ScheduleRepeatingTaskWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scheduler@0.1.0", EntryPoint = "schedule-repeating-task"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportScheduleRepeatingTask(int p0, long p1, long p2); + } + + public static class CancelTaskWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scheduler@0.1.0", EntryPoint = "cancel-task"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportCancelTask(int p0); + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ScoreboardImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ScoreboardImportsInterop.cs new file mode 100644 index 0000000..29ca0a5 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ScoreboardImportsInterop.cs @@ -0,0 +1,77 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class ScoreboardImportsInterop { + + internal static class Scoreboard + { + + public static class AddObjectiveWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.add-objective"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddObjective(int p0, nint p1, int p2, int p3, int p4); + } + + public static class RemoveObjectiveWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.remove-objective"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemoveObjective(int p0, nint p1, int p2); + } + + public static class SetDisplaySlotWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.set-display-slot"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetDisplaySlot(int p0, int p1, nint p2, int p3); + } + + public static class UpdateScoreWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.update-score"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportUpdateScore(int p0, nint p1, int p2, nint p3, int p4, int p5); + } + + public static class RemoveScoreWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.remove-score"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemoveScore(int p0, nint p1, int p2, nint p3, int p4); + } + + public static class CreateTeamWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.create-team"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportCreateTeam(int p0, nint p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10); + } + + public static class RemoveTeamWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.remove-team"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemoveTeam(int p0, nint p1, int p2); + } + + public static class UpdateTeamWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.update-team"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportUpdateTeam(int p0, nint p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10); + } + + public static class AddPlayerToTeamWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.add-player-to-team"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddPlayerToTeam(int p0, nint p1, int p2, nint p3, int p4); + } + + public static class RemovePlayerFromTeamWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/scoreboard@0.1.0", EntryPoint = "[method]scoreboard.remove-player-from-team"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemovePlayerFromTeam(int p0, nint p1, int p2, nint p3, int p4); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ServerImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ServerImportsInterop.cs new file mode 100644 index 0000000..0d3b510 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.ServerImportsInterop.cs @@ -0,0 +1,155 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class ServerImportsInterop { + + internal static class Server + { + + public static class GetDifficultyWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-difficulty"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetDifficulty(int p0); + } + + public static class GetPlayerCountWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-player-count"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetPlayerCount(int p0); + } + + public static class GetMsptWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-mspt"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern double wasmImportGetMspt(int p0); + } + + public static class GetTpsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-tps"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern double wasmImportGetTps(int p0); + } + + public static class GetAllPlayersWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-all-players"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetAllPlayers(int p0, nint p1); + } + + public static class GetPlayerByNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-player-by-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPlayerByName(int p0, nint p1, int p2, nint p3); + } + + public static class GetPlayerByUuidWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-player-by-uuid"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPlayerByUuid(int p0, nint p1, int p2, nint p3); + } + + public static class GetAllWorldsWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-all-worlds"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetAllWorlds(int p0, nint p1); + } + + public static class GetWorldByNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-world-by-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetWorldByName(int p0, nint p1, int p2, nint p3); + } + + public static class ExecuteCommandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.execute-command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportExecuteCommand(int p0, nint p1, int p2, int p3, int p4); + } + + public static class CreateWorldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.create-world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportCreateWorld(int p0, nint p1, int p2, int p3); + } + + public static class BroadcastWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.broadcast"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBroadcast(int p0, nint p1, int p2); + } + + public static class BroadcastTabListHeaderFooterWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.broadcast-tab-list-header-footer"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBroadcastTabListHeaderFooter(int p0, int p1, int p2); + } + + public static class GetMaxPlayersWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-max-players"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetMaxPlayers(int p0); + } + + public static class IsHardcoreWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.is-hardcore"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsHardcore(int p0); + } + + public static class IsOnlineModeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.is-online-mode"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsOnlineMode(int p0); + } + + public static class GetMotdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-motd"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetMotd(int p0, nint p1); + } + + public static class HasWhitelistWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.has-whitelist"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportHasWhitelist(int p0); + } + + public static class GetAllowNetherWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-allow-nether"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetAllowNether(int p0); + } + + public static class GetAllowEndWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-allow-end"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetAllowEnd(int p0); + } + + public static class GetViewDistanceWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-view-distance"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetViewDistance(int p0); + } + + public static class GetSimulationDistanceWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-simulation-distance"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetSimulationDistance(int p0); + } + + public static class GetDefaultGamemodeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/server@0.1.0", EntryPoint = "[method]server.get-default-gamemode"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetDefaultGamemode(int p0); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.TextImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.TextImportsInterop.cs new file mode 100644 index 0000000..072b87f --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.TextImportsInterop.cs @@ -0,0 +1,155 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class TextImportsInterop { + + internal static class TextComponent + { + + public static class TextWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[static]text-component.text"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportText(nint p0, int p1); + } + + public static class TranslateWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[static]text-component.translate"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportTranslate(nint p0, int p1, nint p2, int p3); + } + + public static class AddChildWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.add-child"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddChild(int p0, int p1); + } + + public static class AddTextWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.add-text"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportAddText(int p0, nint p1, int p2); + } + + public static class GetTextWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.get-text"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetText(int p0, nint p1); + } + + public static class EncodeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.encode"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportEncode(int p0, nint p1); + } + + public static class ColorNamedWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.color-named"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportColorNamed(int p0, int p1); + } + + public static class ColorRgbWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.color-rgb"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportColorRgb(int p0, int p1, int p2, int p3); + } + + public static class BoldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.bold"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBold(int p0, int p1); + } + + public static class ItalicWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.italic"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportItalic(int p0, int p1); + } + + public static class UnderlinedWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.underlined"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportUnderlined(int p0, int p1); + } + + public static class StrikethroughWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.strikethrough"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportStrikethrough(int p0, int p1); + } + + public static class ObfuscatedWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.obfuscated"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportObfuscated(int p0, int p1); + } + + public static class InsertionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.insertion"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportInsertion(int p0, nint p1, int p2); + } + + public static class FontWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.font"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportFont(int p0, nint p1, int p2); + } + + public static class ShadowColorWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.shadow-color"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportShadowColor(int p0, int p1, int p2, int p3, int p4); + } + + public static class ClickOpenUrlWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.click-open-url"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClickOpenUrl(int p0, nint p1, int p2); + } + + public static class ClickRunCommandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.click-run-command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClickRunCommand(int p0, nint p1, int p2); + } + + public static class ClickSuggestCommandWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.click-suggest-command"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClickSuggestCommand(int p0, nint p1, int p2); + } + + public static class ClickCopyToClipboardWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.click-copy-to-clipboard"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportClickCopyToClipboard(int p0, nint p1, int p2); + } + + public static class HoverShowTextWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.hover-show-text"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportHoverShowText(int p0, int p1); + } + + public static class HoverShowItemWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.hover-show-item"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportHoverShowItem(int p0, nint p1, int p2); + } + + public static class HoverShowEntityWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/text@0.1.0", EntryPoint = "[method]text-component.hover-show-entity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportHoverShowEntity(int p0, nint p1, int p2, nint p3, int p4, int p5, int p6); + } + + } + + } +} diff --git a/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.WorldImportsInterop.cs b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.WorldImportsInterop.cs new file mode 100644 index 0000000..2dccd42 --- /dev/null +++ b/src/gen/PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0.WorldImportsInterop.cs @@ -0,0 +1,382 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +using System; + +namespace PluginWorld.wit.Imports.pumpkin.plugin.v0_1_0 +{ + public static class WorldImportsInterop { + + internal static class Entity + { + + public static class GetIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetId(int p0); + } + + public static class GetUuidWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-uuid"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetUuid(int p0, nint p1); + } + + public static class GetTypeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-type"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetType(int p0, nint p1); + } + + public static class GetPositionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-position"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetPosition(int p0, nint p1); + } + + public static class GetWorldWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-world"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetWorld(int p0); + } + + public static class GetYawWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-yaw"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetYaw(int p0); + } + + public static class GetPitchWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-pitch"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetPitch(int p0); + } + + public static class GetHeadYawWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-head-yaw"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern float wasmImportGetHeadYaw(int p0); + } + + public static class IsOnGroundWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-on-ground"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsOnGround(int p0); + } + + public static class IsSneakingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-sneaking"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsSneaking(int p0); + } + + public static class SetSneakingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-sneaking"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSneaking(int p0, int p1); + } + + public static class IsSprintingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-sprinting"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsSprinting(int p0); + } + + public static class SetSprintingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-sprinting"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSprinting(int p0, int p1); + } + + public static class IsSwimmingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-swimming"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsSwimming(int p0); + } + + public static class SetSwimmingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-swimming"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetSwimming(int p0, int p1); + } + + public static class IsInvisibleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-invisible"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsInvisible(int p0); + } + + public static class SetInvisibleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-invisible"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetInvisible(int p0, int p1); + } + + public static class IsGlowingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-glowing"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsGlowing(int p0); + } + + public static class SetGlowingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-glowing"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetGlowing(int p0, int p1); + } + + public static class IsFallFlyingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-fall-flying"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsFallFlying(int p0); + } + + public static class SetFallFlyingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-fall-flying"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetFallFlying(int p0, int p1); + } + + public static class IsOnFireWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-on-fire"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsOnFire(int p0); + } + + public static class SetOnFireWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-on-fire"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetOnFire(int p0, int p1); + } + + public static class TeleportWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.teleport"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportTeleport(int p0, double p1, double p2, double p3, int p4); + } + + public static class SetVelocityWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-velocity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetVelocity(int p0, double p1, double p2, double p3); + } + + public static class GetVelocityWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-velocity"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetVelocity(int p0, nint p1); + } + + public static class GetPoseWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-pose"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetPose(int p0); + } + + public static class GetNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetName(int p0); + } + + public static class SetCustomNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-custom-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetCustomName(int p0, int p1); + } + + public static class GetCustomNameWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-custom-name"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetCustomName(int p0, nint p1); + } + + public static class SetCustomNameVisibleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-custom-name-visible"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetCustomNameVisible(int p0, int p1); + } + + public static class IsCustomNameVisibleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-custom-name-visible"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsCustomNameVisible(int p0); + } + + public static class IsInvulnerableWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.is-invulnerable"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsInvulnerable(int p0); + } + + public static class SetInvulnerableWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-invulnerable"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetInvulnerable(int p0, int p1); + } + + public static class GetFireTicksWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.get-fire-ticks"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetFireTicks(int p0); + } + + public static class SetFireTicksWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.set-fire-ticks"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetFireTicks(int p0, int p1); + } + + public static class RemoveWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.remove"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRemove(int p0); + } + + public static class RaycastWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]entity.raycast"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportRaycast(int p0, double p1, int p2, nint p3); + } + + } + + internal static class World + { + + public static class GetIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetId(int p0, nint p1); + } + + public static class GetBlockStateIdWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-block-state-id"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetBlockStateId(int p0, int p1, int p2, int p3); + } + + public static class GetBlockStateWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-block-state"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetBlockState(int p0, int p1, int p2, int p3, nint p4); + } + + public static class SetBlockStateWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.set-block-state"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetBlockState(int p0, int p1, int p2, int p3, int p4, int p5); + } + + public static class GetTimeOfDayWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-time-of-day"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern long wasmImportGetTimeOfDay(int p0); + } + + public static class SetTimeOfDayWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.set-time-of-day"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetTimeOfDay(int p0, long p1); + } + + public static class GetWorldAgeWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-world-age"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern long wasmImportGetWorldAge(int p0); + } + + public static class GetDimensionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-dimension"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetDimension(int p0, nint p1); + } + + public static class GetTopBlockYWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-top-block-y"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetTopBlockY(int p0, int p1, int p2); + } + + public static class GetMotionBlockingHeightWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-motion-blocking-height"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetMotionBlockingHeight(int p0, int p1, int p2); + } + + public static class IsRainingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.is-raining"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsRaining(int p0); + } + + public static class SetRainingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.set-raining"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetRaining(int p0, int p1); + } + + public static class IsThunderingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.is-thundering"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportIsThundering(int p0); + } + + public static class SetThunderingWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.set-thundering"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSetThundering(int p0, int p1); + } + + public static class BroadcastSystemMessageWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.broadcast-system-message"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportBroadcastSystemMessage(int p0, int p1, int p2); + } + + public static class GetScoreboardWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-scoreboard"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetScoreboard(int p0); + } + + public static class PlaySoundWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.play-sound"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportPlaySound(int p0, nint p1, int p2, int p3, double p4, double p5, double p6, float p7, float p8); + } + + public static class SpawnParticleWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.spawn-particle"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportSpawnParticle(int p0, nint p1, int p2, double p3, double p4, double p5, double p6, double p7, double p8, float p9, int p10); + } + + public static class CreateExplosionWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.create-explosion"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportCreateExplosion(int p0, double p1, double p2, double p3, float p4, int p5, int p6); + } + + public static class GetSeaLevelWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-sea-level"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetSeaLevel(int p0); + } + + public static class GetMinYWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-min-y"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern int wasmImportGetMinY(int p0); + } + + public static class GetEntitiesWasmInterop + { + [global::System.Runtime.InteropServices.DllImportAttribute("pumpkin:plugin/world@0.1.0", EntryPoint = "[method]world.get-entities"), global::System.Runtime.InteropServices.WasmImportLinkageAttribute] + public static extern void wasmImportGetEntities(int p0, nint p1); + } + + } + + } +} diff --git a/src/gen/PluginWorld_component_type.wit b/src/gen/PluginWorld_component_type.wit new file mode 100644 index 0000000..d01ca48 --- /dev/null +++ b/src/gen/PluginWorld_component_type.wit @@ -0,0 +1,1399 @@ +package pumpkin:plugin@0.1.0; + +interface logging { + enum level { + trace, + debug, + info, + warn, + error, + } + + log: func(level: level, message: string); + + log-tracing: func(event: list); +} + +interface common { + type raw-text-component = list; + + type block-position = tuple; + + type position = tuple; + + enum hand { + left, + right, + } + + enum game-mode { + survival, + creative, + adventure, + spectator, + } + + enum named-color { + black, + dark-blue, + dark-green, + dark-aqua, + dark-red, + dark-purple, + gold, + gray, + dark-gray, + blue, + green, + aqua, + red, + light-purple, + yellow, + white, + } + + record rgb-color { + r: u8, + g: u8, + b: u8, + } + + record argb-color { + a: u8, + r: u8, + g: u8, + b: u8, + } + + record item-stack { + registry-key: string, + count: u8, + } + + enum click-type { + left, + right, + shift-left, + shift-right, + middle, + drop, + control-drop, + double-click, + number-key, + unknown, + } + + enum entity-pose { + standing, + fall-flying, + sleeping, + swimming, + spin-attack, + crouching, + long-jumping, + dying, + croaking, + using-tongue, + sitting, + roaring, + sniffing, + emerging, + digging, + sliding, + shooting, + inhaling, + } + + enum locale { + af-za, + ar-sa, + ast-es, + az-az, + ba-ru, + bar, + be-by, + bg-bg, + br-fr, + brb, + bs-ba, + ca-es, + cs-cz, + cy-gb, + da-dk, + de-at, + de-ch, + de-de, + el-gr, + en-au, + en-ca, + en-gb, + en-nz, + en-pt, + en-ud, + en-us, + enp, + enws, + eo-uy, + es-ar, + es-cl, + es-ec, + es-es, + es-mx, + es-uy, + es-ve, + esan, + et-ee, + eu-es, + fa-ir, + fi-fi, + fil-ph, + fo-fo, + fr-ca, + fr-fr, + fra-de, + fur-it, + fy-nl, + ga-ie, + gd-gb, + gl-es, + haw-us, + he-il, + hi-in, + hr-hr, + hu-hu, + hy-am, + id-id, + ig-ng, + io-en, + is-is, + isv, + it-it, + ja-jp, + jbo-en, + ka-ge, + kk-kz, + kn-in, + ko-kr, + ksh, + kw-gb, + la-la, + lb-lu, + li-li, + lmo, + lo-la, + lol-us, + lt-lt, + lv-lv, + lzh, + mk-mk, + mn-mn, + ms-my, + mt-mt, + nah, + nds-de, + nl-be, + nl-nl, + nn-no, + no-no, + oc-fr, + ovd, + pl-pl, + pt-br, + pt-pt, + qya-aa, + ro-ro, + rpr, + ru-ru, + ry-ua, + sah-sah, + se-no, + sk-sk, + sl-si, + so-so, + sq-al, + sr-cs, + sr-sp, + sv-se, + sxu, + szl, + ta-in, + th-th, + tl-ph, + tlh-aa, + tok, + tr-tr, + tt-ru, + uk-ua, + val-es, + vec-it, + vi-vn, + yi-de, + yo-ng, + zh-cn, + zh-hk, + zh-tw, + zlm-arab, + } +} + +interface text { + use common.{named-color, rgb-color, argb-color}; + + resource text-component { + text: static func(plain: string) -> text-component; + translate: static func(key: string, %with: list) -> text-component; + add-child: func(child: text-component); + add-text: func(text: string); + get-text: func() -> string; + encode: func() -> list; + color-named: func(color: named-color); + color-rgb: func(color: rgb-color); + bold: func(value: bool); + italic: func(value: bool); + underlined: func(value: bool); + strikethrough: func(value: bool); + obfuscated: func(value: bool); + insertion: func(text: string); + font: func(font: string); + shadow-color: func(color: argb-color); + click-open-url: func(url: string); + click-run-command: func(command: string); + click-suggest-command: func(command: string); + click-copy-to-clipboard: func(text: string); + hover-show-text: func(text: text-component); + hover-show-item: func(item: string); + hover-show-entity: func(entity-type: string, id: string, name: option); + } +} + +interface gui { + use text.{text-component}; + use common.{item-stack, click-type}; + + enum gui-type { + generic-9x1, + generic-9x2, + generic-9x3, + generic-9x4, + generic-9x5, + generic-9x6, + generic-3x3, + crafter-3x3, + anvil, + beacon, + blast-furnace, + brewing-stand, + crafting, + enchantment, + furnace, + grindstone, + hopper, + lectern, + loom, + merchant, + shulker-box, + smithing, + smoker, + cartography-table, + stonecutter, + } + + resource gui { + constructor(%type: gui-type, title: text-component); + set-item: func(slot: u32, item: item-stack); + get-item: func(slot: u32) -> option; + get-type: func() -> gui-type; + get-title: func() -> text-component; + get-size: func() -> u32; + clear-items: func(); + set-allow-grab-items: func(allow: bool); + get-allow-grab-items: func() -> bool; + set-allow-put-items: func(allow: bool); + get-allow-put-items: func() -> bool; + } +} + +interface scoreboard { + use text.{text-component}; + use common.{named-color}; + + enum render-type { + integer, + hearts, + } + + enum display-slot { + player-list, + sidebar, + below-name, + sidebar-team-black, + sidebar-team-dark-blue, + sidebar-team-dark-green, + sidebar-team-dark-aqua, + sidebar-team-dark-red, + sidebar-team-dark-purple, + sidebar-team-gold, + sidebar-team-gray, + sidebar-team-dark-gray, + sidebar-team-blue, + sidebar-team-green, + sidebar-team-aqua, + sidebar-team-red, + sidebar-team-light-purple, + sidebar-team-yellow, + sidebar-team-white, + } + + enum nametag-visibility { + always, + never, + hide-for-other-teams, + hide-for-own-team, + } + + enum collision-rule { + always, + never, + push-other-teams, + push-own-team, + } + + record team-settings { + display-name: text-component, + friendly-fire: bool, + see-friendly-invisibles: bool, + nametag-visibility: nametag-visibility, + collision-rule: collision-rule, + color: named-color, + prefix: text-component, + suffix: text-component, + } + + resource scoreboard { + add-objective: func(name: string, display-name: text-component, render-type: render-type); + remove-objective: func(name: string); + set-display-slot: func(slot: display-slot, objective-name: string); + update-score: func(entity-name: string, objective-name: string, value: s32); + remove-score: func(entity-name: string, objective-name: string); + create-team: func(name: string, settings: team-settings); + remove-team: func(name: string); + update-team: func(name: string, settings: team-settings); + add-player-to-team: func(team-name: string, player-name: string); + remove-player-from-team: func(team-name: string, player-name: string); + } +} + +interface %world { + use common.{position, entity-pose}; + use text.{text-component}; + use scoreboard.{scoreboard}; + + enum piston-behavior { + normal, + destroy, + block, + ignore, + push-only, + } + + enum sound-category { + master, + music, + records, + weather, + blocks, + hostile, + neutral, + players, + ambient, + voice, + } + + enum explosion-interaction { + none, + block, + mob, + tnt, + trigger, + } + + flags block-flags { + notify-neighbors, + notify-listeners, + force-state, + skip-drops, + moved, + skip-redstone-wire-state-replacement, + skip-block-entity-replaced-callback, + skip-block-added-callback, + } + + record block-state { + id: u16, + luminance: u8, + opacity: u8, + hardness: f32, + is-air: bool, + is-liquid: bool, + is-solid: bool, + is-full-cube: bool, + piston-behavior: piston-behavior, + has-random-ticks: bool, + } + + record block-state-id { + id: u16, + } + + record block-pos { + x: s32, + y: s32, + z: s32, + } + + resource entity { + get-id: func() -> u32; + get-uuid: func() -> string; + get-type: func() -> string; + get-position: func() -> position; + get-world: func() -> %world; + get-yaw: func() -> f32; + get-pitch: func() -> f32; + get-head-yaw: func() -> f32; + is-on-ground: func() -> bool; + is-sneaking: func() -> bool; + set-sneaking: func(sneaking: bool); + is-sprinting: func() -> bool; + set-sprinting: func(sprinting: bool); + is-swimming: func() -> bool; + set-swimming: func(swimming: bool); + is-invisible: func() -> bool; + set-invisible: func(invisible: bool); + is-glowing: func() -> bool; + set-glowing: func(glowing: bool); + is-fall-flying: func() -> bool; + set-fall-flying: func(fall-flying: bool); + is-on-fire: func() -> bool; + set-on-fire: func(on-fire: bool); + teleport: func(pos: position, world-ref: %world); + set-velocity: func(velocity: position); + get-velocity: func() -> position; + get-pose: func() -> entity-pose; + get-name: func() -> text-component; + set-custom-name: func(name: text-component); + get-custom-name: func() -> option; + set-custom-name-visible: func(visible: bool); + is-custom-name-visible: func() -> bool; + is-invulnerable: func() -> bool; + set-invulnerable: func(invulnerable: bool); + get-fire-ticks: func() -> s32; + set-fire-ticks: func(ticks: s32); + remove: func(); + raycast: func(max-distance: f64, fluid-handling: bool) -> option; + } + + enum block-direction { + down, + up, + north, + south, + west, + east, + } + + record raycast-result { + pos: block-pos, + face: block-direction, + } + + resource %world { + get-id: func() -> string; + get-block-state-id: func(pos: block-pos) -> u16; + get-block-state: func(pos: block-pos) -> block-state; + set-block-state: func(pos: block-pos, state: u16, update-flags: block-flags); + get-time-of-day: func() -> u64; + set-time-of-day: func(time: u64); + get-world-age: func() -> u64; + get-dimension: func() -> string; + get-top-block-y: func(x: s32, z: s32) -> s32; + get-motion-blocking-height: func(x: s32, z: s32) -> s32; + is-raining: func() -> bool; + set-raining: func(raining: bool); + is-thundering: func() -> bool; + set-thundering: func(thundering: bool); + broadcast-system-message: func(message: text-component, overlay: bool); + get-scoreboard: func() -> scoreboard; + play-sound: func(sound: string, category: sound-category, pos: position, volume: f32, pitch: f32); + spawn-particle: func(particle: string, pos: position, offset: position, max-speed: f32, count: s32); + create-explosion: func(pos: position, power: f32, create-fire: bool, interaction: explosion-interaction); + get-sea-level: func() -> s32; + get-min-y: func() -> s32; + get-entities: func() -> list; + } +} + +interface entity { + use %world.{entity}; +} + +interface permission { + enum permission-level { + zero, + one, + two, + three, + four, + } + + variant permission-default { + deny, + allow, + op(permission-level), + } + + record permission-child { + node: string, + value: bool, + } + + record permission { + node: string, + description: string, + default: permission-default, + children: list, + } +} + +interface player { + use common.{hand, item-stack, position, game-mode}; + use %world.{%world}; + use entity.{entity}; + use permission.{permission-level}; + use text.{text-component}; + use gui.{gui}; + + record player-abilities { + invulnerable: bool, + flying: bool, + allow-flying: bool, + creative: bool, + allow-modify-world: bool, + fly-speed: f32, + walk-speed: f32, + } + + record player-skin { + value: string, + signature: option, + } + + flags skin-parts { + cape, + jacket, + left-sleeve, + right-sleeve, + left-pants-leg, + right-pants-leg, + hat, + } + + resource player { + as-entity: func() -> entity; + get-id: func() -> string; + get-name: func() -> string; + get-position: func() -> position; + get-yaw: func() -> f32; + get-pitch: func() -> f32; + get-world: func() -> %world; + get-gamemode: func() -> game-mode; + set-gamemode: func(mode: game-mode) -> bool; + get-locale: func() -> string; + get-ping: func() -> u32; + get-permission-level: func() -> permission-level; + set-permission-level: func(level: permission-level); + set-permission: func(node: string, value: bool); + unset-permission: func(node: string); + has-permission-set: func(node: string) -> option; + has-permission: func(node: string) -> bool; + get-display-name: func() -> text-component; + set-display-name: func(display-name: text-component); + send-system-message: func(text: text-component, overlay: bool); + set-tab-list-header-footer: func(header: text-component, footer: text-component); + set-tab-list-order: func(order: s32); + set-tab-list-latency: func(latency: s32); + set-tab-list-listed: func(listed: bool); + show-title: func(text: text-component); + show-subtitle: func(text: text-component); + show-actionbar: func(text: text-component); + send-title-animation: func(fade-in: s32, stay: s32, fade-out: s32); + teleport: func(position: position, yaw: option, pitch: option, %world: %world); + teleport-world: func(world-ref: %world, position: position, yaw: option, pitch: option); + kick: func(message: text-component); + respawn: func(); + open-gui: func(gui-ref: gui); + ban: func(reason: option); + ban-ip: func(reason: option); + get-selected-slot: func() -> u8; + get-item-in-hand: func(hand: hand) -> option; + get-inventory-item: func(slot: u8) -> option; + get-health: func() -> f32; + set-health: func(health: f32); + get-max-health: func() -> f32; + set-max-health: func(max-health: f32); + get-food-level: func() -> u8; + set-food-level: func(food-level: u8); + get-saturation: func() -> f32; + set-saturation: func(saturation: f32); + get-exhaustion: func() -> f32; + set-exhaustion: func(exhaustion: f32); + get-absorption: func() -> f32; + set-absorption: func(absorption: f32); + get-experience-level: func() -> s32; + get-experience-progress: func() -> f32; + get-experience-points: func() -> s32; + set-experience-level: func(level: s32); + set-experience-progress: func(progress: f32); + set-experience-points: func(points: s32); + add-experience-levels: func(levels: s32); + add-experience-points: func(points: s32); + is-flying: func() -> bool; + set-flying: func(flying: bool); + get-abilities: func() -> player-abilities; + set-abilities: func(abilities: player-abilities); + get-ip: func() -> string; + get-skin: func() -> option; + get-skin-parts: func() -> skin-parts; + set-skin-parts: func(parts: skin-parts); + } +} + +interface server { + use player.{player}; + use common.{game-mode}; + use %world.{%world}; + use text.{text-component}; + + enum difficulty { + peaceful, + easy, + normal, + hard, + } + + enum dimension { + overworld, + nether, + end, + } + + variant command-sender { + console, + player(player), + } + + resource server { + get-difficulty: func() -> difficulty; + get-player-count: func() -> u32; + get-mspt: func() -> f64; + get-tps: func() -> f64; + get-all-players: func() -> list; + get-player-by-name: func(name: string) -> option; + get-player-by-uuid: func(id: string) -> option; + get-all-worlds: func() -> list<%world>; + get-world-by-name: func(name: string) -> option<%world>; + execute-command: func(command: string, sender: command-sender); + create-world: func(name: string, dimension: dimension) -> %world; + broadcast: func(message: string); + broadcast-tab-list-header-footer: func(header: text-component, footer: text-component); + get-max-players: func() -> u32; + is-hardcore: func() -> bool; + is-online-mode: func() -> bool; + get-motd: func() -> string; + has-whitelist: func() -> bool; + get-allow-nether: func() -> bool; + get-allow-end: func() -> bool; + get-view-distance: func() -> u8; + get-simulation-distance: func() -> u8; + get-default-gamemode: func() -> game-mode; + } +} + +interface block-entity { + use common.{block-position}; + + resource block-entity { + resource-location: func() -> string; + get-position: func() -> block-position; + get-id: func() -> u32; + is-dirty: func() -> bool; + clear-dirty: func(); + } + + resource command-block-entity { + get-block-entity: func() -> block-entity; + last-output: func() -> string; + track-output: func() -> bool; + success-count: func() -> u32; + command: func() -> string; + auto: func() -> bool; + condition-met: func() -> bool; + powered: func() -> bool; + } + + variant block-entity-type { + command-block-entity(command-block-entity), + } +} + +interface command { + use %world.{%world}; + use entity.{entity}; + use player.{player}; + use block-entity.{command-block-entity}; + use common.{position, block-position, locale}; + use server.{server, difficulty}; + use text.{text-component}; + + enum gamemode { + survival, + creative, + adventure, + spectator, + } + + enum bossbar-color { + pink, + blue, + red, + green, + yellow, + purple, + white, + } + + enum bossbar-style { + no-division, + notches6, + notches10, + notches12, + notches20, + } + + enum sound-category { + master, + music, + records, + weather, + blocks, + hostile, + neutral, + players, + ambient, + voice, + ui, + } + + enum entity-anchor { + feet, + eyes, + } + + variant number { + %float64(f64), + %float32(f32), + int32(s32), + int64(s64), + } + + variant not-in-bounds { + lower-bound(tuple), + upper-bound(tuple), + } + + variant arg { + entities(list), + entity(entity), + players(list), + block-pos(block-position), + pos3d(position), + pos2d(tuple), + rotation(tuple), + game-mode(gamemode), + difficulty(difficulty), + item(string), + item-predicate(string), + resource-location(string), + block(string), + block-predicate(string), + bossbar-color(bossbar-color), + bossbar-style(bossbar-style), + particle(string), + msg(string), + text-component(text-component), + time(s32), + num(result), + %bool(bool), + simple(string), + sound-category(sound-category), + damage-type(string), + effect(string), + enchantment(string), + entity-anchor(entity-anchor), + } + + resource consumed-args { + get-value: func(key: string) -> arg; + } + + variant command-sender-type { + rcon, + console, + player(player), + command-block(tuple), + dummy, + } + + enum permission-level { + zero, + one, + two, + three, + four, + } + + resource command-sender { + get-command-sender-type: func() -> command-sender-type; + send-message: func(text: text-component); + set-success-count: func(count: s32); + is-player: func() -> bool; + is-console: func() -> bool; + as-player: func() -> option; + permission-level: func() -> permission-level; + has-permission-level: func(level: permission-level) -> bool; + has-permission: func(server: borrow, node: string) -> bool; + position: func() -> option; + %world: func() -> option<%world>; + get-locale: func() -> locale; + should-receive-feedback: func() -> bool; + should-broadcast-console-to-ops: func() -> bool; + should-track-output: func() -> bool; + } + + enum string-type { + single-word, + quotable, + greedy, + } + + variant argument-type { + %bool, + float(tuple, option>), + double(tuple, option>), + integer(tuple, option>), + long(tuple, option>), + %string(string-type), + entities, + entity, + players, + game-profile, + block-pos, + position3d, + position2d, + block-state, + block-predicate, + item, + item-predicate, + component, + rotation, + resource-location, + entity-anchor, + gamemode, + difficulty, + time(s32), + %resource(string), + } + + variant command-error { + invalid-consumption(option), + invalid-requirement, + permission-denied, + command-failed(text-component), + } + + resource command-node { + literal: static func(name: string) -> command-node; + argument: static func(name: string, arg-type: argument-type) -> command-node; + then: func(node: command-node); + execute-with-handler-id: func(handler-id: u32); + require-with-handler-id: func(handler-id: u32); + } + + resource command { + constructor(names: list, description: string); + then: func(node: command-node); + execute-with-handler-id: func(handler-id: u32); + } +} + +interface event { + use common.{block-position, game-mode, hand, item-stack, position, click-type}; + use player.{player}; + use text.{text-component}; + use %world.{%world}; + + enum event-priority { + highest, + high, + normal, + low, + lowest, + } + + record player-join-event-data { + player: player, + join-message: text-component, + cancelled: bool, + } + + record player-leave-event-data { + player: player, + leave-message: text-component, + cancelled: bool, + } + + record player-login-event-data { + player: player, + kick-message: text-component, + cancelled: bool, + } + + record player-chat-event-data { + player: player, + message: string, + recipients: list, + cancelled: bool, + } + + record player-command-send-event-data { + player: player, + command: string, + cancelled: bool, + } + + record player-permission-check-event-data { + player: player, + permission: string, + permission-result: bool, + } + + record player-move-event-data { + player: player, + from-position: position, + to-position: position, + cancelled: bool, + } + + record player-teleport-event-data { + player: player, + from-position: position, + to-position: position, + cancelled: bool, + } + + record player-change-world-event-data { + player: player, + previous-world: %world, + new-world: %world, + position: position, + yaw: f32, + pitch: f32, + cancelled: bool, + } + + record player-exp-change-event-data { + player: player, + amount: s32, + } + + record player-item-held-event-data { + player: player, + previous-slot: u8, + new-slot: u8, + cancelled: bool, + } + + record player-changed-main-hand-event-data { + player: player, + main-hand: hand, + } + + record player-gamemode-change-event-data { + player: player, + previous-gamemode: game-mode, + new-gamemode: game-mode, + cancelled: bool, + } + + record player-custom-payload-event-data { + player: player, + channel: string, + data: list, + } + + enum player-fish-state { + fishing, + caught-fish, + caught-entity, + in-ground, + failed-attempt, + reel-in, + bite, + } + + record player-fish-event-data { + player: player, + caught-uuid: option, + caught-type: string, + hook-uuid: string, + state: player-fish-state, + hand: hand, + exp-to-drop: s32, + cancelled: bool, + } + + record player-egg-throw-event-data { + player: player, + egg-uuid: string, + hatching: bool, + num-hatches: u8, + hatching-type: string, + cancelled: bool, + } + + enum entity-interaction-action { + interact, + attack, + interact-at, + } + + enum interact-action { + left-click-block, + left-click-air, + right-click-air, + right-click-block, + } + + record player-interact-event-data { + player: player, + action: interact-action, + clicked-pos: option, + block: string, + cancelled: bool, + } + + record player-toggle-sneak-event-data { + player: player, + is-sneaking: bool, + cancelled: bool, + } + + record player-toggle-flight-event-data { + player: player, + is-flying: bool, + cancelled: bool, + } + + record player-toggle-sprint-event-data { + player: player, + is-sprinting: bool, + cancelled: bool, + } + + record player-interact-unknown-entity-event-data { + player: player, + entity-id: s32, + action: entity-interaction-action, + cancelled: bool, + } + + record inventory-click-event-data { + player: player, + window-type: option, + click-type: click-type, + slot: s16, + raw-slot: s16, + clicked-item: option, + cursor: option, + hotbar-button: s32, + cancelled: bool, + } + + record inventory-close-event-data { + player: player, + window-type: option, + } + + record block-redstone-event-data { + target-world: %world, + state-id: u16, + block-position: block-position, + old-current: s32, + new-current: s32, + cancelled: bool, + } + + record block-break-event-data { + player: option, + block: string, + block-position: block-position, + exp: u32, + should-drop: bool, + cancelled: bool, + } + + record block-burn-event-data { + igniting-block: string, + block: string, + cancelled: bool, + } + + record block-can-build-event-data { + block-to-build: string, + buildable: bool, + player: player, + block: string, + cancelled: bool, + } + + record block-grow-event-data { + target-world: %world, + old-block: string, + old-state-id: u16, + new-block: string, + new-state-id: u16, + block-position: block-position, + cancelled: bool, + } + + record block-place-event-data { + player: player, + block-placed: string, + block-placed-against: string, + block-position: block-position, + can-build: bool, + cancelled: bool, + } + + record server-command-event-data { + command: string, + cancelled: bool, + } + + record spawn-change-event-data { + target-world: %world, + previous-position: block-position, + previous-yaw: f32, + previous-pitch: f32, + new-position: block-position, + new-yaw: f32, + new-pitch: f32, + } + + record server-broadcast-event-data { + message: text-component, + sender: text-component, + cancelled: bool, + } + + enum event-type { + player-join-event, + player-leave-event, + player-login-event, + player-chat-event, + player-command-send-event, + player-permission-check-event, + player-move-event, + player-teleport-event, + player-change-world-event, + player-exp-change-event, + player-item-held-event, + player-changed-main-hand-event, + player-gamemode-change-event, + player-custom-payload-event, + player-fish-event, + player-egg-throw-event, + player-interact-unknown-entity-event, + player-interact-event, + player-toggle-sneak-event, + player-toggle-flight-event, + player-toggle-sprint-event, + inventory-click-event, + inventory-close-event, + block-redstone-event, + block-break-event, + block-burn-event, + block-can-build-event, + block-grow-event, + block-place-event, + server-command-event, + spawn-change-event, + server-broadcast-event, + } + + variant event { + player-join-event(player-join-event-data), + player-leave-event(player-leave-event-data), + player-login-event(player-login-event-data), + player-chat-event(player-chat-event-data), + player-command-send-event(player-command-send-event-data), + player-permission-check-event(player-permission-check-event-data), + player-move-event(player-move-event-data), + player-teleport-event(player-teleport-event-data), + player-change-world-event(player-change-world-event-data), + player-exp-change-event(player-exp-change-event-data), + player-item-held-event(player-item-held-event-data), + player-changed-main-hand-event(player-changed-main-hand-event-data), + player-gamemode-change-event(player-gamemode-change-event-data), + player-custom-payload-event(player-custom-payload-event-data), + player-fish-event(player-fish-event-data), + player-egg-throw-event(player-egg-throw-event-data), + player-interact-unknown-entity-event(player-interact-unknown-entity-event-data), + player-interact-event(player-interact-event-data), + player-toggle-sneak-event(player-toggle-sneak-event-data), + player-toggle-flight-event(player-toggle-flight-event-data), + player-toggle-sprint-event(player-toggle-sprint-event-data), + inventory-click-event(inventory-click-event-data), + inventory-close-event(inventory-close-event-data), + block-redstone-event(block-redstone-event-data), + block-break-event(block-break-event-data), + block-burn-event(block-burn-event-data), + block-can-build-event(block-can-build-event-data), + block-grow-event(block-grow-event-data), + block-place-event(block-place-event-data), + server-command-event(server-command-event-data), + spawn-change-event(spawn-change-event-data), + server-broadcast-event(server-broadcast-event-data), + } +} + +interface context { + use server.{server}; + use event.{event-type, event-priority}; + use command.{command}; + use permission.{permission}; + + resource context { + register-event: func(handler-id: u32, event-type: event-type, event-priority: event-priority, blocking: bool); + register-command: func(command: command, permission: string); + register-permission: func(permission: permission) -> result<_, string>; + get-data-folder: func() -> string; + get-server: func() -> server; + } +} + +interface i18n { + use common.{locale}; + + translate: func(key: string, locale: locale) -> string; + + load-translations: func(namespace: string, json: string, locale: locale); +} + +interface scheduler { + schedule-delayed-task: func(handler-id: u32, delay-ticks: u64) -> u32; + + schedule-repeating-task: func(handler-id: u32, delay-ticks: u64, period-ticks: u64) -> u32; + + cancel-task: func(task-id: u32); +} + +interface boss-bar { + use text.{text-component}; + use player.{player}; + + enum boss-bar-color { + pink, + blue, + red, + green, + yellow, + purple, + white, + } + + enum boss-bar-division { + no-division, + notches-6, + notches-10, + notches-12, + notches-20, + } + + record boss-bar-metadata { + darken-sky: bool, + dragon-bar: bool, + create-fog: bool, + } + + resource boss-bar { + constructor(title: text-component, color: boss-bar-color, division: boss-bar-division); + get-title: func() -> text-component; + set-title: func(title: text-component); + get-health: func() -> f32; + set-health: func(health: f32); + get-color: func() -> boss-bar-color; + set-color: func(color: boss-bar-color); + get-division: func() -> boss-bar-division; + set-division: func(division: boss-bar-division); + get-metadata: func() -> boss-bar-metadata; + set-metadata: func(metadata: boss-bar-metadata); + add-player: func(player: player); + remove-player: func(player: player); + get-players: func() -> list; + remove-all: func(); + } +} + +interface metadata { + record plugin-metadata { + name: string, + version: string, + authors: list, + description: string, + dependencies: list, + } + + get-metadata: func() -> plugin-metadata; +} + +world plugin { + import logging; + import common; + import text; + import gui; + import scoreboard; + import %world; + import entity; + import permission; + import player; + import server; + import block-entity; + import command; + import event; + import context; + import i18n; + import scheduler; + import boss-bar; + use context.{context}; + use event.{event}; + use server.{server as server-instance}; + use command.{command-sender, consumed-args, command-error}; + + export init-plugin: func(); + export on-load: func(context: context) -> result<_, string>; + export on-unload: func(context: context) -> result<_, string>; + export handle-event: func(event-id: u32, server: server-instance, event: event) -> event; + export handle-command: func(command-id: u32, sender: command-sender, server: server-instance, args: consumed-args) -> result; + export handle-task: func(handler-id: u32, server: server-instance); + export metadata; +} diff --git a/src/gen/PluginWorld_wasm_import_linkage_attribute.cs b/src/gen/PluginWorld_wasm_import_linkage_attribute.cs new file mode 100644 index 0000000..de28d35 --- /dev/null +++ b/src/gen/PluginWorld_wasm_import_linkage_attribute.cs @@ -0,0 +1,11 @@ +// Generated by `wit-bindgen` 0.57.1. DO NOT EDIT! +// +#nullable enable + +#if !NET9_0_OR_GREATER +// temporarily add this attribute until it is available in dotnet 9 +namespace System.Runtime.InteropServices +{ + internal partial class WasmImportLinkageAttribute : global::System.Attribute {} +} +#endif