This commit is contained in:
Anuken
2020-06-26 15:59:54 -04:00
parent fdf7c88083
commit 0df4e26736
52 changed files with 110 additions and 133 deletions

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>,size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:cons,type:mindustry.world.modules.ConsumeModule,size:-1},{name:health,type:float,size:4},{name:items,type:mindustry.world.modules.ItemModule,size:-1},{name:liquids,type:mindustry.world.modules.LiquidModule,size:-1},{name:power,type:mindustry.world.modules.PowerModule,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:1,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:mindustry.gen.Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:2,fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:color,type:arc.graphics.Color,size:-1},{name:lifetime,type:float,size:4},{name:region,type:arc.graphics.g2d.TextureRegion,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:effect,type:mindustry.entities.Effect,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:parent,type:Posc,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:effect,type:mindustry.entities.Effect,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:parent,type:Posc,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:effect,type:mindustry.entities.Effect,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:parent,type:Posc,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:1,fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:effect,type:mindustry.entities.Effect,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:parent,type:mindustry.gen.Posc,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:2,fields:[{name:color,type:arc.graphics.Color,size:-1},{name:data,type:java.lang.Object,size:-1},{name:effect,type:mindustry.entities.Effect,size:-1},{name:lifetime,type:float,size:4},{name:offsetX,type:float,size:4},{name:offsetY,type:float,size:4},{name:parent,type:Posc,size:-1},{name:rotation,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:baseFlammability,type:float,size:4},{name:block,type:mindustry.world.Block,size:-1},{name:lifetime,type:float,size:4},{name:puddleFlammability,type:float,size:4},{name:tile,type:mindustry.world.Tile,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:block,type:mindustry.world.Block,size:-1},{name:lifetime,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:lifetime,type:float,size:4},{name:stacks,type:arc.struct.Seq<mindustry.type.ItemStack>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +1 @@
{fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unitc,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} {fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unit,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:1,fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unit,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:2,fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:mindustry.gen.Unit,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:3,fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unit,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{version:4,fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unit,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:admin,type:boolean,size:1},{name:boosting,type:boolean,size:1},{name:color,type:arc.graphics.Color,size:-1},{name:mouseX,type:float,size:4},{name:mouseY,type:float,size:4},{name:name,type:java.lang.String,size:-1},{name:shooting,type:boolean,size:1},{name:team,type:mindustry.game.Team,size:-1},{name:typing,type:boolean,size:1},{name:unit,type:Unitc,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:amount,type:float,size:4},{name:generation,type:int,size:4},{name:liquid,type:mindustry.type.Liquid,size:-1},{name:tile,type:mindustry.world.Tile,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:cons,type:mindustry.world.modules.ConsumeModule,size:-1},{name:health,type:float,size:4},{name:items,type:mindustry.world.modules.ItemModule,size:-1},{name:liquids,type:mindustry.world.modules.LiquidModule,size:-1},{name:power,type:mindustry.world.modules.PowerModule,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:intensity,type:float,size:4},{name:life,type:float,size:4},{name:opacity,type:float,size:4},{name:weather,type:mindustry.type.Weather,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -1 +0,0 @@
{fields:[{name:intensity,type:float,size:4},{name:life,type:float,size:4},{name:opacity,type:float,size:4},{name:weather,type:mindustry.type.Weather,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]}

View File

@@ -34,7 +34,7 @@ public class WaveSpawner{
/** @return true if the player is near a ground spawn point. */ /** @return true if the player is near a ground spawn point. */
public boolean playerNear(){ public boolean playerNear(){
return !player.dead() && spawns.contains(g -> Mathf.dst(g.x * tilesize, g.y * tilesize, player.x(), player.y()) < state.rules.dropZoneRadius && player.team() != state.rules.waveTeam); return !player.dead() && spawns.contains(g -> Mathf.dst(g.x * tilesize, g.y * tilesize, player.x, player.y) < state.rules.dropZoneRadius && player.team() != state.rules.waveTeam);
} }
public void spawnEnemies(){ public void spawnEnemies(){

View File

@@ -73,7 +73,7 @@ public class Control implements ApplicationListener, Loadable{
}); });
Events.on(WorldLoadEvent.class, event -> { Events.on(WorldLoadEvent.class, event -> {
if(Mathf.zero(player.x()) && Mathf.zero(player.y())){ if(Mathf.zero(player.x) && Mathf.zero(player.y)){
Building core = state.teams.closestCore(0, 0, player.team()); Building core = state.teams.closestCore(0, 0, player.team());
if(core != null){ if(core != null){
player.set(core); player.set(core);

View File

@@ -73,7 +73,7 @@ public class NetClient implements ApplicationListener{
}); });
ConnectPacket c = new ConnectPacket(); ConnectPacket c = new ConnectPacket();
c.name = player.name(); c.name = player.name;
c.mods = mods.getModStrings(); c.mods = mods.getModStrings();
c.mobile = mobile; c.mobile = mobile;
c.versionType = Version.type; c.versionType = Version.type;
@@ -192,18 +192,18 @@ public class NetClient implements ApplicationListener{
//special case; graphical server needs to see its message //special case; graphical server needs to see its message
if(!headless){ if(!headless){
sendMessage(message, colorizeName(player.id(), player.name()), player); sendMessage(message, colorizeName(player.id(), player.name), player);
} }
//server console logging //server console logging
Log.info("&y@: &lb@", player.name(), message); Log.info("&y@: &lb@", player.name, message);
//invoke event for all clients but also locally //invoke event for all clients but also locally
//this is required so other clients get the correct name even if they don't know who's sending it yet //this is required so other clients get the correct name even if they don't know who's sending it yet
Call.sendMessage(message, colorizeName(player.id(), player.name()), player); Call.sendMessage(message, colorizeName(player.id(), player.name), player);
}else{ }else{
//log command to console but with brackets //log command to console but with brackets
Log.info("<&y@: &lm@&lg>", player.name(), message); Log.info("<&y@: &lm@&lg>", player.name, message);
//a command was sent, now get the output //a command was sent, now get the output
if(response.type != ResponseType.valid){ if(response.type != ResponseType.valid){
@@ -239,7 +239,7 @@ public class NetClient implements ApplicationListener{
@Remote(targets = Loc.client) @Remote(targets = Loc.client)
public static void onPing(Player player, long time){ public static void onPing(Player player, long time){
Call.onPingResponse(player.con(), time); Call.onPingResponse(player.con, time);
} }
@Remote(variants = Variant.one) @Remote(variants = Variant.one)

View File

@@ -176,7 +176,7 @@ public class NetServer implements ApplicationListener{
boolean preventDuplicates = headless && netServer.admins.getStrict(); boolean preventDuplicates = headless && netServer.admins.getStrict();
if(preventDuplicates){ if(preventDuplicates){
if(Groups.player.contains(p -> p.name().trim().equalsIgnoreCase(packet.name.trim()))){ if(Groups.player.contains(p -> p.name.trim().equalsIgnoreCase(packet.name.trim()))){
con.kick(KickReason.nameInUse); con.kick(KickReason.nameInUse);
return; return;
} }
@@ -208,16 +208,16 @@ public class NetServer implements ApplicationListener{
} }
Player player = Player.create(); Player player = Player.create();
player.admin(admins.isAdmin(uuid, packet.usid)); player.admin = admins.isAdmin(uuid, packet.usid);
player.con(con); player.con = con;
player.con().usid = packet.usid; player.con.usid = packet.usid;
player.con().uuid = uuid; player.con.uuid = uuid;
player.con().mobile = packet.mobile; player.con.mobile = packet.mobile;
player.name(packet.name); player.name = packet.name;
player.color().set(packet.color).a(1f); player.color.set(packet.color).a(1f);
//save admin ID but don't overwrite it //save admin ID but don't overwrite it
if(!player.admin() && !info.admin){ if(!player.admin && !info.admin){
info.adminUsid = packet.usid; info.adminUsid = packet.usid;
} }
@@ -296,7 +296,7 @@ public class NetServer implements ApplicationListener{
clientCommands.<Player>register("t", "<message...>", "Send a message only to your teammates.", (args, player) -> { clientCommands.<Player>register("t", "<message...>", "Send a message only to your teammates.", (args, player) -> {
String message = admins.filterMessage(player, args[0]); String message = admins.filterMessage(player, args[0]);
if(message != null){ if(message != null){
Groups.player.each(p -> p.team() == player.team(), o -> o.sendMessage(message, player, "[#" + player.team().color.toString() + "]<T>" + NetClient.colorizeName(player.id(), player.name()))); Groups.player.each(p -> p.team() == player.team(), o -> o.sendMessage(message, player, "[#" + player.team().color.toString() + "]<T>" + NetClient.colorizeName(player.id(), player.name)));
} }
}); });
@@ -319,7 +319,7 @@ public class NetServer implements ApplicationListener{
this.map = map; this.map = map;
this.task = Timer.schedule(() -> { this.task = Timer.schedule(() -> {
if(!checkPass()){ if(!checkPass()){
Call.sendMessage(Strings.format("[lightgray]Vote failed. Not enough votes to kick[orange] @[lightgray].", target.name())); Call.sendMessage(Strings.format("[lightgray]Vote failed. Not enough votes to kick[orange] @[lightgray].", target.name));
map[0] = null; map[0] = null;
task.cancel(); task.cancel();
} }
@@ -331,12 +331,12 @@ public class NetServer implements ApplicationListener{
voted.addAll(player.uuid(), admins.getInfo(player.uuid()).lastIP); voted.addAll(player.uuid(), admins.getInfo(player.uuid()).lastIP);
Call.sendMessage(Strings.format("[orange]@[lightgray] has voted on kicking[orange] @[].[accent] (@/@)\n[lightgray]Type[orange] /vote <y/n>[] to agree.", Call.sendMessage(Strings.format("[orange]@[lightgray] has voted on kicking[orange] @[].[accent] (@/@)\n[lightgray]Type[orange] /vote <y/n>[] to agree.",
player.name(), target.name(), votes, votesRequired())); player.name, target.name, votes, votesRequired()));
} }
boolean checkPass(){ boolean checkPass(){
if(votes >= votesRequired()){ if(votes >= votesRequired()){
Call.sendMessage(Strings.format("[orange]Vote passed.[scarlet] @[orange] will be banned from the server for @ minutes.", target.name(), (kickDuration/60))); Call.sendMessage(Strings.format("[orange]Vote passed.[scarlet] @[orange] will be banned from the server for @ minutes.", target.name, (kickDuration/60)));
target.getInfo().lastKicked = Time.millis() + kickDuration*1000; target.getInfo().lastKicked = Time.millis() + kickDuration*1000;
Groups.player.each(p -> p.uuid().equals(target.uuid()), p -> p.kick(KickReason.vote)); Groups.player.each(p -> p.uuid().equals(target.uuid()), p -> p.kick(KickReason.vote));
map[0] = null; map[0] = null;
@@ -372,8 +372,8 @@ public class NetServer implements ApplicationListener{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("[orange]Players to kick: \n"); builder.append("[orange]Players to kick: \n");
Groups.player.each(p -> !p.admin() && p.con() != null && p != player, p -> { Groups.player.each(p -> !p.admin && p.con != null && p != player, p -> {
builder.append("[lightgray] ").append(p.name()).append("[accent] (#").append(p.id()).append(")\n"); builder.append("[lightgray] ").append(p.name).append("[accent] (#").append(p.id()).append(")\n");
}); });
player.sendMessage(builder.toString()); player.sendMessage(builder.toString());
}else{ }else{
@@ -382,11 +382,13 @@ public class NetServer implements ApplicationListener{
int id = Strings.parseInt(args[0].substring(1)); int id = Strings.parseInt(args[0].substring(1));
found = Groups.player.find(p -> p.id() == id); found = Groups.player.find(p -> p.id() == id);
}else{ }else{
found = Groups.player.find(p -> p.name().equalsIgnoreCase(args[0])); found = Groups.player.find(p -> {
return p.name.equalsIgnoreCase(args[0]);
});
} }
if(found != null){ if(found != null){
if(found.admin()){ if(found.admin){
player.sendMessage("[scarlet]Did you really expect to be able to kick an admin?"); player.sendMessage("[scarlet]Did you really expect to be able to kick an admin?");
}else if(found.isLocal()){ }else if(found.isLocal()){
player.sendMessage("[scarlet]Local players cannot be kicked."); player.sendMessage("[scarlet]Local players cannot be kicked.");
@@ -451,7 +453,7 @@ public class NetServer implements ApplicationListener{
} }
player.getInfo().lastSyncTime = Time.millis(); player.getInfo().lastSyncTime = Time.millis();
Call.onWorldDataBegin(player.con()); Call.onWorldDataBegin(player.con);
netServer.sendWorldData(player); netServer.sendWorldData(player);
} }
}); });
@@ -475,7 +477,7 @@ public class NetServer implements ApplicationListener{
NetworkIO.writeWorld(player, def); NetworkIO.writeWorld(player, def);
WorldStream data = new WorldStream(); WorldStream data = new WorldStream();
data.stream = new ByteArrayInputStream(stream.toByteArray()); data.stream = new ByteArrayInputStream(stream.toByteArray());
player.con().sendStream(data); player.con.sendStream(data);
Log.debug("Packed @ compressed bytes of world data.", stream.size()); Log.debug("Packed @ compressed bytes of world data.", stream.size());
} }
@@ -490,23 +492,23 @@ public class NetServer implements ApplicationListener{
public static void onDisconnect(Player player, String reason){ public static void onDisconnect(Player player, String reason){
//singleplayer multiplayer wierdness //singleplayer multiplayer wierdness
if(player.con() == null){ if(player.con == null){
player.remove(); player.remove();
return; return;
} }
if(!player.con().hasDisconnected){ if(!player.con.hasDisconnected){
if(player.con().hasConnected){ if(player.con.hasConnected){
Events.fire(new PlayerLeave(player)); Events.fire(new PlayerLeave(player));
if(Config.showConnectMessages.bool()) Call.sendMessage("[accent]" + player.name() + "[accent] has disconnected."); if(Config.showConnectMessages.bool()) Call.sendMessage("[accent]" + player.name + "[accent] has disconnected.");
Call.onPlayerDisconnect(player.id()); Call.onPlayerDisconnect(player.id());
} }
if(Config.showConnectMessages.bool()) Log.info("&lm[@] &lc@ has disconnected. &lg&fi(@)", player.uuid(), player.name(), reason); if(Config.showConnectMessages.bool()) Log.info("&lm[@] &lc@ has disconnected. &lg&fi(@)", player.uuid(), player.name, reason);
} }
player.remove(); player.remove();
player.con().hasDisconnected = true; player.con.hasDisconnected = true;
} }
@Remote(targets = Loc.client) @Remote(targets = Loc.client)
@@ -536,7 +538,7 @@ public class NetServer implements ApplicationListener{
@Nullable BuildPlan[] requests, @Nullable BuildPlan[] requests,
float viewX, float viewY, float viewWidth, float viewHeight float viewX, float viewY, float viewWidth, float viewHeight
){ ){
NetConnection connection = player.con(); NetConnection connection = player.con;
if(connection == null || snapshotID < connection.lastRecievedClientSnapshot) return; if(connection == null || snapshotID < connection.lastRecievedClientSnapshot) return;
boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless; boolean verifyPosition = !player.dead() && netServer.admins.getStrict() && headless;
@@ -553,11 +555,11 @@ public class NetServer implements ApplicationListener{
shooting = false; shooting = false;
} }
player.mouseX(pointerX); player.mouseX = pointerX;
player.mouseY(pointerY); player.mouseY = pointerY;
player.typing(chatting); player.typing = chatting;
player.shooting(shooting); player.shooting = shooting;
player.boosting(boosting); player.boosting = boosting;
player.unit().controlWeapons(shooting, shooting); player.unit().controlWeapons(shooting, shooting);
player.unit().aim(pointerX, pointerY); player.unit().aim(pointerX, pointerY);
@@ -588,7 +590,7 @@ public class NetServer implements ApplicationListener{
action.config = req.config; action.config = req.config;
})){ })){
//force the player to remove this request if that's not the case //force the player to remove this request if that's not the case
Call.removeQueueBlock(player.con(), req.x, req.y, req.breaking); Call.removeQueueBlock(player.con, req.x, req.y, req.breaking);
connection.rejectedRequests.add(req); connection.rejectedRequests.add(req);
continue; continue;
} }
@@ -631,7 +633,7 @@ public class NetServer implements ApplicationListener{
newx = x; newx = x;
newy = y; newy = y;
}else if(!Mathf.within(x, y, newx, newy, correctDist)){ }else if(!Mathf.within(x, y, newx, newy, correctDist)){
Call.onPositionSet(player.con(), newx, newy); //teleport and correct position when necessary Call.onPositionSet(player.con, newx, newy); //teleport and correct position when necessary
} }
//reset player to previous synced position so it gets interpolated //reset player to previous synced position so it gets interpolated
@@ -666,14 +668,14 @@ public class NetServer implements ApplicationListener{
@Remote(targets = Loc.client, called = Loc.server) @Remote(targets = Loc.client, called = Loc.server)
public static void onAdminRequest(Player player, Player other, AdminAction action){ public static void onAdminRequest(Player player, Player other, AdminAction action){
if(!player.admin()){ if(!player.admin){
Log.warn("ACCESS DENIED: Player @ / @ attempted to perform admin action without proper security access.", Log.warn("ACCESS DENIED: Player @ / @ attempted to perform admin action without proper security access.",
player.name(), player.con().address); player.name, player.con.address);
return; return;
} }
if(other == null || ((other.admin() && !player.isLocal()) && other != player)){ if(other == null || ((other.admin && !player.isLocal()) && other != player)){
Log.warn("@ attempted to perform admin action on nonexistant or admin player.", player.name()); Log.warn("@ attempted to perform admin action on nonexistant or admin player.", player.name);
return; return;
} }
@@ -682,32 +684,32 @@ public class NetServer implements ApplicationListener{
//not a real issue, because server owners may want to do just that //not a real issue, because server owners may want to do just that
state.wavetime = 0f; state.wavetime = 0f;
}else if(action == AdminAction.ban){ }else if(action == AdminAction.ban){
netServer.admins.banPlayerIP(other.con().address); netServer.admins.banPlayerIP(other.con.address);
other.kick(KickReason.banned); other.kick(KickReason.banned);
Log.info("&lc@ has banned @.", player.name(), other.name()); Log.info("&lc@ has banned @.", player.name, other.name);
}else if(action == AdminAction.kick){ }else if(action == AdminAction.kick){
other.kick(KickReason.kick); other.kick(KickReason.kick);
Log.info("&lc@ has kicked @.", player.name(), other.name()); Log.info("&lc@ has kicked @.", player.name, other.name);
}else if(action == AdminAction.trace){ }else if(action == AdminAction.trace){
TraceInfo info = new TraceInfo(other.con().address, other.uuid(), other.con().modclient, other.con().mobile); TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.con.modclient, other.con.mobile);
if(player.con() != null){ if(player.con != null){
Call.onTraceInfo(player.con(), other, info); Call.onTraceInfo(player.con, other, info);
}else{ }else{
NetClient.onTraceInfo(other, info); NetClient.onTraceInfo(other, info);
} }
Log.info("&lc@ has requested trace info of @.", player.name(), other.name()); Log.info("&lc@ has requested trace info of @.", player.name, other.name);
} }
} }
@Remote(targets = Loc.client) @Remote(targets = Loc.client)
public static void connectConfirm(Player player){ public static void connectConfirm(Player player){
if(player.con() == null || player.con().hasConnected) return; if(player.con == null || player.con.hasConnected) return;
player.add(); player.add();
player.con().hasConnected = true; player.con.hasConnected = true;
if(Config.showConnectMessages.bool()){ if(Config.showConnectMessages.bool()){
Call.sendMessage("[accent]" + player.name() + "[accent] has connected."); Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
Log.info("&lm[@] &y@ has connected. ", player.uuid(), player.name()); Log.info("&lm[@] &y@ has connected. ", player.uuid(), player.name);
} }
if(!Config.motd.string().equalsIgnoreCase("off")){ if(!Config.motd.string().equalsIgnoreCase("off")){
@@ -811,9 +813,9 @@ public class NetServer implements ApplicationListener{
byte[] stateBytes = syncStream.toByteArray(); byte[] stateBytes = syncStream.toByteArray();
//write basic state data. //write basic state data.
Call.onStateSnapshot(player.con(), state.wavetime, state.wave, state.enemies, state.serverPaused, (short)stateBytes.length, net.compressSnapshot(stateBytes)); Call.onStateSnapshot(player.con, state.wavetime, state.wave, state.enemies, state.serverPaused, (short)stateBytes.length, net.compressSnapshot(stateBytes));
viewport.setSize(player.con().viewWidth, player.con().viewHeight).setCenter(player.con().viewX, player.con().viewY); viewport.setSize(player.con.viewWidth, player.con.viewHeight).setCenter(player.con.viewX, player.con.viewY);
syncStream.reset(); syncStream.reset();
@@ -830,7 +832,7 @@ public class NetServer implements ApplicationListener{
if(syncStream.size() > maxSnapshotSize){ if(syncStream.size() > maxSnapshotSize){
dataStream.close(); dataStream.close();
byte[] syncBytes = syncStream.toByteArray(); byte[] syncBytes = syncStream.toByteArray();
Call.onEntitySnapshot(player.con(), (short)sent, (short)syncBytes.length, net.compressSnapshot(syncBytes)); Call.onEntitySnapshot(player.con, (short)sent, (short)syncBytes.length, net.compressSnapshot(syncBytes));
sent = 0; sent = 0;
syncStream.reset(); syncStream.reset();
} }
@@ -840,7 +842,7 @@ public class NetServer implements ApplicationListener{
dataStream.close(); dataStream.close();
byte[] syncBytes = syncStream.toByteArray(); byte[] syncBytes = syncStream.toByteArray();
Call.onEntitySnapshot(player.con(), (short)sent, (short)syncBytes.length, net.compressSnapshot(syncBytes)); Call.onEntitySnapshot(player.con, (short)sent, (short)syncBytes.length, net.compressSnapshot(syncBytes));
} }
} }
@@ -899,12 +901,12 @@ public class NetServer implements ApplicationListener{
try{ try{
Groups.player.each(p -> !p.isLocal(), player -> { Groups.player.each(p -> !p.isLocal(), player -> {
if(player.con() == null || !player.con().isConnected()){ if(player.con == null || !player.con.isConnected()){
onDisconnect(player, "disappeared"); onDisconnect(player, "disappeared");
return; return;
} }
NetConnection connection = player.con(); NetConnection connection = player.con;
if(!player.timer(0, serverSyncTime) || !connection.hasConnected) return; if(!player.timer(0, serverSyncTime) || !connection.hasConnected) return;

View File

@@ -156,7 +156,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
} }
platform.publish(map); platform.publish(map);
}).padTop(-3).size(swidth * 2f + 10, 60f).update(b -> b.setText(editor.getTags().containsKey("steamid") ? editor.getTags().get("author").equals(player.name()) ? "$workshop.listing" : "$view.workshop" : "$editor.publish.workshop")); }).padTop(-3).size(swidth * 2f + 10, 60f).update(b -> b.setText(editor.getTags().containsKey("steamid") ? editor.getTags().get("author").equals(player.name) ? "$workshop.listing" : "$view.workshop" : "$editor.publish.workshop"));
menu.cont.row(); menu.cont.row();
} }

View File

@@ -250,7 +250,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
} }
void sendMessage(String text, Player from){ void sendMessage(String text, Player from){
sendMessage(text, from, NetClient.colorizeName(from.id(), from.name())); sendMessage(text, from, NetClient.colorizeName(from.id(), from.name));
} }
void sendMessage(String text, Player from, String fromName){ void sendMessage(String text, Player from, String fromName){

View File

@@ -39,9 +39,9 @@ public class OverlayRenderer{
for(Player player : Groups.player){ for(Player player : Groups.player){
if(Vars.player != player && Vars.player.team() == player.team()){ if(Vars.player != player && Vars.player.team() == player.team()){
if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f) if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f)
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x(), player.y())){ .setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x, player.y)){
Tmp.v1.set(player.x(), player.y()).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength); Tmp.v1.set(player.x, player.y).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength);
Lines.stroke(2f, player.team().color); Lines.stroke(2f, player.team().color);
Lines.lineAngle(Core.camera.position.x + Tmp.v1.x, Core.camera.position.y + Tmp.v1.y, Tmp.v1.angle(), 4f); Lines.lineAngle(Core.camera.position.x + Tmp.v1.x, Core.camera.position.y + Tmp.v1.y, Tmp.v1.angle(), 4f);
@@ -118,7 +118,7 @@ public class OverlayRenderer{
Draw.color(Color.gray, Color.lightGray, Mathf.absin(Time.time(), 8f, 1f)); Draw.color(Color.gray, Color.lightGray, Mathf.absin(Time.time(), 8f, 1f));
for(Tile tile : spawner.getSpawns()){ for(Tile tile : spawner.getSpawns()){
if(tile.within(player.x(), player.y(), state.rules.dropZoneRadius + spawnerMargin)){ if(tile.within(player.x, player.y, state.rules.dropZoneRadius + spawnerMargin)){
Draw.alpha(Mathf.clamp(1f - (player.dst(tile) - state.rules.dropZoneRadius) / spawnerMargin)); Draw.alpha(Mathf.clamp(1f - (player.dst(tile) - state.rules.dropZoneRadius) / spawnerMargin));
Lines.dashCircle(tile.worldx(), tile.worldy(), state.rules.dropZoneRadius); Lines.dashCircle(tile.worldx(), tile.worldy(), state.rules.dropZoneRadius);
} }

View File

@@ -110,7 +110,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
throw new ValidateException(player, "Player cannot drop an item."); throw new ValidateException(player, "Player cannot drop an item.");
} }
Fx.dropItem.at(player.x(), player.y(), angle, Color.white, player.unit().item()); Fx.dropItem.at(player.x, player.y, angle, Color.white, player.unit().item());
player.unit().clearItem(); player.unit().clearItem();
} }
@@ -149,7 +149,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
createItemTransfer( createItemTransfer(
item, item,
amount, amount,
player.x() + Angles.trnsx(player.unit().rotation + 180f, backTrns), player.y() + Angles.trnsy(player.unit().rotation + 180f, backTrns), player.x + Angles.trnsx(player.unit().rotation + 180f, backTrns), player.y + Angles.trnsy(player.unit().rotation + 180f, backTrns),
new Vec2(tile.x() + stackTrns.x, tile.y() + stackTrns.y), new Vec2(tile.x() + stackTrns.x, tile.y() + stackTrns.y),
() -> tile.handleStack(item, accepted, player.unit()) () -> tile.handleStack(item, accepted, player.unit())
); );
@@ -187,7 +187,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
player.unit(unit); player.unit(unit);
Time.run(Fx.unitSpirit.lifetime, () -> Fx.unitControl.at(unit.x, unit.y, 0f, unit)); Time.run(Fx.unitSpirit.lifetime, () -> Fx.unitControl.at(unit.x, unit.y, 0f, unit));
if(!player.dead()){ if(!player.dead()){
Fx.unitSpirit.at(player.x(), player.y(), 0f, unit); Fx.unitSpirit.at(player.x, player.y, 0f, unit);
} }
} }
} }
@@ -212,13 +212,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
commander.clearCommand(); commander.clearCommand();
}else{ }else{
FormationPattern pattern = new SquareFormation(); FormationPattern pattern = new SquareFormation();
Formation formation = new Formation(new Vec3(player.x(), player.y(), player.unit().rotation), pattern); Formation formation = new Formation(new Vec3(player.x, player.y, player.unit().rotation), pattern);
formation.slotAssignmentStrategy = new DistanceAssignmentStrategy(pattern); formation.slotAssignmentStrategy = new DistanceAssignmentStrategy(pattern);
units.clear(); units.clear();
Fx.commandSend.at(player); Fx.commandSend.at(player);
Units.nearby(player.team(), player.x(), player.y(), 200f, u -> { Units.nearby(player.team(), player.x, player.y, 200f, u -> {
if(u.isAI()){ if(u.isAI()){
units.add(u); units.add(u);
} }
@@ -260,7 +260,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
} }
if(controlledType != null && player.dead()){ if(controlledType != null && player.dead()){
Unit unit = Units.closest(player.team(), player.x(), player.y(), u -> !u.isPlayer() && u.type() == controlledType); Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType);
if(unit != null){ if(unit != null){
Call.onUnitControl(player, unit); Call.onUnitControl(player, unit);
@@ -270,9 +270,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
public void checkUnit(){ public void checkUnit(){
if(controlledType != null){ if(controlledType != null){
Unit unit = Units.closest(player.team(), player.x(), player.y(), u -> !u.isPlayer() && u.type() == controlledType); Unit unit = Units.closest(player.team(), player.x, player.y, u -> !u.isPlayer() && u.type() == controlledType);
if(unit == null && controlledType == UnitTypes.block){ if(unit == null && controlledType == UnitTypes.block){
unit = world.entWorld(player.x(), player.y()) instanceof ControlBlock ? ((ControlBlock)world.entWorld(player.x(), player.y())).unit() : null; unit = world.entWorld(player.x, player.y) instanceof ControlBlock ? ((ControlBlock)world.entWorld(player.x, player.y)).unit() : null;
} }
if(unit != null){ if(unit != null){

View File

@@ -202,7 +202,7 @@ public class Map implements Comparable<Map>, Publishable{
@Override @Override
public boolean prePublish(){ public boolean prePublish(){
tags.put("author", player.name()); tags.put("author", player.name);
ui.editor.editor.getTags().put("author", tags.get("author")); ui.editor.editor.getTags().put("author", tags.get("author"));
ui.editor.save(); ui.editor.save();

View File

@@ -43,7 +43,7 @@ public class Administration{
//anti-spam //anti-spam
addChatFilter((player, message) -> { addChatFilter((player, message) -> {
long resetTime = Config.messageRateLimit.num() * 1000; long resetTime = Config.messageRateLimit.num() * 1000;
if(Config.antiSpam.bool() && !player.isLocal() && !player.admin()){ if(Config.antiSpam.bool() && !player.isLocal() && !player.admin){
//prevent people from spamming messages quickly //prevent people from spamming messages quickly
if(resetTime > 0 && Time.timeSinceMillis(player.getInfo().lastMessageTime) < resetTime){ if(resetTime > 0 && Time.timeSinceMillis(player.getInfo().lastMessageTime) < resetTime){
//supress message //supress message
@@ -51,7 +51,7 @@ public class Administration{
player.getInfo().messageInfractions ++; player.getInfo().messageInfractions ++;
//kick player for spamming and prevent connection if they've done this several times //kick player for spamming and prevent connection if they've done this several times
if(player.getInfo().messageInfractions >= Config.messageSpamKick.num() && Config.messageSpamKick.num() != 0){ if(player.getInfo().messageInfractions >= Config.messageSpamKick.num() && Config.messageSpamKick.num() != 0){
player.con().kick("You have been kicked for spamming.", 1000 * 60 * 2); player.con.kick("You have been kicked for spamming.", 1000 * 60 * 2);
} }
return null; return null;
}else{ }else{

View File

@@ -64,7 +64,7 @@ public class NetworkIO{
} }
public static ByteBuffer writeServerData(){ public static ByteBuffer writeServerData(){
String name = (headless ? Config.name.string() : player.name()); String name = (headless ? Config.name.string() : player.name);
String description = headless && !Config.desc.string().equals("off") ? Config.desc.string() : ""; String description = headless && !Config.desc.string().equals("off") ? Config.desc.string() : "";
String map = state.map.name(); String map = state.map.name();

View File

@@ -263,7 +263,7 @@ public class JoinDialog extends BaseDialog{
Core.settings.put("name", text); Core.settings.put("name", text);
}).grow().pad(8).get().setMaxLength(maxNameLength); }).grow().pad(8).get().setMaxLength(maxNameLength);
}else{ }else{
t.add(player.name()).update(l -> l.setColor(player.color())).grow().pad(8); t.add(player.name).update(l -> l.setColor(player.color())).grow().pad(8);
} }
ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> { ImageButton button = t.button(Tex.whiteui, Styles.clearFulli, 40, () -> {
@@ -379,7 +379,7 @@ public class JoinDialog extends BaseDialog{
} }
public void connect(String ip, int port){ public void connect(String ip, int port){
if(player.name().trim().isEmpty()){ if(player.name.trim().isEmpty()){
ui.showInfo("$noname"); ui.showInfo("$noname");
return; return;
} }

View File

@@ -22,7 +22,7 @@ public class TraceDialog extends BaseDialog{
table.defaults().pad(1); table.defaults().pad(1);
table.defaults().left(); table.defaults().left();
table.add(Core.bundle.format("trace.playername", player.name())); table.add(Core.bundle.format("trace.playername", player.name));
table.row(); table.row();
table.add(Core.bundle.format("trace.ip", info.ip)); table.add(Core.bundle.format("trace.ip", info.ip));
table.row(); table.row();

View File

@@ -672,12 +672,12 @@ public class HudFragment extends Fragment{
} }
private boolean canSkipWave(){ private boolean canSkipWave(){
return state.rules.waves && ((net.server() || player.admin()) || !net.active()) && state.enemies == 0 && !spawner.isSpawning() && !state.rules.tutorial; return state.rules.waves && ((net.server() || player.admin) || !net.active()) && state.enemies == 0 && !spawner.isSpawning() && !state.rules.tutorial;
} }
private void addPlayButton(Table table){ private void addPlayButton(Table table){
table.right().button(Icon.play, Styles.righti, 30f, () -> { table.right().button(Icon.play, Styles.righti, 30f, () -> {
if(net.client() && player.admin()){ if(net.client() && player.admin){
Call.onAdminRequest(player, AdminAction.wave); Call.onAdminRequest(player, AdminAction.wave);
}else if(inLaunchWave()){ }else if(inLaunchWave()){
ui.showConfirm("$confirm", "$launch.skip.confirm", () -> !canSkipWave(), () -> state.wavetime = 0f); ui.showConfirm("$confirm", "$launch.skip.confirm", () -> !canSkipWave(), () -> state.wavetime = 0f);

View File

@@ -77,7 +77,7 @@ public class PlayerListFragment extends Fragment{
Groups.player.sort(Structs.comparing(Player::team)); Groups.player.sort(Structs.comparing(Player::team));
Groups.player.each(user -> { Groups.player.each(user -> {
found = true; found = true;
NetConnection connection = user.con(); NetConnection connection = user.con;
if(connection == null && net.server() && !user.isLocal()) return; if(connection == null && net.server() && !user.isLocal()) return;
if(sField.getText().length() > 0 && !user.name().toLowerCase().contains(sField.getText().toLowerCase()) && !Strings.stripColors(user.name().toLowerCase()).contains(sField.getText().toLowerCase())) return; if(sField.getText().length() > 0 && !user.name().toLowerCase().contains(sField.getText().toLowerCase()) && !Strings.stripColors(user.name().toLowerCase()).contains(sField.getText().toLowerCase())) return;
@@ -104,9 +104,9 @@ public class PlayerListFragment extends Fragment{
button.labelWrap("[#" + user.color().toString().toUpperCase() + "]" + user.name()).width(170f).pad(10); button.labelWrap("[#" + user.color().toString().toUpperCase() + "]" + user.name()).width(170f).pad(10);
button.add().grow(); button.add().grow();
button.image(Icon.admin).visible(() -> user.admin() && !(!user.isLocal() && net.server())).padRight(5).get().updateVisibility(); button.image(Icon.admin).visible(() -> user.admin && !(!user.isLocal() && net.server())).padRight(5).get().updateVisibility();
if((net.server() || player.admin()) && !user.isLocal() && (!user.admin() || net.server())){ if((net.server() || player.admin) && !user.isLocal() && (!user.admin || net.server())){
button.add().growY(); button.add().growY();
float bs = (h) / 2f; float bs = (h) / 2f;
@@ -115,9 +115,13 @@ public class PlayerListFragment extends Fragment{
t.defaults().size(bs); t.defaults().size(bs);
t.button(Icon.hammer, Styles.clearPartiali, t.button(Icon.hammer, Styles.clearPartiali,
() -> ui.showConfirm("$confirm", Core.bundle.format("confirmban", user.name()), () -> Call.onAdminRequest(user, AdminAction.ban))); () -> {
ui.showConfirm("$confirm", Core.bundle.format("confirmban", user.name()), () -> Call.onAdminRequest(user, AdminAction.ban));
});
t.button(Icon.cancel, Styles.clearPartiali, t.button(Icon.cancel, Styles.clearPartiali,
() -> ui.showConfirm("$confirm", Core.bundle.format("confirmkick", user.name()), () -> Call.onAdminRequest(user, AdminAction.kick))); () -> {
ui.showConfirm("$confirm", Core.bundle.format("confirmkick", user.name()), () -> Call.onAdminRequest(user, AdminAction.kick));
});
t.row(); t.row();
@@ -131,19 +135,23 @@ public class PlayerListFragment extends Fragment{
}else{ }else{
ui.showConfirm("$confirm", Core.bundle.format("confirmadmin", user.name()), () -> netServer.admins.adminPlayer(id, user.usid())); ui.showConfirm("$confirm", Core.bundle.format("confirmadmin", user.name()), () -> netServer.admins.adminPlayer(id, user.usid()));
} }
}).update(b -> b.setChecked(user.admin())) }).update(b -> b.setChecked(user.admin))
.disabled(b -> net.client()) .disabled(b -> net.client())
.touchable(() -> net.client() ? Touchable.disabled : Touchable.enabled) .touchable(() -> net.client() ? Touchable.disabled : Touchable.enabled)
.checked(user.admin()); .checked(user.admin);
t.button(Icon.zoom, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace)); t.button(Icon.zoom, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace));
}).padRight(12).size(bs + 10f, bs); }).padRight(12).size(bs + 10f, bs);
}else if(!user.isLocal() && !user.admin() && net.client() && Groups.player.size() >= 3 && player.team() == user.team()){ //votekick }else if(!user.isLocal() && !user.admin && net.client() && Groups.player.size() >= 3 && player.team() == user.team()){ //votekick
button.add().growY(); button.add().growY();
button.button(Icon.hammer, Styles.clearPartiali, button.button(Icon.hammer, Styles.clearPartiali,
() -> ui.showConfirm("$confirm", Core.bundle.format("confirmvotekick", user.name()), () -> Call.sendChatMessage("/votekick " + user.name()))).size(h); () -> {
ui.showConfirm("$confirm", Core.bundle.format("confirmvotekick", user.name()), () -> {
Call.sendChatMessage("/votekick " + user.name());
});
}).size(h);
} }
content.add(button).padBottom(-6).width(350f).maxHeight(h + 14); content.add(button).padBottom(-6).width(350f).maxHeight(h + 14);

View File

@@ -129,7 +129,7 @@ public class DesktopLauncher extends ClientLauncher{
Events.on(ClientLoadEvent.class, event -> { Events.on(ClientLoadEvent.class, event -> {
player.name(SVars.net.friends.getPersonaName()); player.name(SVars.net.friends.getPersonaName());
Core.settings.defaults("name", SVars.net.friends.getPersonaName()); Core.settings.defaults("name", SVars.net.friends.getPersonaName());
Core.settings.put("name", player.name()); Core.settings.put("name", player.name);
//update callbacks //update callbacks
Core.app.addListener(new ApplicationListener(){ Core.app.addListener(new ApplicationListener(){
@Override @Override

View File

@@ -345,7 +345,7 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
if(result == SteamResult.OK){ if(result == SteamResult.OK){
currentLobby = steamID; currentLobby = steamID;
smat.setLobbyData(steamID, "name", player.name()); smat.setLobbyData(steamID, "name", player.name);
smat.setLobbyData(steamID, "mapname", state.map.name()); smat.setLobbyData(steamID, "mapname", state.map.name());
smat.setLobbyData(steamID, "version", Version.build + ""); smat.setLobbyData(steamID, "version", Version.build + "");
smat.setLobbyData(steamID, "versionType", Version.type); smat.setLobbyData(steamID, "versionType", Version.type);

View File

@@ -609,8 +609,8 @@ public class ServerControl implements ApplicationListener{
for(Player player : Groups.player){ for(Player player : Groups.player){
if(netServer.admins.isIDBanned(player.uuid())){ if(netServer.admins.isIDBanned(player.uuid())){
Call.sendMessage("[scarlet] " + player.name() + " has been banned."); Call.sendMessage("[scarlet] " + player.name + " has been banned.");
player.con().kick(KickReason.banned); player.con.kick(KickReason.banned);
} }
} }
}); });
@@ -893,7 +893,7 @@ public class ServerControl implements ApplicationListener{
logic.play(); logic.play();
for(Player p : players){ for(Player p : players){
if(p.con() == null) continue; if(p.con == null) continue;
p.reset(); p.reset();
if(state.rules.pvp){ if(state.rules.pvp){