Jump to content
Sign in to follow this  
totemo

Ready for another round of CTF Plugin Testing

Recommended Posts

The main changes are:

  • You spawn in the end at a designated first-join location.  From there, you can warp into the minigames area by clicking a sign, or just drop down to a water drop below.
  • You join a team by typing /join.  In principle, you don't have to join a team - you could spend the entire event in the minigames area in the end.
  • Most of the power blocks now record which team placed them.  They only confer positive effects on the team that placed them and negative effects on enemy teams.  You can test a hostile power block (which would not normally affect you) by running /testblock which toggles a test mode.  The exceptions are stained clay and quartz (because I use the colour/data value to keep track of which team placed the block) and ice, because I want a speed road built by one team to be usable by the enemy (but tell me if I'm wrong about that idea).
  • Staff won't see both team's chat unless in ModMode.
  • There's now a time limit on stealing a flag (currently set to 30 minutes).  If you don't capture it within 30 minutes of stealing it, it returns automatically.  Dropping and picking it up doesn't thwart this mechanism.
  • Team buff captures are now scored as well.

The test server is still "Red" (event.nerd.nu:35565) and the real CTF server is still event.nerd.nu (default port).  The real CTF server is now set up with working warps, buffs and flags.  But remember: that map will be used in the actual event, so be careful with the edits you make.
 
The full changes in this CutePVP plugin, from my commit messages on github are:

  • Don't make op exempt by default.
  • Don't override bed spawn set in the end.
  • Set bed spawn to default non-team spawn in The End when entering that dimension.
  • Fix unintended rounding of saved general locations.
  • Add first spawn point in the end.
  • Set a subsequent spawn point in the end for people who never join a team. 
  • Joining a team is accomplished with /join.
  • Staff don't see both teams chat unless in ModMode.
  • /teams now lists staff too.
  • Disable the reload command until it is known safe.
  • Remove redundant log.
  • Remove the helmet from the drops on player death, to prevent wool farming.
  • Added an option to make floor buffs ("power blocks") specific to the team that placed them or enemies.
  • Added /testblock command to toggle testing of hostile floor buff effects.
  • Return flags that leave the overworld via a portal or teleport.
  • Disable plugin mechanics in worlds other than the overworld to support minigames in The End.
  • Fix regeneration power blocks being overpowered.
  • Return flags that fall out of the world.
  • Automatically add players to a team-specific region for protecting chests as a group.
  • Automatically return flags that are held stolen for too long without being captured.
  • Prevent spamming of buff claim notifications.
  • Count buff captures towards the score.
  • Extend night vision potions to prevent 'flashing'.

 

Still yet to be done (tomorrow probably) before I will declare it finished:

  • Store team state (flag locations, buffs, team membership) in a separate configuration file from the other configuration - for reasons of robustness.
  • Periodically dump scores and team membership into the console log (for robustness).
  • Automatically assign identical IP addresses to the same team.
  • Upvote 3

Share this post


Link to post
Share on other sites

Automatically add players to a team-specific region for protecting chests as a group.

Will chests automatically be locked for the team's group? After the last attempt I just really don't like the idea of allowing players to lock their own chests because people are selfish and would likely hoard useful materials their team could use. It's supposed to be a team game, and if players are allowed to monopolize things like that it kind of hurts that dynamic, in my opinion.

During the last attempt we had multiple people locking their own chests and logging off, preventing the rest of us from using that stuff until they came back.

  • Upvote 2

Share this post


Link to post
Share on other sites

I just really don't like the idea of allowing players to lock their own chests because people are selfish and would likely hoard useful materials their team could use. It's supposed to be a team game, and if players are allowed to monopolize things like that it kind of hurts that dynamic, in my opinion.

During the last attempt we had multiple people locking their own chests and logging off, preventing the rest of us from using that stuff until they came back.

 

Yeah, that was a big problem. I had trouble scavenging together materials, let alone gearing up for PvP, because there was a lot of resource hoarding going on. It just seems to me that the most effective option is to pool resources. If someone wants to mine, they can mine. If someone wants to PvP, they can PvP. If everyone has to wear all the hats at once, it's hard to get much done.

Share this post


Link to post
Share on other sites

I'm against the idea of preventing players from being able to lock chests for themselves because there's always going to be some dick who takes all of the public mats anyways. If we can get chests to autolock to teams that'll be great, but forcing players to not have private ones strikes me as wrong. There are plenty of people who contribute to the team by doing their own thing using their own resources, just as their are people who contribute to the team by donating things.

  • Upvote 1

Share this post


Link to post
Share on other sites

Will chests automatically be locked for the team's group? After the last attempt I just really don't like the idea of allowing players to lock their own chests because people are selfish and would likely hoard useful materials their team could use. It's supposed to be a team game, and if players are allowed to monopolize things like that it kind of hurts that dynamic, in my opinion.

During the last attempt we had multiple people locking their own chests and logging off, preventing the rest of us from using that stuff until they came back.

 

We've also had the converse problem of selfless people donating everything to the team cause only to have some idiot turn all the diamonds into completely unusable diamond helmets or to have somebody from an opposing team steal it all with one of their alts.  There will be no forced communism.

 

There will also be no shortage of materials. The ores are plumped to a somewhat ridiculous degree.

 

Automatic locking of chests can be enabled.  

Share this post


Link to post
Share on other sites

Plugin changes as of today, from my commit messages:

 

  • Periodically reaffix helmet to deal with /ci.
  • Prevent helmet farming in The End.
  • Backup the configuration and log teams and scores at 10 minute intervals. (That's 144 backups per day. I'm fine with that - it's a small text file - I'll just clear the backups/ directory periodically during the testing period.)
  • Identical IP addresses are allocated to the same team, irrespective of team balance, provided that there are no more than 5 names associated with the same address.  If there are more, I assume that the address is a proxy and that assigning everyone from that address to one team would just lead to stacking.

I now consider the plugin to be complete.

Share this post


Link to post
Share on other sites

I have a question about that last change. If a group of players all give their login information to a friend, and have that one person log in for them the first time, that would result in that group of up to 5 people being on the same team, correct? If true, then we probably need to keep that last change confidential to prevent aboos.

Share this post


Link to post
Share on other sites

I think we may be able to get around that type of exploit I explained above if we covertly put that part of the plugin on the normal servers and pre-assign anyone who logs in to a team prior to the event. I can imagine a little humorous confusion if all of a sudden every player gets a message "You're on the Team!" on the normal servers, but I think we can anticipate that and prevent it.

Share this post


Link to post
Share on other sites

I think we may be able to get around that type of exploit I explained above if we covertly put that part of the plugin on the normal servers and pre-assign anyone who logs in to a team prior to the event. I can imagine a little humorous confusion if all of a sudden every player gets a message "You're on the Team!" on the normal servers, but I think we can anticipate that and prevent it.

 

 

I might extract the alts code (it's custom and separate from our normal MCBouncer stuff) and gather that kind of information on the regular servers, if I have time.

 

The thing is, that kind of alts checking will only ever really work on people who are unaware or unsophisticated.  It's pretty easy to thwart just by resetting a router if your IP is dynamically allocated (as mine is) or by going through a proxy of some sort.

 

I've put it in there because it's not too hard to do and it will stop a few dummies.  But I expect, as is usual, we will have people who are determined to ruin it for everyone else.  There's really not that much I can do to stop them.  And I was deliberately obtuse in the commit message where I added that (something about "improving team allocation") but the people who are really determined to ruin it will read ALL the code.

 

 

I've made two more technical changes:

  • I've done a major rework of ModMode because it was corrupting the internal state of the server when leaving ModMode from one world and arriving as a normal player in a different world.  If you've ever had problems with the End or the Nether, that's the fix.  I believe it will no longer be necessary to reset player data as a moderator, ever.
  • I modified CutePVP so that if you're in ModMode, you can edit the enemy team's base.  If you're an admin: use ModMode.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×