Giter VIP home page Giter VIP logo

townycombat's Introduction

TownyAdvanced

Plugins

In addition to Towny, TownyAdvanced also provides these supplemental plugins:

  • TownyChat

    Chat plugin providing several channels for Towny servers. Works with some 3rd Party chat plugins.
    GitHub Releases

  • TownyFlight

    A flight plugin for Towny servers.
    GitHub Releases

  • TownyNameUpdater (Legacy Plugin)

    UUID Pseudo-Awareness for Towny. Practically required for servers in 'Online Mode'. Not required for modern Towny releases.
    GitHub Releases

  • FlagWar

    A fast-paced war system where players use fences to fight over individual chunks. Originally called CellWar prior to its inclusion into Towny circa 2011, and spun back out in 2021.
    GitHub Releases

  • SiegeWar

    A newer long-term war system where players lay siege to towns for extended periods of time, designed and maintained by @Goosius1.
    GitHub Releases

Licenses

All TownyAdvanced plugins have been released under the Creative Commons Attribition-NonComercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0) license
(Full License), except for FlagWar which has been released under the Apache License Ver.2.

Under the primary license, you are free to share and redistribute under any medium or format, under the following terms:

  • You must give appropriate credit, provide a link to the license, and indicate if changes were made.
    This may be done in any reasonable manner, so long that it does not suggest we endorse you or your use.
  • You may not use these plugins for a commercial purpose.
    This means, you cannot sell access of these plugins features to your end users, or lock them behind a paywall.
  • If you remix, transform, or build upon any of these plugins, you are not permitted to distribute the modified material.
    Public forks are encouraged to create pull requests so that the greater TownyAdvanced community can benefit.

Please see article 5 and article 6 of the full license regarding warranties and liabilities.

townycombat's People

Contributors

firav avatar goosius1 avatar jwkerr avatar llmdl avatar szczot3k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

townycombat's Issues

Respawn Delay

  • Combat games e.g. Call of Duty, typically have a delay for respawning e.g. 10 seconds
  • See if that can be added to TCM

Investigate Possible Horse Lag Issue

  • There have been some reports that, generally, horses tend to be hard to use in PVP
  • From discord convo with graddod
When we were testing horses in PvP, main issue was that enemies saw the horse rider standing in place for some time, even though the horse rider on their side was entirely elsewhere. That always left the horse rider as an easy target who would just get pummeled freely.
Its a bit easier in slower close quarters melee, but the kind of 'hit and run' tactics seemed to fail terribly.

I'm not sure what to make of it, but it always seemed to be a weakness to be on the horse, so maybe damage resistance would give you more capacity for failures.
It can also be hard to hit targets close to you in front of you, as the horse blocks your view and estimating range is harder, this can make timing/aiming your charge correctly harder.
On a side note, we tested some special approaches to mounted combat through using another player as the horse while wearing disguise and riding the player, it actually worked and updated the player's position correctly.
From that I could imagine if someone was able to just make a 'horse appear under you', without actually 'riding the horse', then combat and movement could work normally, even with some speed boost. 

Combat Classes

h3. DESCRIPTION

  • Encumbrance will, in time, lead to the natural emergence of combat roles
  • Trouble is, this time seems to taking too long ..... and I think players in particular are sometimes a little slow to see past the "I'm slowed down" part, to get to the "this will open up many new combat roles" idea.
  • In fact, in a recent conversation with a server owner, it took many minutes to explain how the roles were emergent and not explicit

h3. SOLUTION

  • I suggest making the roles explicit
  • Not fully in a roleplaying direction, but think more like Battlefield or Call of Duty, where players do take on different very specific roles.
  • Examples:
    • Archer
    • Skirmisher
    • Cavalry
    • Spear-wielder
    • Heavy Infantry
      etc.

Increase horse damage bonus to str 3

  • as title
  • also ensure cavalry is invulnerable to missiles
  • also increase spear damage to +9
  • this puts horses firmly in the role of "tanks" on the battlefield.
    • powerful shot that must be avoided
    • invulnerable to small missile fire
    • vulnerable to spears, whether infantry or mounted.

Horses take too much damage from bushes/cactuses

  • As per title
  • Because horses don't rear, they can apparently get shredded by just 1 berry Bush.
  • To fix this issue, restore rearing for bushes, cacti, and any other appropriate damage causes.

Make crossbows heavier

e.g 9?
To stop cavalry running riot with them
....remember the bolts go through shields

Make armour more durable

As per title

  • Leather armour particularly, looks to be hilariously frail
  • Yet enchanted leather armour will be a key to light infantry surviving
  • So let's buff the durability aii

CustomModelData support

Add per-item CustomModelData row in plugin configuration, would allow more customization for resource pack creators

Refactor jump mitigation

Current jump mitigation may be unworkable anywhere with pedro pvp'ers as it generally prevents critics.

Replace with a small health loss when player jumps or ascends - representing fatigue

Could not pass event EntityMountEvent to TownyCombat v0.3.0

11.10 20:10:10 [Server] INFO org.bukkit.event.EventException: null
11.10 20:10:10 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
11.10 20:10:10 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
11.10 20:10:10 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
11.10 20:10:10 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.Entity.addPassenger(Entity.java:2230) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.Entity.a(Entity.java:2161) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.level.EntityPlayer.a(EntityPlayer.java:1295) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.Entity.k(Entity.java:2135) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.animal.horse.EntityHorseAbstract.e(EntityHorseAbstract.java:523) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.animal.horse.EntityLlamaTrader.e(EntityLlamaTrader.java:71) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.animal.horse.EntityHorseChestedAbstract.b(SourceFile:208) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.EntityInsentient.a(EntityInsentient.java:1224) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.world.entity.player.EntityHuman.a(EntityHuman.java:1112) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.network.PlayerConnection$4.performInteraction(PlayerConnection.java:2546) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.network.PlayerConnection$4.a(PlayerConnection.java:2565) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.network.protocol.game.PacketPlayInUseEntity$d.a(SourceFile:116) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.network.protocol.game.PacketPlayInUseEntity.a(SourceFile:66) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2510) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.network.protocol.game.PacketPlayInUseEntity.a(SourceFile:53) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.network.protocol.game.PacketPlayInUseEntity.a(SourceFile:13) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:31) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.util.thread.IAsyncTaskHandler.d(SourceFile:157) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(SourceFile:23) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1150) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:1) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.util.thread.IAsyncTaskHandler.x(SourceFile:131) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.bh(MinecraftServer.java:1129) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1122) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.util.thread.IAsyncTaskHandler.c(SourceFile:140) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1106) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1017) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:293) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3580-Spigot-e53686f-5901d58]
11.10 20:10:10 [Server] INFO at java.lang.Thread.run(Thread.java:833) [?:?]
11.10 20:10:10 [Server] INFO Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because the return value of "java.util.Map.get(Object)" is null
11.10 20:10:10 [Server] INFO at io.github.townyadvanced.townycombat.utils.TownyCombatMovementUtil.adjustMountWalkSpeed(TownyCombatMovementUtil.java:137) ~[?:?]
11.10 20:10:10 [Server] INFO at io.github.townyadvanced.townycombat.utils.TownyCombatMovementUtil.adjustPlayerAndMountSpeeds(TownyCombatMovementUtil.java:50) ~[?:?]
11.10 20:10:10 [Server] INFO at io.github.townyadvanced.townycombat.listeners.TownyCombatBukkitEventListener.on(TownyCombatBukkitEventListener.java:87) ~[?:?]
11.10 20:10:10 [Server] INFO at jdk.internal.reflect.GeneratedMethodAccessor449.invoke(Unknown Source) ~[?:?]
11.10 20:10:10 [Server] INFO at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
11.10 20:10:10 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
11.10 20:10:10 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
11.10 20:10:10 [Server] INFO ... 33 more

Suggestion: Add War Bases

Is your feature request related to a problem? Please describe.

  • Attacking players have invented a tactic of setting up temporary towns near the siege, as a base of operations.
  • I just learned that some of them are calling these 'Siege Bases'. 'Siege Camps' would probably work too ... although maybe that would confuse with TownyCamps, I'm not sure.
  • Anyway, this ticket is to suggest adding explicit code support:
    • `/sw base BASENAME would set up the base
    • Just like a regular town except:
      • The name would always start with 'siegebase_"
      • Setup cost would be cheaper
      • Lasts only 3 days
      • Locked to one nation. Can leave and rejoin it but cannot join another.

Describe alternatives you've considered

  • Letting players do what they do today works well
  • But new servers sometimes aren't aware of this essential tactic.
  • FAQ job maybe?

Additional context
N/a

Suggestion: Particle effect for inventory protection border

Is your feature request related to a problem? Please describe.
The common issue for players participating within sieges, is that they're blissfully unaware of where the siege zone border ends. Thus they run away from attackers/defenders and run out of the zone, and loose their inventory in a siege related act.

Describe the solution you'd like
Some sort of particle effect to be emitted on the ground around the border of the siege zone, indicating where the zone is. This can be made a toggable preference also.

Battlefield Roles: Add processing for horses

  • When a horse has a rider with a battlefield role, that horse should be subject to certain effects:
    • In all cases, some potions should work differently
    • In the case of heavy, they should get resistance, slowness, and slow-jump
  • Add code to process this

Suggestion: Towny Combat Encumberance changes

Please explain your feature request to the best of your abilities:

Pretty much, this splits into two main points.

  • Encumberance should reset when you die

It doesn't really make sense when you're dead, especially if you conifigure it so you lose everything, to still retain your encumberance, I'd make it sound academic, but it just doesn't feel 'right' and feels more a bug than an intentional feature

  • Allow more modifications to be made to encumberance modifiers

I'm honestly unsure if this is a thing, but afaik it is not, pretty much, it shouldn't just be 'bow', 'crossbow', etc. that you can customise encumberance for, instead it should allow you to enter the items you wish and allow for you to modify the base encumberance it gives

Custom Recipe for Hardened Leather Helmet

  • Even with encumbrance, it should be at least possible tactically to field full diamond/full netherite/full iron infantry
  • But this is a problem as those soldiers don't have identifying leather gear (by definition, except shields)
  • How about this:
    • Define hard helmet as
      • Actually leather
      • With lore "This leather has been hardened with X (Iron,Diamond,Netherite etc.)"
      • Enough extra armour to make it like the original
      • Enough extra toughness to make it like the original
      • Enough effective durability (via a listener for PlayerDamageItemEvent), enough to make it as durable as the original type
      • Weighs as much as the original type for encumbrance purposes
    • We need to convert all helmets to hardened leather helmets (other people will be slackers and that will really take away from the impact:
      • To do this convert all hard helmets into hardened leather ones, e.g. when player uses their inventory etc.
      • Dye the helmets some random colour
    • Now we need people not to be producing normal hard helmets, so probably disable the standard recipe and replace with one with a helmet in the middle.

Poison shield for cavalry?

Poison seems to make horses rear up

Either we add ant-stunning, and maybe remove fire shield

Or we add a poison shield, and maybe anti wither poison too etc.

Remove Redundant Features

Remove

  • Encumbrance
  • The thing which affects infantry stats
  • Auto-potter
  • Warhammer (Its too similar to axe dude)

Special Chest Weights

With current code, players can carry heavy equipment in shoulders or use enderchests

Solution?

  • weigh the stuff in shullers
  • give enderchests a fixed encumbrance e.g a fixed value between 20-50 (maybe 40?)

Make cavalry very residant to arrows

  • As per title

    • "Arrow Dodging"
    • Apply to both rider and horse
    • Crossbows equipped with piercing can penetrate this shield
  • This might nice tactically, because:

    • Everyone is encouraged to get cavalry, because they are dangerous to infantry, and hard to attack without other cavalry
    • Horse archers are effective against infantry
    • Cavalry spear riders are effective against horse archers
  • NOTE:

    • Possibly do this with a potion effect for horse and rider.
    • Also add a Fres potion effect to the horse and rider? (doesn't have to be too high as rearing will not be a thing)

Battlefield Roles - Add super potions

  • As per title
  • Note: For light, I suggest actually a much simpler "True Potion of Invisibility", which lasts 1 minute, but is just a regular one minus the bubbles.

Limited drops on death

When protected in town radius, consider adding some things that do drop on death

  • Not armour or weapons
  • 20% of each bloc stack you are carrying
  • 20% chance for all other items e.g. potions, saddle etc.

Rebalance default slows

  • Are players wimping out generally over the 18% netherite slow ?
  • So far at least some seem to be, and loud crying from just a few still can be hard for server owners to deal with.
  • So to keep players pampered, consider rebalancing the slows / boosts
  • Something like +12% to -12% might be an easier sell.
  • to achieve this, use this:
Gen boost: 12%.
Base armour: -4% for full kit
Leather: 100%    -4 %
Chain 180         -7.2 %
Turtle 260           etc.
Gold 340
Iron 420
Dia 500
Nerf 600
  • this also has the advantage that full chain does not get the 8% jump issue

Cavalry Charges

  • If a player mounts a horse, in 10 secs they get strength 2 w 15 sec duration
  • This keeps getting refreshed every 10 secs.
  • if they dismount, it is removed
  • if they hit, it will take 10 seconds to refresh

  • Set this up via a single TownyCombat task
  • Merge with the jump task

Potion Transmuter: Add

  • With current code, we have the "auto-potting" feature
  • While this removes the training requirement very well, it still requires that the weaker side do significantly more grinding before combat....because they will be going quickly through potions.
  • Since I despise grinding, remove this feature, and replace it with the "Potion Transmuter". See upcoming PR for details.
  • This feature will be part of the config for "unlock PVP to regular players"

Remove any permanent ability modifiers

  • Currently I believe there are some "permanent" ability modifiers
  • While the plugin is active, it deals with these, adding and removing them as required, ..... but if the plugin gets completely removed....those permanent changes would remain.
  • Review the codebase and get rid of these things. Replace them with either temporary Potion Effects OR modifications-to-individual-weapon-hits
  • Also, add a "stat stabilizer" feature, so that when a player logs in, their permanent stats are automatically reset to default....which should basically repair any damage caused by previous TownyCombat installs.
  • This will be a nice thing to advertise in the release of 4.0.0

Suggestion: Consider controlling pvp-clan activity

Is your feature request related to a problem? Please describe.

  • Multi-server pvp "clans" are apparently a thing
  • these groups go from server to server for the sole purpose of fighting.
  • they generally log in for sieges but take no other part in the server
  • the first question is: is this ok?
    • It can upset strategies of some one-server nations, when unknown superskilled fighters suddenly appear from nowhere to join one nation, fight a siege, then disappear again after.
    • but perhaps those one-server nations should, rather than complaining, consider these fighters a legitimate source of military power for the nation that they helped?...like mercenaries in RL
    • similarly, have overwhelmed nations considered a strategy of surrendering and/or going neutral in the face of this threat?
    • maybe the most convincing argument for doing something, is that the presence of these fighters massively raises the bar for war participation, forcing a lot of casual players to line up with the pvp'ers rather than following more natural geopolitical strategies.

Describe the solution you'd like
Not sure yet

Describe alternatives you've considered
Na

Additional context
Na

Prevent Horses Getting Stunned

With current code, any damage will (apparently) cause a hose to be stunned momentarily.

This is no good in battle

Potentially resolve by intercepting attack events, cancelling, then setting health directly

After this it may be possible to remove fire immunity but I'm not sure

Make encumbrance list more flexible

  • Currently only hardcoded items can have encumbrance
  • To improve this, and help with say, gun integrations, simply put all encumbered materials on a single configurable map.

Lang problem

Using English (default) lang in TownyCombat and Spanish in Towny

12.04 12:49:28 [Server] INFO ValenGamerXD issued server command: /tcm reload
12.04 12:49:28 [Server] INFO Successfully loaded translations for 0 languages.
12.04 12:49:28 [Server] INFO Loaded additional language files for plugin: TownyCombat
12.04 12:49:28 [Server] ERROR null
12.04 12:49:28 [Server] INFO org.bukkit.command.CommandException: Unhandled exception executing command 'tcm' in plugin TownyCombat v0.2.0
12.04 12:49:28 [Server] INFO at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
12.04 12:49:28 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:172) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
12.04 12:49:28 [Server] INFO at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchCommand(CraftServer.java:905) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2389) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2200) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2181) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.network.protocol.game.ServerboundChatPacket.handle(ServerboundChatPacket.java:46) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.network.protocol.game.ServerboundChatPacket.a(ServerboundChatPacket.java:6) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1426) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1403) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1396) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1530) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1246) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:320) ~[purpur-1.18.2.jar:git-Purpur-1609]
12.04 12:49:28 [Server] INFO at java.lang.Thread.run(Thread.java:833) ~[?:?]
12.04 12:49:28 [Server] INFO Caused by: java.lang.StackOverflowError
12.04 12:49:28 [Server] INFO at com.palmergames.bukkit.towny.object.Translation.of(Translation.java:86) ~[towny-0.98.1.6.jar:?]
12.04 12:49:28 [Server] INFO at com.palmergames.bukkit.towny.object.Translation.of(Translation.java:125) ~[towny-0.98.1.6.jar:?]
12.04 12:49:38 [Multicraft] Skipped 1022 lines due to rate limit (30/s)

Add anti-claim-hopping

Claim hopping is an annoying tactic when fighting in Towny .... where a player will run into a safe claim while in combat, thus escaping combat unnaturally.

0xBit has kindly offered some code he has already written, so that we can add an anti-black hopping feature to TCM:

CODE:

https://github.com/EarthPol/EPMC-AntiClaimHop

https://github.com/EarthPol/EPMC-AntiClaimHop/blob/main/src/main/java/com/earthpol/anticlaimhop/combat/listener/CombatListener.java

NOTE
As always, ake sure we do right with the copyright stuff e.g ensure 0x signs off clearly on us copy pasting some of his code into TCM.

Suggestion: Add Placeholder API support

Add the ability for Placeholder API to display player weight and other items.
This is mostly so players can see their current weight and don't have to guess what it is.

Suggestion: disable potion effects (certain) at siegezones and 2-3 chunks after the siegezone

A clear and concise description of what the problem is. Ex. I'm always annoyed when players roam at the Siegezones with full netherite kit with strength pots and be critting enemies 3 times before they even get a chance.

Describe the solution you'd like
We could probably have potions disabled at Siegezones like totally or only certain but id like it to be a Boolean type as if we have to type in the names it gets difficult as we don't know what name they actually validate as I've seen potions having so many names.
We could just disable pots that we want at siege zones as it's too overpowered and ya my server is 1.8 PvP so I really need to get that thing disabled

Additional context
N/A

Suggestion: Add option to prevent armor and weapons from degrading in Arena plots

Please explain your feature request to the best of your abilities:

Suggesting this because a lot of people on my server seem to duel in Arenas on the server, it would make sense if Armor didn't degrade in these arenas because of how people burn through sets so fast, to the point where they have to grind for them again.

Obviously this would be disabled when PvP is enabled in an entire town, and when a siege is active.

Suggestion: Limited KeepInventory option in sieges

Due to me simply wanting a custom system of KeepInventory in sieges without having it on 24/7, I've decided to recommend a system of KeepInventory in sieges, whereas it's customizable on how many deaths you can keep your inventory items for.
(This could be stylized in the config as "keep_inventory_limited: true" and "attackers: 5", "defenders: 5".

It prolongs fights in sieges without the worry of losing items after dying once, but gives a system of burnout without people constantly running away as an alternative.

Additional context
It could also be used in conjunction with the armor degrading option to add more consequence.

Possible Bugs
The only bug I could think of if this option was implemented would be people leaving towns/nation and rejoining to replenish their death count so they never lose their inventory, but there could probably be a way to log whose in a siege and who isn't.

Horse charge breaks shields?

  • This is kind of an alternative to the missile tank idea
  • Here, charging is melee only
  • Strength 3,
  • And x% chance to break shield (75?)
  • Like missile tanks, this gives horses a special purpose, and this one more historically accurate

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.