Giter VIP home page Giter VIP logo

movecraft-combat's Introduction

Movecraft Combat Addon

Combat Codebeat

Home of the code for the following features:

  • AA Directors
  • Arrow Directors
  • Cannon Directors
  • Contact Explosives
  • Durability Override
  • Fireball Lifespan
  • TNT Tracers
  • Damage Tracking
  • Combat Release Tracking
  • Anti-Player Radar
  • Fire Behavior
  • TNT Translocation Behavior
  • Movement Tracers
  • Blast Resistance Override

Version support

The main branch is coded for 1.14.4 and up with Movecraft 8.x.

The legacy branch is coded for 1.10.2 to 1.12.2 and Movecraft 7.x.

Download

Releases can be found on the releases tab.

Development builds can be found on the GitHub Actions tab of this repository.

Previous builds can be found on our SpigotMC page.

Building

Run the following to build Movecraft-Combat:

./gradlew clean build --parallel

Jars are located in /build/libs directory.

Support

Github Issues

Discord

The plugin is released here under the GNU General Public License V3.

movecraft-combat's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

movecraft-combat's Issues

Protection bypass

Currently, the plugin bypasses TNT protection plugins and will dispense TNT in protected regions. The fix for this should be to set the listener to lowest priority.

Unsupported API version: 1.10.2

Movecraft-Combat is not loading on 1.16.2.

[21:10:51] [Server thread/ERROR]: Could not load 'plugins\Movecraft-Combat-0.8.24.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.10.2
        at org.bukkit.craftbukkit.v1_16_R2.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:284) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.craftbukkit.v1_16_R2.CraftServer.loadPlugins(CraftServer.java:381) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:186) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:808) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]

MCC version: 0.8.24
Server software: SpigotMC
Server version: 1.16.2

Translocation clip issue

2021-04-01_22 33 45
2021-04-01_22 34 34
[Recreated in my test server because the server was laggy]
Translocating TNT in the manner shown in the first picture will sometimes result in the TNT not falling as expected and clipping on the block below the piston. This is standard 1.12 behaviour but not 1.10 translocation behaviour.

Possible torp problems

Torpedo type crafts don't trigger combat tracking, and the damage tracking may not fully work.

Omega Translocation

For some reason, this exact setup causes TNT to translocate a very large distance when translocating north and south:
2021-04-18_12 22 03
2021-04-18_12 22 08

This bug does not occur when using a repeater to activate the piston, and the distance translocated is based on the dust signal strength.

Firework Director

With the addition that fireworks can be shot from a dispenser and will accelerate on the axis that the out face is oriented in, I think that it would be a good idea to add a director faction that works with fireworks. I imagine that this would function similarly to the AA director but with fireworks.

The advantages of this are that it is an Anti player (AP) weapon and can be used to eliminate players that are unprotected or are under light protection. It is also mostly self-balancing as fireworks have a fuse time and will explode if they are too far away from a target. This means that a ship needs to be somewhat close to sed target in order to be useful. I feel that this would be a nice adition and would open a new door for players to explor untilize and exlpoit in there movecraft adventures. # #

Stat tracking

It would be awesome to track stats like sinks, assists, sunks, and ratio (sinks/sunks).

Legacy issues

1.13+ support currently works for the pre-release branch, but Material.COBWEB does not exist in <1.13.

@eirikh1996 , do you know how I could solve this problem?

Translocation block check

2021-04-09_17 01 59
The shown setup won't translocate because the fencegate isn't included in the "translocatable" blocks list. This list is also missing several other no-hitbox blocks. This may cause problems in some guns.

boing

Possible idea for preventing boarding, boing the player away from a ship. The check could be once a second and use isNearCraftFast to bounce a player away from a craft if it is not disabled.

Sticky Piston trying to pull non-movable

2021-04-09_17 06 41
Sticky pistons won't call a BlockPistonRetractEvent if they try to pull a non-movable block due to spigot weirdness. This problem is not fixable in any reasonable way but I submitted it anyway so it gets documented.

WorldGuard error on 1.16.2

There is an issue with WorldGuard on 1.16.2

[09:29:49] [Server thread/ERROR]: Could not pass event CraftReleaseEvent to Movecraft-Combat v1.0.0-SNAPSHOT.18
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.countercraft.movecraft.craft.CraftManager.removeCraft(CraftManager.java:170) ~[?:?]
        at net.countercraft.movecraft.sign.CraftSign.onSignClick(CraftSign.java:109) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:478) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.PlayerInteractManager.a(PlayerInteractManager.java:444) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1278) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.PacketPlayInUseItem.a(PacketPlayInUseItem.java:1) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:941) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:934) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:918) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:850) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.NoSuchMethodError: com.sk89q.worldguard.bukkit.WorldGuardPlugin.getRegionManager(Lorg/bukkit/World;)Lcom/sk89q/worldguard/protection/managers/RegionManager;
        at net.countercraft.movecraft.combat.movecraftcombat.status.StatusManager.isInAirspace(StatusManager.java:156) ~[?:?]
        at net.countercraft.movecraft.combat.movecraftcombat.status.StatusManager.craftReleased(StatusManager.java:98) ~[?:?]
        at net.countercraft.movecraft.combat.movecraftcombat.listener.CraftReleaseListener.releaseListener(CraftReleaseListener.java:16) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.2.jar:git-Spigot-379750e-1e76d09]
        ... 30 more

Plugins: LuckPerms, spark, void-generator, Vault, MassiveCore, Multiverse-Core, dynmap, Citizens, WorldEdit, Essentials, DtlPlayershops, Towny, WorldBorder, Cannons, WorldGuard, Factions, Dynmap-Factions, Movecraft, StructureBoxes, Factions3Chat, Periscopes, Movecraft-Combat, Movecraft-Factions

NPE in FireballManager

On the latest build of Tuinity 1.16.2, the following NPE is constantly thrown:

[20:07:22 WARN]: [Movecraft-Combat] Task #484 for Movecraft-Combat v1.0.11 generated an exception
java.lang.NullPointerException: null
        at net.countercraft.movecraft.combat.movecraftcombat.fireballs.FireballManager.run(FireballManager.java:29) ~[?:?]
        at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at org.bukkit.craftbukkit.v1_16_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1354) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:372) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1267) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:999) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.3.jar:git-Tuinity-"5df4a4f"]
        at java.lang.Thread.run(Thread.java:834) [?:?]

It is triggered by line 29 of the FireballManager class, which is:

while(System.currentTimeMillis() - q.peek().getMetadata("MCC-Expiry").get(0).asLong() > timeLimit && q.size() > 0)

IntelliJ highlights .getMetadata("MCC-Expiry") as the cause, which I assume is because q, the LinkedList defined in line 22, can be empty?

API events

The API should have events for when a craft is damaged, and an extension of the sink event with who sunk it.

Harvest block flag

I was wondering if you could add a way of disabling harvest blocks in certain WG regions. This would allow for setup protected areas to be safe from crafts that have ram type weapons.

Cannon issues?

People have reported many cannon issues, but I can not replicate them.

Most likely it is due to the TNT spawn tracking.

MediumSubAirships

MediumSubAirships crafts don't require Redstone blocks to move, and the disabled feature only seems to apply to iron.

Same-tick problem

2021-04-01_20 44 29

As shown here, when TNT is dispensed in the same tick as the piston extends, it fails, but a minor delay fixes problems.

EDIT: to add the delay replace the far redstone with a repeater

Block translocation

2021-04-09_16 53 33
Translocation when the TNT is inside a moved block does not work and the above setup demonstrates a common case in some translocation guns. When extended the TNT entity will stay inside of the block instead of moving 1 extra block which doesn't correspond to 1.10 behaviour and will break some guns.

TNT alignment on translocation

The current translocation fix tp's every translocated TNT to the same coordinates and removes the small spread created by the random velocity upon dispensing. This causes translocation guns to deal noticeably less damage in comparison to non-translocation guns and 1.10 translocation guns.

Return to Craft type configs

It would be ideal to transition back to using a custom craft type option in for directors once Movecraft 8.0 has a stable API for this,

Fireballs Won't Despawn

An issue that I've found is that fire charges fired from dispensers when running the latest version of Movecraft Alpha and Movecraft Combat don't despawn after the set period of time and continue on infinitely. No error is produced in the server logs or on console when firing firecharges. Latest versions downloadable on GitHub were used.

Movecraft Combat Config

Locale: "en" # Language file to load, currently the plugin comes with en and no, but you can add your own custom language as well.


### Stock features moved from Movecraft

# AA Directors
AADirectorDistance: 50 # Max range at which fireballs will be redirected
AADirectorRange: 120 # Max range at which it will direct to a block vs in the general direction
AADirectorsAllowed: # List of string names to craft types that are allowed to use AA Directors
  - "Airship"
  - "SubAirship"
  - "Lightairship"
  - "Turret"
  - "Car"
  - "Ship"
  - "Submarine"
  - "Hvyairskiff"

# Cannon Directors
CannonDirectorDistance: 100 # Max range at which TNT will be redirected
CannonDirectorRange: 120 # Max range at which it will direct to a block vs in the general direction
CannonDirectorsAllowed: # List of string names to craft types that are allowed to use Cannon Directors
  - "Airship"
  - "SubAirship"
  - "Lightairship"
  - "Airskiff"
  - "Bigairskiff"
  - "Turret"
  - "Car"
  - "Ship"
  - "Submarine"
  - "Factory"

# Directors
DirectorTool: FEATHER # Material name for director control.
TransparentBlocks: # List of MATERIAL_NAMES which are ignored for directing.  See https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html for a full list.
  - AIR
  - GLASS
  - GLASS_PANE
  - REDSTONE_WIRE
  - COMPARATOR
  - REPEATER
  - LADDER
  - STAINED_GLASS
  - BLACK_STAINED_GLASS
  - BLACK_STAINED_GLASS_PANE
  - GRAY_STAINED_GLASS
  - GRAY_STAINED_GLASS_PANE
  - LIGHT_GRAY_STAINED_GLASS
  - LIGHT_GRAY_STAINED_GLASS_PANE
  - WHITE_STAINED_GLASS
  - WHITE_STAINED_GLASS_PANE
  - SPRUCE_TRAPDOOR
  - BIRCH_TRAPDOOR
  - IRON_BARS
  - REDSTONE_WIRE
  - IRON_TRAPDOOR
  - TRAP_DOOR
  - NETHER_BRICK_STAIRS
  - LEVER
  - STONE_BUTTON
  - OAK_BUTTON
  - SPRUCE_BUTTON
  - BIRCH_BUTTON
  - JUNGLE_BUTTON
  - ACACIA_BUTTON
  - DARK_OAK_BUTTON
  - STONE_BRICK_STAIRS
  - STONE_BRICK_SLAB
  - SMOOTH_STONE_SLAB
  - OAK_WALL_SIGN
  - OAK_SIGN
  - SPRUCE_WALL_SIGN
  - SPRUCE_SIGN
  - BIRCH_WALL_SIGN
  - BIRCH_SIGN
  - JUNGLE_WALL_SIGN
  - JUNGLE_SIGN
  - ACACIA_WALL_SIGN
  - ACACIA_SIGN
  - DARK_OAK_WALL_SIGN
  - DARK_OAK_SIGN
  - GRAY_CARPET
  - LIGHT_GRAY_CARPET
  - TORCH
  - WALL_TORCH
  - REDSTONE_TORCH
  - REDSTONE_WALL_TORCH

# Contact Explosives
EnableContactExplosives: true # Enable TNT contact explosives

# Durability Override
DurabilityOverride: # List of block IDs: ignore percent
  END_STONE: 80
  END_STONE_BRICKS: 85
  END_STONE_BRICK_STAIRS: 85
  END_STONE_BRICK_SLAB: 85
  END_STONE_BRICK_WALL: 85
  LADDER: 80
  DISPENSER: 80
  HONEY_BLOCK: 80
  SLIME_BLOCK: 80
  BARREL: 60
  CHEST: 60
  OAK_BUTTON: 240
  SPRUCE_BUTTON: 240
  BIRCH_BUTTON: 240
  JUNGLE_BUTTON: 240
  ACACIA_BUTTON: 240
  DARK_OAK_BUTTON: 240
  STONE_BUTTON: 240
  LEVER: 240
  REDSTONE: 240
  REPEATER: 240
  REDSTONE_TORCH: 240
  REDSTONE_WALL_TORCH: 240
  PISTON: 200
  COMPARATOR: 240
  OBSERVER: 99
  ALL_STAINED_GLASS: 70
  STICKY_PISTON: 180
  ALL_SIGN: 180
  REDSTONE_WIRE: 180
  OAK_WALL_SIGN: 180
  SPRUCE_WALL_SIGN: 180
  BIRCH_WALL_SIGN: 180
  JUNGLE_WALL_SIGN: 180
  OAK_SIGN: 180
  SPRUCE_SIGN: 180
  BIRCH_SIGN: 180
  JUNGLE_SIGN: 180
  WHITE_CONCRETE: 82
  ORANGE_CONCRETE: 82
  MAGENTA_CONCRETE: 82
  LIGHT_BLUE_CONCRETE: 82
  YELLOW_CONCRETE: 82
  LIME_CONCRETE: 82
  PINK_CONCRETE: 82
  GRAY_CONCRETE: 82
  LIGHT_GRAY_CONCRETE: 82
  CYAN_CONCRETE: 82
  PURPLE_CONCRETE: 82
  BLUE_CONCRETE: 82
  BROWN_CONCRETE: 82
  GREEN_CONCRETE: 82
  RED_CONCRETE: 82
  BLACK_CONCRETE: 82
  dirt: 95
  grass_block: 95
  podzol: 95
  grass_path: 95
  coarse_dirt: 95
  farmland: 95
  sand: 88
  sandstone: 88
  bricks: 88
  brick_stairs: 88
  stone_bricks: 88
  chiseled_stone_bricks: 88
  polished_andesite: 88
  iron_block: 86
  polished_basalt: 95
  polished_blackstone_stairs: 95
  polished_blackstone_bricks: 95
  polished_blackstone_brick_stairs: 95
  smooth_sandstone_stairs: 95
  stone_stairs: 95
  polished_andesite_stairs: 95
  cut_red_sandstone: 95
  chiseled_red_sandstone: 95
  polished_granite: 95
  cut_sandstone: 95
  chiseled_sandstone: 95
  smooth_stone: 95

# Fireball Lifespan
FireballLifespan: 5 # Lifespan of fireballs in seconds

# TNT Tracers
TracerRateTicks: 3.5 # Rate at which tracers are spawned on the path of flying TNT
TracerMinDistance: 60 # Minimum distance at which glowstone tracers are spawned on explosion
TracerParticles: CAMPFIRE_COSY_SMOKE # Particle to use for particle tracers  See https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html for options.
ExplosionParticles: EXPLOSION_HUGE # Particle to use for particle tracer explosions


### Custom features

# Damage Tracking
EnableFireballTracking: false # Enable tracking and recording of fireballs (higher lag than other tracking methods)
EnableTNTTracking: false # Enable tracking and recording of TNT damage (please read the wiki page before enabling!)
EnableTorpedoTracking: false # Enable tracking and recording of Torpedo damage
DamageTimeout: 300 # Timeout for damages in seconds

# Combat Release Tracking
EnableCombatReleaseTracking: false # Enable tracking of combat releasing
EnableCombatReleaseKick: false # Enable combat release kick, overriden to true if CombatReleaseBanLength isn't 0
CombatReleaseBanLength: 0 # Length of combat release ban in seconds, set to 0 to disable
CombatReleaseScuttle: false # Enable scuttling of crafts when combat released

# Anti-Player Radar
EnableAntiRadar: false # Enable invisibility for craft pilots to nullify minimap "player radar" modes

# Fire Behavior
EnableFireballPenetration: true # Randomly replace blocks with fire when they are struck by fireballs.
AddFiresToHitbox: true # Add fires lit on the surface of a craft to its hitbox so they don't obstruct it.

# TNT Translocation Behavior
ReImplementTNTTranslocation: false # Re-implement TNT translocation in 1.11+, ignored in 1.10```


--------------------This Is A Separate File For Movecraft's Config below Here---------------------------



```Locale: en
CompatibilityMode: false
SinkRateTicks: 20
SinkCheckTicks: 100
TracerRateTicks: 5
TracerMinDistance: 60
PilotTool: STICK
ManOverboardTimeout: 860
ManOverboardDistance: 5000
FireballLifespan: 5
ProtectPilotedCrafts: true
DisableSpillProtection: false
DisableIceForm: true
RequireCreatePerm: false
TNTContactExplosives: true
DisableCrates: true
FadeWrecksAfter: 600
FadeTickCooldown: 20
FadePercentageOfWreckPerCycle: 10.0
ExtraFadeTimePerBlock:
  CHEST: 600
  TRAPPED_CHEST: 600
  DISPENSER: 600
  DROPPER: 600
  FURNACE: 600
BlockQueueChunkSize: 200000
MaxRemoteSigns: -1
CraftsUseNetherPortals: true
ForbiddenRemoteSigns:
- Mounted
- Denied
- '[private]'
RequireNamePerm: false
GeneratedDatapack: true
FuelTypes:
    263: 5.0```

Assist vs kill tracking

Currently the process displays all players who sunk somebody. Ideally it would be of the form X was sunk by Y with assists from ABC

Partial translocation

2021-04-09_16 58 39
This setup should translocate the TNT one block and let it fall through the hole. Instead it doesn't translocate the TNT at all which doesn't correspond to 1.10 behaviour and may possibly break some side guns.

/movecraft reloadtypes Error

Currently, if a server owner runs /movecraft reloadtypes, the referenced CraftTypes are invalidated and directors no longer work on any craft. The solution for this will be a PR to movecraft to add a CraftTypesReloadedEvent to movecraft and a listener to MCC to reload it's own referenced types.

Torpedo tracking

Torpedos need tracking, but this needs implementation in Movecraft itself.

Cannons plugin damage tracking

Movecraft has built-in integration for the Cannons plugin. On my server, cannons from this plugin are the primary armaments of most ships. If possible, it would be great to see some sort of damage-tracking implemented for it!

Fireball tracking

Fireballs are not tracked if they explode outside the hitbox of a craft.

Upwards Extension Translocation

2021-04-02_13 15 52
The setup above does not exhibit normal 1.10 behaviour. The TNT should be translocated on top of the piston head when the piston is extended but it ends up inside the piston head instead. This is used in some guns and might be a problem.

TNT Tracer configuration per player

Allow players to configure TNT tracers to a few settings per player:

  • Nothing (off)
  • Glowstone only (low)
  • Glowstone and half cobwebs (medium)
  • Normal (high)

Something like /tracers [off | low | medium | high]

Possible TNT anti-duplication

If a dispenser is moved in between when dispenser events are handled and when tasks are handled from them, there is the possibility of losing a TNT.

TNT bug

TNT never goes lower than 2 items in a dispenser

Translocation ignoring nearby blocks

2021-04-09_16 42 09
As shown in the setup TNT entities not entirely aligned with the piston will still get translocated. This doesn't correspond to the 1.10 behaviour and may cause some problems in specific guns.

Translocation offset

TNT seems to be teleported ~0.2 blocks too far in the direction, not sure why.

Sticky Pistons work in reverse

2021-04-09_16 52 29
2021-04-09_16 52 42
2021-04-09_16 52 50
The shown setups will translocate the tnt on piston retraction (sticky pistons were used). This is because event.getDirection() gives the opposite direction on sticky piston retraction due to spigot weirdness.

TNT Translocation blockList

Currently, only blocks which contain "SIGN", are liquid, or are empty are allowed to be translocated into.

We should add the following:

  • Buttons
  • Torches
  • Levers
  • ???

Ship bounties

Allow players to put bounties on the sinking of another player, similar to ingame kill bounties.

Split profits along a certain config-able percentage of kill vs assists.

Incorrect TNT item removal on dispense event

  1. When there's only 1 TNT item in a dispenser inventory it is not removed and no TNT is spawned.
  2. When there's a stack of TNT with 1 item only and other stacks of TNT in a dispenser inventory TNT will be spawned but no TNT will be consumed where the 1 TNT stack will be transferred to another TNT stack.

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.