add filtering

This commit is contained in:
olebeck 2022-03-05 14:39:46 +01:00
parent abb23b55e9
commit f167b1712b
2 changed files with 17 additions and 3 deletions

View File

@ -7,15 +7,14 @@ all: windows linux
$(NAME).exe: $(SRCS)
GOOS=windows $(GC) -o $@
upx -9 $@ # ignore if fails
#upx -9 $@ # defender is an asshole and thinks this is an trojan
$(NAME)-linux: $(SRCS)
GOOS=linux $(GC) -o $@
upx -9 $@ # ignore if fails
upx -9 $@
$(NAME)-mac: $(SRCS) # possibly broken
GOOS=darwin $(GC) -o $@
upx -9 $@ # ignore if fails
.PHONY: clean windows linux mac

View File

@ -26,6 +26,8 @@ func init() {
register_command("skins", "skin stealer", skin_main)
}
var players = make(map[string]string)
var out_path string
var name_regexp = regexp.MustCompile(`§.`)
@ -93,6 +95,9 @@ func write_skin_animations(output_path string, skin protocol.Skin) {
}
func write_skin(name string, skin protocol.Skin) {
if !strings.HasPrefix(name, player) {
return
}
fmt.Printf("Writing skin for %s\n", name)
complex := false
skin_dir := path.Join(out_path, name)
@ -116,10 +121,13 @@ func write_skin(name string, skin protocol.Skin) {
}
}
var player string
func skin_main(args []string) error {
var server string
var help bool
flag.StringVar(&server, "target", "", "target server")
flag.StringVar(&player, "player", "", "only download the skin of this player")
flag.BoolVar(&help, "help", false, "show help")
flag.CommandLine.Parse(args)
if help {
@ -191,6 +199,12 @@ func skin_main(args []string) error {
return err
}
switch _pk := pk.(type) {
case *packet.PlayerSkin:
name := players[_pk.UUID.String()]
if name == "" {
name = _pk.UUID.String()
}
write_skin(name, _pk.Skin)
case *packet.PlayerList:
if _pk.ActionType == 1 { // remove
continue
@ -201,6 +215,7 @@ func skin_main(args []string) error {
name = player.UUID.String()
}
write_skin(name, player.Skin)
players[player.UUID.String()] = name
}
}
}