Beispiel #1
0
func main() {

	//Create a robot session
	robot := beam.Session{
		UseCookies: true,
		Debug:      true,
	}

	//subscribe to robot events
	//robot.AddHandler(reportRobot)
	robot.AddHandler(errorRobot)

	//Log in
	log.Println("[Robot] Logging in")
	err := robot.Login()
	if err != nil {
		log.Println("[Chatbot] Error logging in:", err.Error())
		return
	}

	//Open robot websocket
	log.Println("[Robot] Connecting")
	err = robot.OpenRobot()
	if err != nil {
		log.Println("[Robot] Error opening winsock:", err)
		return
	}
	log.Println("[Robot] Success!")

	id := uint32(0)
	isFired := true
	//cooldown := uint32(1000)
	progress := float64(0.1)

	jid := uint32(9)
	jangle := float64(0.1)
	intensity := float64(0.1)

	for {
		time.Sleep(1500 * time.Millisecond)
		progress += 0.1
		if progress > 1 {
			progress = 0
		}
		jangle += 0.1
		if jangle > 1 {
			jangle = 0
		}
		intensity += 0.1
		if intensity > 1 {
			intensity = 1
		}

		err = robot.ProgressUpdate(&beam.ProgressUpdate{
			Tactile: []*beam.ProgressUpdate_TactileUpdate{
				&beam.ProgressUpdate_TactileUpdate{
					Id:    &id,
					Fired: &isFired,
					//	Cooldown: &cooldown,
					Progress: &progress,
				},
			},
			Joystick: []*beam.ProgressUpdate_JoystickUpdate{
				&beam.ProgressUpdate_JoystickUpdate{
					Id:        &jid,
					Angle:     &jangle,
					Intensity: &intensity,
				},
			},
		})
		if err != nil {
			fmt.Println("error sending progress update:", err.Error())
		}
	}
	// Simple way to keep program running until any key press.
	var input string
	fmt.Scanln(&input)
	return
}