Coder Social home page Coder Social logo

craftgames's Introduction

STATS INOP STATS INOP STATS INOP

craftgames's People

Contributors

lazoyoung avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jho5245

craftgames's Issues

Some players are not counted during game.

It's happening in certain circumstances:

  1. Joins a game where map generation is still in progress.
  2. The other players who has joined next to you are not counted.
    Basically they are treated like being outside the game.

Player module

  • Send message to player. (formatting code ready)
  • Get players by 3 filters: all, team, dead.
  • Check if player is online(inside game).
  • Eliminate a player.
  • Kill, Death trigger -> #24

Provide sample/preset scripts

  • Sample script is for new users.
  • Preset scripts let users to generate particles, fireworks, etc. easily compared to using Bukkit API directly.

Lobby module

  • Spawnpoint
  • Timer
  • Map vote
    • /mapvote system
    • Vote menu
  • Exit mode
    • World (in-server)
    • Server (bungeecord-bound)
  • Ready sign

Team module

  • Create a Team instance
  • Draw a fixed number of players and assign them to a team
  • Get list of players who are in a team
  • Provide Scoreboard instance
  • Spawnpoint per team

Location serialization is not safe.

Plugin must save the location of game players so they can exit back to the original place.
The code relies on Bukkit method when it comes to saving
location to file and vice versa. If the world is unloaded at that point, the server crashes.

MythicMobs compatibility issue

This error occurs in MythicMobs plugin's task execution.
I presume this plugin has to remove MythicMob entities before deleting world.

[00:34:54 ERROR]: [MythicMobs] [SCHEDULER] Exception thrown whilst executing task
[00:34:54 WARN]: java.lang.NullPointerException
[00:34:54 WARN]:        at io.lumine.xikage.mythicmobs.drops.LootBag.equip(LootBag.java:201)
[00:34:54 WARN]:        at io.lumine.xikage.mythicmobs.mobs.MythicMob.lambda$applyMobOptions$2(MythicMob.java:857)
[00:34:54 WARN]:        at io.lumine.xikage.mythicmobs.utils.Delegates$RunnableToSupplier.get(Delegates.java:95)
[00:34:54 WARN]:        at io.lumine.xikage.mythicmobs.utils.promise.LuminePromise$SupplyRunnable.run(LuminePromise.java:653)
[00:34:54 WARN]:        at io.lumine.xikage.mythicmobs.utils.tasks.LumineExecutors$SchedulerWrappedRunnable.run(LumineExecutors.java:71)
[00:34:54 WARN]:        at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftTask.run(CraftTask.java:84)
[00:34:54 WARN]:        at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:452)
[00:34:54 WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.b(MinecraftServer.java:1185)
[00:34:54 WARN]:        at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:430)
[00:34:54 WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:1112)
[00:34:54 WARN]:        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:934)

Security measure for groovy scripts

This is due to the following security concerns:

  • Scripts may access sensitive files. e.g. system file
  • It's possible to mess up a whole server with unlimited commands.

World module

  • Install schematics
  • Barrier controls
  • Area triggers
  • Fill loot chests

Ability to lock inventory

  1. disallow players to throw items out of inventory
  2. disallow players to modify inventory(moving items or etc)

Script module

  • 이벤트: 버킷 이벤트를 모니터링하는 함수를 등록한다.

이벤트 모듈로 분리합니다.

  • 스케줄러: 어떤 시점에서 일련의 코드를 일정 주기로 반복 실행하거나, 지정된 시간에 맞추어 실행하는 기능을 제공한다.

Game module

  • Personal spawnpoint
  • Editor spawnpoint
  • Spectator spawnpoint
  • Default Gamemode
  • Respawn timer
  • Game timer
  • Broadcast message to players. (formatting code)
  • Player capacity
  • Decide whether to keep it open for players after the game starts.

Item module

  • Reading loot table JSON
  • Kits
    • Allow/deny kit selection
    • Force players to wear a kit.
  • Inventory restoration moved to #38

Check Entity existence

  1. Able to check Entitytype(mob type) and Name

  2. Association with Area; if not associated with area it will check every entities in game world

  3. Check entity number

Void damage Error

When player die with void damge, they will still take void damage for a while when respawned

Accessibility module

  • 파티 단체참여를 허용한다. 정원을 초과하면 남은 인원은 관전시킨다.
  • (optional) 다른 서버에서 접속한 유저를 바로 미니게임으로 이동시킨다.

Reward prompt menu

Prevents possible overflowing inventory after receiving reward items.

Spawn module

  • Personal spawnpoint
  • Editor spawnpoint
  • Spectator spawnpoint
  • Mob spawn function
    • Vanilla mob support
    • Mythic mob support

Implement coordinate tags

Refer to wiki for details.

  • Coordinate is sorted into block and entity type. (They have different usage)
  • A tag defines coordinate in either type, holding at least one value per each map.
  • Can be managed via command: /game tags <add/remove/list> [group] [type] [index]
  • #9 fix must precede.

Install and manage the running maps

  • Install map files from game repository.
  • Generate maps quickly without impacting performance.
  • Destruct map files after the game is finished.

Spawn pvp protection

This includes both situation when you first spawn inside a game, when you have just respawned after getting murdered.
It is configurable in config.yml only.

Respawn module

Migrate some existing functions from PlayerModule.

// Initial spawnpoint
RespawnModule.setSpawnpoint(String tagName)
RespawnModule.setSpawnpoint(Player player, String tagName)

// Respawn position (optional)
RespawnModule.setRespawnpoint(String tagName)
RespawnModule.setRespawnpoint(Player player, String tagName)

// Respawn toggle
RespawnModule.setCanRespawn(Boolean canRespawn)
RespawnModule.setCanRespawn(Player player, Boolean canRespawn)
  1. If you have never invoked setRespawnpoint():
    Players are relocated to initial spawnpoint whenever they respawn.

  2. If you invoke setRespawnpoint() with relevant tagName argument:
    The new spawnpoint is set for the respawning players.

  3. If you invoke setRespawnpoint() while passing null to tagName argument:
    The new spawnpoint is where you were killed last time.

Reward functions in ItemModule

This module is responsible for distributing rewards among players after the game's finished.

  • Set money reward for each player/team
  • Set ItemLoot reward for each player/team

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.