Repository navigation
HCFCore 0.8.0
Pre-releaseClaims drawn block by block with the claiming wand, and every event set up in game with the same commands — three new ones (DTC, Last Break, Slide), the Totem and Mini Totem, a weekly schedule. Territory shown in the world, safe zones that close to anybody in combat, and an economy for the fights: money for a kill, a shop, bounties. Kill the King in teams or alone, Discord announcements, mining alerts, death signs, subclaims.
Tried in game on Paper 26.2 with two players: the claiming wand and block-precise claims, the event setup commands, DTC, Last Break, the Totem, the weekly schedule, the map pillars and the lock wall, safe zones, mining alerts, death signs, points and money for a kill, the shop and bounties. Not yet tried in game: the Slide, both Kill the King modes, subclaims and the Discord webhook. Several settings changed: the Changed section says what to do.
Added
- The claiming wand — claims are drawn block by block, the traditional HCF way.
/team claimhands over the wand (a golden hoe): left-click a block for the first corner, right-click one for the second, sneak + left-click to claim the rectangle between them, full height; drop it to give up. The corners show as glass columns only its holder sees, and the chat gives the size, the price and anything that would refuse the claim before it is confirmed. Staff draw server land with it (/team createsystem,/team forceclaim <team>: free, no size or placement rule), event territories (/events claim <id>) and event zones (/events setzone <id>,setup.zone-heightinevents.yml). Configured inclaims.yml(wand). - Claims are paid from the team bank:
price.per-block(0.25),75% of what was paid back on/team unclaim(price.refund-percent). Money is the limit;sizeskeeps each claim sensible — at least 5 × 5, at most 128 a side, optional caps on claims and surface./team hereshows the claim's size and corners;/team mapis drawn in 8-block cells (map.cell-blocks). /team createsystemhands over the claiming wand at once, to draw the new safe or combat zone.- An event's territory is a claim like any other: the land of a server team, named in the event's
claimkey (as a Citadel's always was), drawn with the claiming wand./events createand/events claimmake the team — a combat zone named after the event — and write the key. An existing event without aclaimkey keeps working;/events infofinds a server team named after it, and/events claimwrites the key. - One way to set up every event — KOTH, Citadel, Kill the King, Conquest, DTC, Last Break, Slide, Totem, Mini Totem — with the same commands (
hcfcore.events.admin):/events create <type> <id>makes a new event where you stand, copied from the shipped example of its kind, its territory claimed;/events info <id>shows what it has and lacks, with the command for each;/events claim <id>andunclaim <id> [all]draw and release its territory with the claiming wand;/events setzone <id> [zone]draws its zone (a Conquest's named zone — a new name adds one) anddelzone <id> <zone>removes one;/events setblock <id>places a DTC's core or a Totem's column;/events delete <id>removes any event and releases its territory./events setcore,settotemandsetzone <id> <1|2>are gone:setblockand the wand replace them. Inevents.yml,setup.default-zone-radiusandsetcore-distanceare no longer read — takeauto-claim,claim-marginandtarget-distancefrom the jar. - Three new capture events,
events.yml:- DTC (Destroy The Core): a permanent block core inside a zone — end stone while the event runs, bedrock between runs, like a Totem's column (
core.material,core.idle-material) — broken by teams — a per-team cooldown (break-cooldown-seconds),counter: SHARED(common health, most breaks of its own wins a tie by whoever reached that count first) orPER_TEAM(first to its own target wins at once). - Last Break: the same engine, always common health — whoever lands the break that empties it wins, even with fewer breaks of its own.
- Slide: every team member standing in a zone scores for their team every
interval-seconds, cumulative; a death anywhere costs the teamdeath-penaltypoints; first topoints-to-winwins, with a live top 3 on the scoreboard. - Creative, spectator and teamless players never break a core or score in a Slide.
- Staff set them up in game, like every other event (see above) — the only commands in the plugin that ever rewrite a configuration file, and only the one section they name. The console warns when a core is not on server land.
- New scoreboard placeholders
%dtc_line%,%dtc_team_line%,%last_break_line%,%slide_line%,%slide_top_1..3%; a hologram above every core and Slide zone; Lunar Client waypoints on a running core and Slide zone. - New team points:
teams.yml'spoints.per-dtc-win,per-last-break-win,per-slide-win(the scale is under Changed). Configuration files are never rewritten: copy thedtc:,last-break:andslide:sections (and thesetup:section) from the jar'sevents.yml, the three newpoints.per-*-winlines ofteams.yml, and the newdtc_line/last_break_line/slide_line/slide_top_*lines ofui.ymlinto your own files.
- DTC (Destroy The Core): a permanent block core inside a zone — end stone while the event runs, bedrock between runs, like a Totem's column (
- Totem and Mini Totem (
events.yml,totem:): a column of 5 blocks (3 for the Mini Totem), bedrock between runs and quartz during one. Teams mine it with a sword, block by block (instant-break: truemakes one hit enough); every block a team breaks turns to bedrock, and the first team to break the whole column wins — but a block broken by any other team starts it over, every block quartz again (rival-break,RESETorRESET_AND_START). Set up with/events create totem|minitotem <id>and/events setblock <id>;%totem_line%on the scoreboard, a hologram, a Lunar waypoint andpoints.per-totem-wininteams.yml. Existing servers: copy thetotem:section ofevents.yml,per-totem-winofteams.ymland the%totem_line%rows ofui.ymlfrom the jar. - A weekly schedule (
events.yml,weekly-schedule): which event starts at what time on which day of the week, started by the plugin itself exactly as/events startwould;/schedule add <day> <HH:mm> <event>and/schedule remove <day> <HH:mm> [event]edit it in game. Every start — weekly or an event's dailyschedule— is announced ahead (announce-before-minutes, 15, 5 and 1 minute). Existing servers: copy theweekly-schedulesection ofevents.ymland theevents.planningmessages oflang/en.ymlfrom the jar — without the section, the weekly schedule is empty but on. /schedule(/planning): every event start of the next seven days, day by day, for everybody./scheduleopens as a window (events.yml,weekly-schedule.menu): one item per day of the week ahead, holding that day's events hour by hour./schedule chatstill prints the list, and the console always gets it.- Kill the King has two modes (
events.yml,mode):team, as before — the King's team defends them and the winner's team scores — orsolo— everybody against the King, teammates included, and the prize is the winner's own reward commands (crate keys, money), no team points. - Nobody helps the King, in either mode: no Bard buff, no partner item, no potion thrown by somebody else (healing included), no beacon — the kit and what they drink or eat themselves.
- No abilities on an event's land (
abilities.yml,disabled-in.event-territory): partner items are refused on the territory of an event — its server team's claims, not only the zone held or stood in —during-event(as shipped: until it ends),always(at any time, as on a safe zone) ornever. An event decides for its own land withdisable-abilities: never|during-event|alwaysinevents.yml. Existing servers: addevent-territory: during-eventunderdisabled-in— without it, that default applies. /team mapis drawn in the world (claims.yml,map.style,pillarsas shipped): a column on each corner of every player team's claim within four chunks (server land is left out,include-system-claims), from the ground to layer 128, one ore or block of ore per team — drawn at random each time, named in the chat under the map — shown to you alone and gone after 20 seconds, or at the next/team map- the command is the switch. The chat says which block marks which team./team map chatstill draws the old grid, whose size is now configurable too (map.chat.radius-x,radius-z). Existing servers:map.cell-blocksmoved tomap.chat.cell-blocks; take the newmapsection from the jar.- A locked claim shows a wall (
claims.yml,lock.wall): red glass around its border, from the ground to layer 128, appearing as they come within five blocks of it, to the players the lock refuses and to nobody else, sent like the wand's columns and never placed. Members see nothing. It is redrawn as a player walks rather than on a timer, each claim's wall being read from the world once and kept. - The claiming wand's columns are seen through a clear-glass pack: one block in every six is glowstone (
wand.pillar-marker-material,pillar-marker-every). - Subclaims (
claims.yml,subclaims): a[Subclaim]sign on a chest of your team's land, with the players allowed below, keeps your other members out of it — no opening, breaking, rewriting its sign or hopper under it. Co-leaders and the leader open them all. - Safe zones take no damage at all (
pvp.yml,safe-zones.no-damage) and fill health and hunger back up (heal,keep-fed), all on as shipped: on spawn, a fall, fire, drowning, suffocation, a mob or a cactus does nothing. - Spawn is closed while you are in combat (
safe-zones.block-combat-tagged, on as shipped): a combat tag refuses the step into a safe zone — walking, a pearl, any jump — until it runs out, and the border is shown as a wall of red glass 15 blocks each way in front of the player, to layer 128 (safe-zones.wall). Existing servers: take the wholesafe-zonessection from the jar — without the new keys, their defaults (all on) apply. - Death signs (
pvp.yml,death-signs): a kill by a player leaves a sign — the dead player, "slain by", the killer, the date — that keeps its text when placed and cannot be rewritten. It falls with the loot, or goes to the killer (to-killer). - Money for a kill (
economy.yml,kill-reward): 10 to the killer — the unit the shop and bounties are priced on, plus, if you setsteal-percent, a share of the dead player's balance. Nothing for an ally, and nothing again for the same victim within 5 minutes. - A shop (
economy.yml,shop):[Buy]and[Sell]signs placed by staff, the/shopmenu, or both (mode). The menu opens on shelves — ores, combat, the Archer's leather and every dye, potions, food, building, utility, farming — about a hundred items priced on a 10-a-kill economy; ores are sold, the rest bought, and the shop never buys back what it sells. Only plain items are ever taken. - Bounties (
economy.yml,bounties):/bounty <player> <amount>puts money on a head, taken from your balance at once; whoever kills the target collects it all — never a teammate or an ally./bountylists the largest. Saved in a new table,hcf_bounties, created by itself. /lff [note](teams.yml,lff): a player with no team tells everybody they want one, with a few words of their own — once every 5 minutes.- Mining alerts (
staff.yml,mining-alerts): staff are told when a player breaks into a vein of diamond, ancient debris or emerald — once per vein, with its size and position. Player-placed ores are never reported;audience: everyoneshows everybody the classic "[FD]" line, without the position. - Announcements on Discord (
discord.yml, off as shipped): through a webhook, the server posts event starts and results, SOTW and EOTW, bounties, and teams going raidable to a Discord channel — routed by rules on the language keys, chatty lines left out, nobody ever pinged.
Changed
- A team made raidable loses half its points (
teams.yml,points.raidable-loss-percent,50), or a fixed number with the share at0(per-raidable). A file with its ownper-raidableand no share keeps meaning what it said. - Team points have a scale out of the box (
teams.yml), where everything shipped at0: a kill +1, a death −2, and an event worth far more than the kills fought for it — a KOTH capture100, a Citadel300, a Conquest250, a DTC and a Slide200, Kill the King, a Last Break and a Totem150, a Mini Totem80— so the event, not the farm, decides the ranking. A Citadel and a Mini Totem now have values of their own (points.per-citadel-capture,per-mini-totem-win) instead of a KOTH's and a Totem's. Existing files keep their own numbers; take thepointssection from the jar for the new scale. - Territory is block-precise: a claim is a rectangle, not a set of chunks; the buffer between teams is in blocks (
placement.buffer-blocks, 8), a new claim must share an edge with the team's land, and the warzone's radius is exact instead of rounded to chunks. Existing chunk claims are converted automatically on the first start — same land, paid nothing, so refunding nothing; the console says how many. Inclaims.yml,limits(base,per-member,maximum,max-per-command) andplacement.minimum-distance-to-othersare no longer read: take the newwand,price,sizes,placementandmapsections from the jar./team claim [radius]and/team forceclaim <team> [radius]take no radius any more. - Blocks per claim (
limiters.yml,claim-blocks) are counted per team as well as per chunk, since two teams can now share a chunk. The counts are rebuilt as claimed chunks load; until a chunk has loaded once, its blocks are not counted.