Giter Site home page Giter Site logo

mattczyr / endermail Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 12.0 540 KB

Ender Mail is a Minecraft mod that allows players to deliver packages anywhere in the world.

Home Page: https://www.curseforge.com/minecraft/mc-mods/ender-mail

License: Other

Java 100.00%
minecraft minecraft-mod minecraft-forge mod forge forge-mod java

endermail's Introduction

Ender Mail

Ender Mail is a Minecraft mod that allows players to deliver packages anywhere in the world.

Download

Downloads, installation instructions, and more information can be found on Curse.

Develop

Setup

Fork this repository, then clone via SSH:

git clone [email protected]:<you>/EnderMail.git

Or, clone via HTTPS:

git clone https://github.com/<you>/EnderMail.git
  1. In the root of the repository, run:
gradlew eclipse

Or, if you plan to use IntelliJ, run:

gradlew idea
  1. Run:
gradlew genEclipseRuns

Or, to use IntelliJ, run:

gradlew genIntellijRuns
  1. Open the project's parent directory in your IDE and import the project as an existing Gradle project.

Build

To build the project, configure build.gradle then run:

gradlew build

This will build a jar file in build/libs.

License

This mod is available under the Creative Commons Attribution-NonCommercial ShareAlike 4.0 International License.

endermail's People

Contributors

derrias avatar elloellie avatar fitfc avatar gepsieh avatar gjeodnd12165 avatar lublak avatar malte0811 avatar mattczyr avatar medustyy avatar no3371 avatar wotifra233 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

endermail's Issues

Endermail Common saves multiple backups

At current, its saved 5 .toml.bak files into the config file, when it should save 0. No offense intended, but its settings are not so vital or delicate that it has to keep saving backups.

Add "Dimensional Stamps"

Hello, I love this mod and would like to make a suggestion for a new feature: Dimensional Stamps. These more expensive stamps would allow a player to send packages across dimensions while the normal stamp would be reserved for same-dimension delivery.

Add the ability to automate stamps on packages

Hi I have a small suggestion that could make automation with this mod more possible.
The idea is the ability to rename stamps with locker id's and when right clicked, dispensed, or any other mod right click, it allows to instantly stamp the package with the directions to go to the specific locker id and sends it off automatically. An alternative is to allow placement of the stamp as previously stated but require another dispenser, etc. to use the package controller to finally send the package off. I am only suggesting this as I would love to make a way to have auto mail in a modpack my friends and I are doing.

incompatibilities? 1.16 version sends packages to only one location, nowhere else

I set up lockers, named them, i tried sending packages to specific coordinates, all of the packages end up stacked at -1, 80, -1.
each packages gets stacked on the prior package sent so the 80 increments upwards so the next package is sent to -1, 81, -1 and so on. Packages don't get put in lockers, even if they're sent to that specifically named locker, and packages don't get sent to any other coordinated other than the ones listed above.

When trying the mod on a Minecraft install without any other mods, it works. Are there any known incompatibilities?

Invalid plugin yml error

I'm running 1.15.2 and get the following error when restarting:

org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:159) ~[patched_1.15.2.jar:git-Paper-145]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:148) ~[patched_1.15.2.jar:git-Paper-145]
at org.bukkit.craftbukkit.v1_15_R1.CraftServer.loadPlugins(CraftServer.java:358) ~[patched_1.15.2.jar:git-Paper-145]
at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:234) ~[patched_1.15.2.jar:git-Paper-145]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:885) ~[patched_1.15.2.jar:git-Paper-145]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml

Not sure why others who have downloaded it don't get this issue (?)

Apologies if this is something at my end - I have limited experience with mods.

Cannot open package to set/get items

Details:
Forge: 1.15.2-31.1.46
EnderMail: 1.15.2-1.0.2.jar
On a dedicated server

Symptom:
I cannot interact with the package to place items in it.
I can set the package down, put a stamp on it and send it off for delivery, however, when I right click it to put items in, nothing seems to happen.

Ticking entity crash loop

Hello! I love this mod, but when sending items to my friend on my server, the mod sent the server into a crash loop after one of us sent each other the package. It sounded like we both sent our packages around the same time so I'm not sure who's enderman/package resulted in the crash. I was sending a block of cobalt from Tinker's Construct and he was sending a silver coin from Ordinary Coins. We were both sending our packages to a locker in the same dimension, the Overworld.
I've had this mod on my server for a week with people using it occasionally so it doesn't normally crash.

Here is a log: https://pastebin.com/nMbRckgd

I fixed the issue by removing the mod completely, starting up the server, stopping it, and reinstalling the mod to get rid of the enderman. I resent the package and everything was fine again.

Undelivered mail vanished?

Hi,

i'm playing on a 1.16.3 server with endermail 1.1.5

We have sent two packages to non-existing locker IDs and one from the nether to a locker in the overworld.

Where should this packages be? They're not at spawn nor were returned to sender.

Package sent from the nether to an invalid locker ID get delivered to -1, 128, -1

I was testing out the mod (1.15.2-1.1.3) before installing it on my server and when I tried to deliver a package from the nether to the overworld, the package controller unexpectedly announced that it was "successfully delivered at -1, 128, -1". I went to check and there it was, on top of the bedrock roof. I tried multiple things, it seems to happen whether the locker is in the overworld or just non-existent. Packages only get marked as undeliverable in the nether if sent from -1, 128, -1

Doesn't work in Peaceful Mode

Hi!

The EnderPostman spawns correctly, but immediately despawns, since he's a hostile mob I guess.

Great mod concept by the way, I really like it :)

cannot locate object?

the following is from the error logs please help

-- MOD endermail --
Details:
Mod File: /C:/Users/domin/AppData/Roaming/.minecraft/mods/EnderMail-1.19.2-1.2.6.jar
Failure message: Ender Mail (endermail) encountered an error during the sided_setup event phase
java.lang.NullPointerException: Registry Object not present: endermail:package_controller
Mod Version: 1.19.2-1.2.6
Mod Issue URL: https://github.com/MattCzyr/EnderMail/issues
Exception message: java.lang.NullPointerException: Registry Object not present: endermail:package_controller
Stacktrace:
at java.util.Objects.requireNonNull(Objects.java:334) ~[?:?] {re:mixin}
at net.minecraftforge.registries.RegistryObject.get(RegistryObject.java:204) ~[forge-1.19.2-43.1.32-universal.jar%23265!/:?] {re:mixin,re:classloading}
at com.chaosthedude.endermail.EnderMail.clientInit(EnderMail.java:81) ~[EnderMail-1.19.2-1.2.6.jar%23175!/:1.19.2-1.2.6] {re:classloading}
at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:260) ~[eventbus-6.0.3.jar%2379!/:?] {}
at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:252) ~[eventbus-6.0.3.jar%2379!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%2379!/:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%2379!/:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:107) ~[javafmllanguage-1.19.2-43.1.32.jar%23262!/:?] {}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:122) ~[fmlcore-1.19.2-43.1.32.jar%23261!/:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {}

[1.12.2] Issue with sending packages to minus Z coordinates

Hey there,

I noticed something after installing the mod and investigating further into this issue I was having.
Now I see that you can send packages to minus coordinates, by filling out all 3 coordinate textboxes.

If you leave any of the text fields empty, you can't write minus symbols.
This only seems to apply to the Z coordinate textbox however.

Locker disappears when broken

When I break a locker with a pickaxe it disappears. I don't know if its intended but I ran into this today and wasted all my stamps.

Return package to sender upon sending to an invalid locker address

I've noticed that if you send a package to a locker ID in which no locker exists, the package simply gets sent to whatever was placed in the coordinates part of the address (or near world spawn if those were blank).
I find this very non-intuitive compared to how the average person would expect mail to work, and as typos can easily occur without catching them.

I'd suggest one of the two fixes:

  1. When entering a Locker ID, change the GUI to disable the send button until a valid ID is entered.
  2. When the enderman picks up the package, he simply brings the package back if he couldn't find a locker with the ID.

After looking into the code a bit, it seems option 2 may have the least required effort.

Invalid Locker ID

my friend has the locker id say it's invalid, despite my locker being the same name as it's written down. Does it not work across dimensions?

Config file reload spam

Like in issue #29, in the enigmatica 6 modpack version 0.4.0, fml.forgeVersion, 36.0.40, the log is getting spammed with config reload notifications, including:
[24Feb2021 21:11:06.482] [Thread-1/WARN] [net.minecraftforge.fml.config.ConfigFileTypeHandler/CONFIG]: Configuration file /Users/Rodger/Library/Application Support/gdlauncher_next/instances/E6 0.4/config/endermail-common.toml is not correct. Correcting
See EnigmaticaModpacks/Enigmatica6#1396

It looks like Quark has fixed the issue here: VazkiiMods/Quark#3022

[Suggestion] Config for packages to drop items on break

As the title says, I think having a config option to make packages drop their content if you break them would be a good addition. Reason for this is that some servers do not allow backpack/shulker-like items for balancing and/or duping reasons and being able to turn it off would prevent the potential player abuse.

[1.15.2] Doesn't work with Quark

Hello, love your idea mod !
But, impossible to craft box because Quark create Oak_chest, Birch_chest, Spruce_chest etc...
Possible to do something :p ?
Thank you.

[1.12.2] Empty package

I sent a package today on my server, and everything was fine. The delivery was successful, but the package was empty.

How can this happen?

[1.12.2] Saving a list of coordinates, JourneyMap integration?

It would be really nice if you could save addresses in like.. an address book or something and then reuse the very same coordinates, in case of sending packages to the same player over and over again.

Would it be possible to have a JourneyMap integration option maybe?
Maybe you could use saved waypoints from your JourneyMap waypoint manager.
I don't know if that is neccessary or possible even. But if so, then it would be nice to have it, and.. well.. to either have a seperate tab for JourneyMap coordinates and one for manually saved addresses or just a way to be able to tell what waypoint comes from JourneyMap and what comes from manual address books.

What do you think about the idea?

Error When run on a sponge forge server

When trying to put a stamp on the package i get this error and the stamp does not apply.

/* net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:72) */
/* io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) */
/* io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) */
/* io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) */
/* io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280) */
/* io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396) */
/* io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) */
/* io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) */
/* io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) */
/* io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) */
/* io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017) */
/* io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394) */
/* io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299) */
/* io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) */
/* java.lang.Thread.run(Thread.java:748) */
/**************************************************************************************************************************************/

Doesnt Work For Servers

Mod doesnt work in servers, you can place down the block but you cannot open it and when you try to spawn the enderman, he instantly disapears. Please fix it so we can use it in our server. Works in Singleplayer only

Moving lockers changes its ID

As per the title, whenever a player tries to replace his locker, the locker id will be changed by adding a count at the end of the digits. E,g, if the locker id was 1111, it will be changed to 11112, and 11113 the next time the player moves it.
It really became a fuss since relocating the locker is somehow frequent.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.