/******************************************************************************* * Copyright 2011-2014 SirSengir * * This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details. ******************************************************************************/ package forestry.api.mail; import java.util.Map; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import com.mojang.authlib.GameProfile; public interface IPostRegistry { /* POST OFFICE */ IPostOffice getPostOffice(World world); /* MAIL ADDRESSES */ IMailAddress getMailAddress(GameProfile gameProfile); IMailAddress getMailAddress(String traderName); /* LETTERS */ boolean isLetter(ItemStack itemstack); ILetter createLetter(IMailAddress sender, IMailAddress recipient); ILetter getLetter(ItemStack itemstack); ItemStack createLetterStack(ILetter letter); /* CARRIERS */ /** * Registers a new {@link IPostalCarrier}. See {@link IPostalCarrier} for details. * @param carrier {@link IPostalCarrier} to register. */ void registerCarrier(IPostalCarrier carrier); IPostalCarrier getCarrier(EnumAddressee uid); Map<EnumAddressee, IPostalCarrier> getRegisteredCarriers(); /* TRADE STATIONS */ void deleteTradeStation(World world, IMailAddress address); ITradeStation getOrCreateTradeStation(World world, GameProfile owner, IMailAddress address); ITradeStation getTradeStation(World world, IMailAddress address); boolean isAvailableTradeAddress(World world, IMailAddress address); boolean isValidTradeAddress(World world, IMailAddress address); /* PO BOXES */ boolean isValidPOBox(World world, IMailAddress address); }