Jump to content

Goodly

Moderator
  • Joined

  • Last visited

Posts posted by Goodly

  1. When you see "Object reference not set to an instance of an object", that means it's trying to get the value of a variable in your code, but because that variable is null, it fails to find anything.

    The issue is that PlayerAwards.Get(p.name) can give you either:

    • List<string>, a list of 0 or more awards that the player has got before

    • null, if the player has never gotten an award before

    You cannot call .CaselessContains on a null variable because that function requires a valid string to run. The solution is not to call PlayerAwards.Get and CaselessContains in the same line, so that we can check if the list is null first.
    By the way, please make sure you indent the code (tab or four spaces) every time there is an open bracket {, otherwise the code will become extremely difficult to understand.
    An example of fixes is attached.

    CmdGiveInsane.cs

  2. If you want to play multiplayer LAN, you will need to run your own server. https://github.com/ClassiCube/MCGalaxy?tab=readme-ov-file#setup

    Once it's running and you can join it, you can check the wiki for how to do basic things like create new levels. https://github.com/ClassiCube/MCGalaxy/wiki

    Once your server is up and running, you can import levels from other multiplayer servers by saving the level clientside (Save level... menu option), then moving that level into the server's extra/import folder and using /import [mapname]

    However it should be noted that if the level you saved has any kind of special gameplay or dialogue, you cannot preserve that by saving it for yourself. It can only be experienced on the server you found it on.

  3. I believe the issue here is that the blockdef file for the level doesn't contain the global blocks as well, just the local ones.

    So when you replace the global file with the local file, all the global blocks are erased. What you need to do is to merge both of the blockdef files.

    An easy way to do this is:

    • While in your server on the level you want to make global, save it using Save Level... in escape menu. You'll have something like mylevel.cw in your maps folder.

    • Move mylevel.cw from your client map folder to "extra/import" folder in your server

    • Use /import mylevel

    Now in your server blockdef files, you should be able rename lvl_mylevel.json to global.json

  4. Update to the latest dev build using /update latest

    That should fix no errors being printed when you use /pcompile


    I don't know anything about compiling with Ubuntu, but it looks like you added a space between -r: and the _extralevelprops.dll file which isn't how you formatted the MCGalaxy one. Try removing that space?

  5. 1 minute ago, RainZhang said:

    When I use /pcompile GoodlyEffects (In MCGalaxy) though, the .dll file doesn't appear.

    Is there any specific error when you attempt this?

    2 minutes ago, RainZhang said:

    So I use mcs -target:library -r:MCGalaxy_.dll -out:plugins/GoodlyEffects.dll plugins/GoodlyEffects.cs. (Ubuntu 24.04) And then this error appears: plugins/GoodlyEffects.cs(19,7): error CS0246: The type or namespace name `ExtraLevelProps' could not be found. Are you missing an assembly reference? The ExtraLevelProps dll is there. Is this problem fixable and can you tell me how to fix it? Thanks in advance.

    If you are compiling the plugin separately from MCGalaxy, make sure you also reference _extralevelprops.dll, same way you reference MCGalaxy

  6. 1 minute ago, N3UR0P4W said:

    Am I permitted to return or...? I'm not trying to be a burden or anything.

    I don't think anyone's going to stop you if you do return. Or are you asking this because you're actually blocked from joining in some way right now?

  7. 1 minute ago, tadayo said:

    I feel as if there isn't enough blocks for a search function to be relevant, perhaps on some custom servers, but it seems a lot of work for little benefit.

    Also for platforms not using keyboards, there seems to be a desire to keep things consistent and playable without one, a search function might impede on that.

    I see no reason to force the PC experience (what the game was made for) to be worse just because of platforms that lack keyboards. That being said, the feature probably won't get added either way since no one wants to put in the effort required to do it.

  8. You can use "/limit draw [amount] guest" to change this.

    image.png

    By the way, I highly recommend you choose a value larger than 200, since that only ends up being around a 14x14 wall you can make in a single draw operation. A way I like to decide on draw limit values is to imagine a 3D cube as the max size and calculate it by cubing that number. For example if I wanted guests to be able to draw a 16x16x16 cube in one command I'd do 4096