Empires Update - 5/30/23

Discussion in 'Empire Updates' started by chickeneer, May 30, 2023.

  1. I am excited to announce that the Empires Update is officially live and released this evening!

    Continue reading to learn more about what all changed in this update. On the backend, the amount of code added and refactored makes this the largest code update in EMC history, so remember to report any bugs that you see or experience to https://pmdev.emc.gs/.

    So what are Empires? Empires is EMC's custom guild system for creating permanent groups to build and communicate together. In the future Empires will be the system which owns claimed outposts. Sometime soon, we will be looking to associate each of the currently established outposts to an ingame registered Empire, stay tuned.

    So what are the features and benefits of using Empires?
    Each Empire has a unique name and tag. So no two empires can have the same name or tag. Empire names can be a maximum length of 20 characters composed of only alpha-numeric characters and underscores. Tags can have a maximum length of 4 characters. An Empire is allowed to have the same tag as its name.

    The primary visual benefit is the ability to set one of your joined Empires as your Primary Empire. The Tag for this primary empire can show up in chat messages and in the tablist. Here is an example of a sample tablist.

    As shown, Empires also have an associated color with them. All Empires have a limited set of colors available, but in the future an Empire will be able to purchase with rupees/tokens various expansions such as the ability to set a Hex color for their Empire's tag.

    Some initial limits for Empires include the following:
    • You may only hold the "Owner" role of 3 empires.
    • An Empire can have up to 8 members joined to it, and up to 3 roles. These limits will be expandable in an update soon. Those commands are not currently available.
    Maybe you do not like empire tags, and think they add unnecessary bloat to your chat. There are Empire specific Player Settings which allow you to do the following:
    • Show Your Chat Tag: Setting to control whether your Primary Empire's tag shows in chat messages.
    • Show Chat Tags: Setting to control whether Empire Tags show up in chat.
    • Show Your Player Name Tag: Setting to control whether your Primary Empire's tag shows in the tablist.
    Another benefit to Empires is the ability to cross-server chat with all online members of your empire. There are two new chat channels dedicated to this purpose. The Empire and Officer chat channels. The Empire chat channel communicates with all members of the empire. The Officer chat channel communicates with any members online who possess an Officer role.

    Here is a picture of how this appears in-game noticing the E and O channel codes, the Empire that the chat is focused on is added on to the Channel instead of using any person specific primary-empire tags with the Empire's special color. Henceforth there is no "Color" for these chat channels and will present different depending on which Empire chat is being sent.

    Another benefit of Empires is the ability to enable group building. As mentioned, the Outpost system is not programmed yet, but some initial features are included with this update to enable access to empire members.
    Empires can be specified on Lock and Access signs using !empire-name or !tag on those signs instead of a player-name.
    Permissions can be granted on residences to either all empire members or specific roles.
    These permissions can be changes with two commands:
    • /res eset <res> <empire> (perm) (t/f/r)
      Sets permissions for all empire members.
    • /res erset <res> <empire> <role> (perm) (t/f/r)
      Sets permissions for only a specific empire role.
  2. So how do I start using the Empires system? The following is a general explanation of some basic commands relating to Empires. The following Wiki pages which contain much of the same information and possibly more!
    Empire Roles
    Empire Bank

    The base command for empires has a few aliases, so you can use whichever version you find most comfortable.
    • empire|empires|emp|guild|clan|e
    If you are wanting to start your own Empire you run the command...
    • /empire create <name> <tag> - Allows you to create your own Empire.
    The cost is 25,000 rupees and is a 1 time fee. Reminder that you can only hold the Owner role for 3 empires.
    You can then invite other players to your empire or retract invites already sent out.
    • /empire invite <empire> <user> - Invites another player to the Empire
    • /empire uninvite <empire> <user> - Removes an invite to another player for joining the Empire
    Those that have been invited will be notified of this invitation to join and can accept or decline invitations to join an Empire.
    • /empire accept <empire> - Accepts an invite to join an Empire
    • /empire decline <empire> - Declines an invite to join an Empire, and blocks reinvites for 15 days.
    • /empire declinepermanent <empire> - Declines an invite to join an Empire permanently.
    • /empire undecline <empire> - Removes a declined invitation to join an Empire.
    A new Player Setting is added to help you control who can invite you to Empires:
    • Allow Empire Invites: Choice of allowing invites from everyone, only friends, or no one.
    As the owner you have the ability to kick people from your empire at any time. You also have the ability to leave any empire you have joined.
    The big exception is that you cannot kick another Empire member that has been given the Owner role. They can unassign their own owner role or leave by their own action though. Also as an owner, you cannot leave until you have assigned someone else to the owner role or kicked everyone out, so that the Empire has no members and becomes "disbanded".
    • /empire kick <empire> <member> <reason> - Kicks a member from the Empire
    • /empire leave <empire> <reason> - Leaves an Empire.
    To change various properties of your empire, use these commands:
    • /empire changecolor <empire> <color> - Sets the Empires color.
    • /empire changename <empire> <newname> - Changes the name of your Empire.
    • /empire changetag <empire> <newtag> - Changes the tag of your Empire.
    Some additional commands to interact with the empire system is listed next. The ability to execute these commands is dependent on what roles and permissions each empire member has.
    • /empire listempires|list <player> - Lists all current empires that a user is a part of.
    • /empire online - List online members from empires you are in
    • /empire online <empire> - List all online empire members
    • /empire info|listmembers <empire> - Displays information about an Empire
    • /empire primary - Displays your current primary Empire.
    • /empire primary <user> - Displays the current primary Empire of the specified user.
    • /empire setprimary <empire> - Allows you to change which Empire is your primary Empire.
    • /empire broadcast <empire> <message> - Broadcasts a message to online Empire members.
    • /empire title set <empire> <member> <title> - Assign a special title for a member of this empire
    • /empire title remove <empire> <member> - Removes the title from members of the empire
    • /empire log general <empire> (page)
    • /log empire bank <empire> (page) - Shows bank logs for an empire.
    • /empire log bank <empire> (page)
    • /log empire roles <empire> (page) - Shows role logs for an empire.
    • /empire log roles <empire> (page)
    • /log empire broadcast <empire> (page) - Shows broadcast logs for an empire.
    • /empire log broadcast <empire> (page)
    Noteworthy features listed here is the ability to create a special broadcast message to online empire members, assigning special titles for individual empire members separately from full Roles, and then also a very extensive logging system for Empires which records nearly all changes and interactions with the Empire system. So that Empire owners/officers can properly monitor their own empire.

    Empire Notice:
    The empires system does have a built-in Notice system. Think of it as a billboard for your empire to communicate announcements. This system does have an option to designate a notice only for officers. Here are the commands which interact with the notice system:
    • /empire notice check <empire> - Checks notice status for this Empire.
    • /empire notice read <empire> - Reads unread notices for this Empire.
    • /empire notice history <empire> <page> - Reads notice history for this Empire.
    • /empire notice new <empire> <message> - Adds a new notice for this Empire.
    • /empire notice newofficer <empire> <message> - Adds a new officer only announcement for this Empire.
    • /empire notice remove <empire> - Removes a posted notice for this Empire. Get the id from the
    Empire Roles:
    The role system of Empires is extremely extensive to give you complete control over what roles can do various actions. Each empire starts with 3 roles of Owner, Officer, and Member. These roles can all be renamed and customized to fit your needs. These are advanced commands which frankly are more than what the average EMC user will want to use. Fair warning.
    • /empire roles list <empire> - Show the current role assignments for an Empire.
    • /empire roles list <empire> <role> - Lists all empire members with the specified role.
    • /empire roles edit <empire> <role> - Edit the Role Permissions of the given role.
    • /empire roles new <empire> <name> <description> - Adds a new role to give a different set of permissions
    • /empire roles delete <empire> <role> - Deletes a role, removing it from everyone
    • /empire roles addperm <empire> <role> <perm> - Adds a permission to a role.
    • /empire roles delperm <empire> <role> <perm> - Removes a permission from a role.
    • /empire roles rename <empire> <role> <newname> - Renames a role.
    • /empire roles description <empire> <role> <description> - Changes the description of what a role is for.
    • /empire roles assign <empire> <member> <role> - Assigns a player a new role. Does not remove previous roles.
    • /empire roles unassign <empire> <member> <role> - Removes a role from a player, removing any permissions it was giving them unless another role also gives it.
    The best way to modify the permissions for a role is with the "/empire roles edit" command which pulls up a chest interface with all customizable permissions shown.

    Empire Bank:
    Another advanced system of Empires is the Bank system. The Bank commands are advanced, but it is important to know that an empire's bank does not pull from your rupee/token balance until a purchase takes place. At time of release, there are no purchases available to be made, so that this system can be tweaked if necessary.
    These are the commands for managing this. The allocation system is nuanced and I need people to ask questions to better explain the system. The core idea is that the bank does not “Hold” any of your rupees/tokens but instead you allow an empire to spend rupees/tokens directly out of your balance. But you keep that currency until it is time to spend on a purchase. No other player can retrieve your contribution to the Empire’s bank.
    • /empire bank info <empire> - Show how much Rupees and Tokens the Empire has available.
    • /empire bank allocations <empire> - View your current allocation information and reserves.
    • /empire bank allocate <empire> <currency> <amount> - Changes your allocation of rupees/tokens to an Empire (the amount your Empire can deduct from you). Does not remove those rupees or tokens from you.
    • /empire bank allocationreserve <empire> <currency> <amount> - Changes the minimum balance reserve for rupees/tokens that your allocation can deduct you to.
    • /empire bank donate <empire> <currency> <amount> - Donates funds to an Empire.
    • /empire bank withdraw <empire> <currency> <amount> - Withdraw funds you donated from an Empire.
    607, Nickblockmaster, khixan and 9 others like this.
  3. In addition to the main Empires update. Many miscellaneous changes were made to the code base. Here are some noteworthy changes, though I will certainly forget to list something. I will reply back to this thread when we remember about such forgotten changes.

    We have converted our internal code to use MiniMessage as a format system for text colors and components.

    EVERY message that is sent by the server and our plugin was updated to this newer syntax, so it is possible that we made some mistakes. Remember to report any weirdly formatted system messages you see! This rewrite involved rewriting the chat system as well to enable us to do some cool stuff in this update and in the future!

    Here are a couple links to read more about the MiniMessage system: Formatting Documentation - MiniMessageViewer

    The in-game /colors command has been updated to reflect this expansion in behavior.

    Here is an explanation of how you can use color in the different parts of EMC.
    • On Signs/Books you can have the § section sign on your clipboard and CTRL+V to create any of the old color-codes.
      Example: §5 creates the dark_purple color in signs and books.
      Note: This means that the & ampersand method of coloring is no longer used anywhere on EMC. If demand exists, we can re-add this functionality.
    • A new command has been added for you to edit signs by looking at them and editing one of their lines.
      The "/editsign <line> <message>" command allows any MiniMessage color/format <tags> shown in the above screenshot.
    • Gold/Diamond Supporters can change their residence enter and leave messages using /res message enter|leave. These commands have been updated to use the MiniMessage tags in addition to the custom tags of <server>, <player>, <colorplayer>, <owner>, <residence>, <address>.
      Note that it no longer
    • Supporters can use the <bold>, <italic>, <underlines>, and <strikethrough> tags in regular chat messages. Markdown syntax is no longer supported. The shortened versions of those tags also work: <b>, <i>, <u>, and <st>.
      You close tags like this: "A <b>Bolded message</b> chat message" - would only bold "bolded message".
    New /colors command argument
    If you would like to test out a color, we have added a new argument to the color command.
    /colors (color). So typing /colors red or /colors #6300fc. Will show the following:

    Clickable URL formatting
    In normal chatting, Clickable URL detection has been improved to also color and underline those links with a hover message stating that it will be opening a link. See it in use here in a normal chat message just by stating guide.emc.gs - no special tags to make it work.

    New Supporter Perk - Per Chat Channel Colors
    Supporters have a new supporter Perk for Iron/Gold/Diamond level supporters.
    We have added the ability for you to change and set the displayed chat color per-channel including RGB hex colors support. As stated earlier hex colors are specified using #123456.
    Three new commands have been added to control this behavior.
    • /chat color <channel> (color) - Set the chat color for one specified channel.
    • /chat colorall (color) - Sets the same chat color for all channels.
    • /chat colortell (color) - Sets the color of /tell messages you send and receive.
    You will notice that /tell messages are a separate command due to them not being a true chat channel.
    When the supporter rank expires, the chat colors default back to the normal colors. If supportership is resumed, then your last set custom colors will also resume.

    Here is an example of some custom channel color choices. Keep in mind this is ONLY on your end, others do not see your channel color choices.

    An extra note, is that the Discord integration for Supporter chat has been improved. Bold/Underlined/etc now show up properly in both discord and in-game (both ways). I know I wrote some other code improvements that I can no longer recall :)

    It is still on the table to create a Discord linked ingame chat channel. I do NOT want the general Community chat to be Discord linked. There is a balance in implementing that stuff, I just want to be very careful with. Personally, I have some fundamental issues with the invasiveness of Discord in people's personal lives - and do not want to perpetuate tech addictions. It is healthy to be able to turn off from our online lives.
  4. /ignore changes
    We have added a new chat Player Setting to control whether you can see an ignored-player's chat messages. The default behavior of this player setting is to NOT see an ignored players' chat messages. A change in the player setting allows you to keep a player ignored while still seeing them in public chat channels.

    We have re-added a mechanism for people to permanently ignore players. It was removed because we believe that all EMC players should be able to find common ground and get along. Over time, it has been evident that some of our players want to permanently cut-off other players or quit EMC altogether due to this conflict.

    An explanation of the /ignore command. Running the /ignore command adds 1 month to the length of time you are ignoring a player. Each successive execution of the ignore command adds an additional month.

    The new command is /permanentignore <player> <reason>.
    A further refactoring of the ignore system is on the todo list to provide a better experience with the commands and properly showing the ingame listing (/ignore list).

    Shop Things
    First off, I added a new command /fixpromo. This command will attempt to convert a held promotional item into a more consistent state for use in shop signs.
    Especially after this update, many old items may be ‘broken’ for shop signs. Unfortunately, new shop signs may need remade with these new items... Sorry.

    This command is not magic. As such, its only behavior at the moment is to look for hidden formatting data that makes items not stack, and attempt to make it consistent. We may add new functionality to this command in the future, or even make this process automatic in the future without needing to run a command.

    Also, while we were rewriting the color formatting of the server, I threw a splash of color onto shop signs.

    /editsign command
    Mentioned earlier, but we have enabled access to the command: /editsign <line> (message)
    This allows you to edit the contents of a sign you are pointing at with your crosshair. Note that the sign detection can be messed up if your head is in the same space as another block.
    Some other notes about the editsign command:
    • Only the "owner" of a lock sign can edit the 3rd and 4th lines of that sign. The owner is defined as the person who's name is on the second line. It is definitely desired to expand lock signs beyond the current limitation of 2 other people on the lock sign.
    • Other signs in the frontier/waste should be properly antigrief protected from being edited.
    • In town you may only edit signs on residences which you have admin permissions on. This limitation may be loosened in the future after we iron out bugs that may occur from editing signs in ways we do not anticipate. A big concern right now is access and shop signs hence the restriction to just residence admins.
    Various Survival and Antigrief changes:
    • Fix netherhounds attacking difficulty 1 players unprovoked.
    • Do not spawn phantoms onto difficulty 1 players.
    • Removed diamond drops from all mobs to ease the market back a bit. This allows us to revisit balancing them as a mob drop in the future.
    • Change the default player setting for Miniboss spawning to be OFF. I am not fully convinced of this change to the default behavior, so I am open to further discussion on this topic.
      I do think it is good to have enraged defaulted on - although they may need balanced to not be SO deadly to difficulty 5.
    • Added code logic to allow players to dispense tnt from dispensers that they placed in the frontier/wastelands. Note that you must be around the dispensers for them to use tnt, so they cannot dispense tnt with you offline.
    • Improved antigrief protection logic when handling physics dependent blocks. For example placing a buildmoded torch on top of someone else’s buildmoded block. Breaking that base block used to break the torch despite it being protected. Now the prevention happens at the step of placing the torch.
    • Improved logic relating to piston extending/retracting and moving antigrief protection around properly.
    • Fixed an issue where buildmoded dirt never becomes grass - and other similar scenarios where the physics of the world was not permitted to behave normal.
    • Improved frontier and wasteland enter messaging. This includes putting a cooldown on the notification to be less spammy if you are hopping between multiple outposts.
    • Improved the death message weapon detection. This should hopefully improve some of the weird issues we would get at PVP with certain staff members or certain items.
  5. What is in the future?

    The Frontier - Antigrief/Outposts:
    This initial update does not include integration between the Antigrief and Empires system. It is not difficult to program this integration, but I have not settled on the user experience design that is best for this. My initial thoughts are that each person can give specific empires permission to break their blocks. Admittedly, the concept of land claimed outposts is extremely difficult in the world of Antigrief protection. The politics around allowing an Empire to destroy your Antigrief protected blocks is going to be a challenge. Naturally, I am open to suggestions on the topic.

    With that being said, I do have some plans for a rudimentary level outpost system that should release before the end of summer. I have not started that yet, so I do not know how it will work. The main benefit of this beginning system would be a teleport link between the outpost and town for empire members.

    As mentioned previously, there will be purchasable upgrades which will be releasing in future updates. Max number of members/roles is the easy example of this. Many purchases will likely be tied to the Outpost system.

    I would like to see us implement Discord linking with empires. So that emc discord linked accounts could chat in their own Empire specific channel from on discord to in-game chat channel. There are numerous options we could take here that will need some further brainstorming.

    Empire Applications:
    An application system for onboarding new members into an empire. This concept has some beginning code but was not completed in time for release.

    Non-Code Stuff:
    There is a lot of stuff in progress that do not necessarily involve code.
    Noteworthy is
    • The Think Team
    • Staff Team updates
    • Tutorial and onboarding updates
    • idk, my brain is kinda mush after making this long update thread.
    Anyway, just remember to report bugs with the update, give feedback, and make suggestions for the future.
  6. Lets gooo! Ty so much chicken!!! Your hardwork is greatly appreciated :rolleyes:
  7. wooo very excited c;
  8. Woot! awesome work chicken!!!
  9. WOOHOO! Good work, chicken. Thank you for all of your hard work on this MASSIVE update! :D :love: :<3:
  10. Woot! Can't wait to try it out! Thanks for all your work on this update!
  11. Ah yes, my favorite bedtime story~ :D

    Thank you so much for your hard work chickeneer! I hope to try some of these features out when I get time in the future!
    Nickblockmaster likes this.
  12. A specific question:

    If the outposts of a large area were claimed with different area names, or expansions,
    Can the whole Oupost be put under a new "umbrella" name?
    Because, If 4 seperate outposts in a block are claimed, this might exceed the ownership limit of 3 Empire Owners (as I believe I understand this)
  13. Those types of decisions aren't really finalized on Empires.
    With that being said, I don't fully understand what you are asking. An empire can have more than 3 owners. But YOU can't currently own more than 3.
    Joy_the_Miner likes this.
  14. its update day my dudes
  15. not that this is directly tied to empires, but knowing im not the only one that uses the EMC Utilities Mod, it seems like it causes you to crash shortly after joining since the empires update was released - just as a heads up for anyone else that uses it :)
  16. @chickeneer 🐔 you need a name upgrade to Rooster 🐓 the 🐐

    I need some players to join me to form an empire at my /smp8 base; players must be established.

    Its a 256 x 256 hole in the ocean; mostly dug out to the old bedrock level and a 60 x 60 area dug to the new bedrock level.

    Once bedrock is reached all existing farms can bed demolished and rebuilt, this will be your time to shine if you have better designs or just like building cool stuff.

    It contains slime, iron, creaper, spider farms and several other spawners and farms.

    Thanks @chickeneer 🐔 and dev's, I will now continue reading the post :D

    Walls of text read, :eek: looks like it took the dev's five minuts to create the Empires and ten years to write create this thread :D. My respect to @chickeneer and others :aikar: etc, for their work.

    🐔the 🐐
  17. I have pushed out fixes for important issues. I have already had some other minor suggestions and fixes that need to go out. I will get those stuff adjusted sometime after I get some sleep in. Brain is even mushier than it was when I posted this thread. haha
  18. Is the 3 ownership limit per account? If so, I do have two accounts (We3_10AC and We3_MPO) that I can spread ownership for six of the Minecraft Paradise Outpost's ten land claims across, with the other four being split between BreezyMan and my mom's account (Echelon815) who are both still active enough to take on the responsibility. I also know where exactly all but two of the central locked chests are, but even with the other two, I'm willing to look if needed - I know they could only be in certain approximate areas.