game_machine 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +13 -9
  3. data/config/config.example.yml +8 -1
  4. data/config/game_messages.proto +1 -0
  5. data/config/messages.proto +4 -0
  6. data/games/example/lib/npc.rb +8 -7
  7. data/games/models.rb +3 -0
  8. data/games/models/clan_member.rb +8 -0
  9. data/games/models/clan_profile.rb +9 -0
  10. data/games/models/player.rb +7 -0
  11. data/games/plugins.rb +1 -0
  12. data/games/plugins/team_handler.rb +49 -0
  13. data/games/preload.rb +5 -0
  14. data/java/build.gradle +3 -1
  15. data/java/gradle.properties +1 -1
  16. data/lib/game_machine/actor/base.rb +5 -1
  17. data/lib/game_machine/application.rb +13 -3
  18. data/lib/game_machine/commands/datastore_commands.rb +3 -7
  19. data/lib/game_machine/commands/player_commands.rb +3 -0
  20. data/lib/game_machine/data_store.rb +22 -1
  21. data/lib/game_machine/data_stores/couchbase.rb +18 -1
  22. data/lib/game_machine/endpoints/udp_incoming.rb +0 -1
  23. data/lib/game_machine/game_systems.rb +2 -0
  24. data/lib/game_machine/game_systems/chat.rb +33 -13
  25. data/lib/game_machine/game_systems/chat_manager.rb +24 -3
  26. data/lib/game_machine/game_systems/json_model_persistence.rb +23 -0
  27. data/lib/game_machine/game_systems/region_manager.rb +1 -1
  28. data/lib/game_machine/game_systems/team_manager.rb +421 -0
  29. data/lib/game_machine/handlers/request.rb +4 -0
  30. data/lib/game_machine/model.rb +59 -13
  31. data/lib/game_machine/models.rb +17 -0
  32. data/lib/game_machine/models/create_team.rb +9 -0
  33. data/lib/game_machine/models/destroy_team.rb +8 -0
  34. data/lib/game_machine/models/echo_test.rb +6 -0
  35. data/lib/game_machine/models/end_match.rb +7 -0
  36. data/lib/game_machine/models/find_match.rb +7 -0
  37. data/lib/game_machine/models/join_team.rb +7 -0
  38. data/lib/game_machine/models/leave_team.rb +7 -0
  39. data/lib/game_machine/models/match.rb +9 -0
  40. data/lib/game_machine/models/player_team.rb +9 -0
  41. data/lib/game_machine/models/start_match.rb +8 -0
  42. data/lib/game_machine/models/team.rb +11 -0
  43. data/lib/game_machine/models/team_accept_invite.rb +9 -0
  44. data/lib/game_machine/models/team_invite.rb +8 -0
  45. data/lib/game_machine/models/team_joined.rb +7 -0
  46. data/lib/game_machine/models/team_left.rb +7 -0
  47. data/lib/game_machine/models/teams.rb +7 -0
  48. data/lib/game_machine/models/teams_request.rb +6 -0
  49. data/lib/game_machine/object_db.rb +17 -11
  50. data/lib/game_machine/version.rb +1 -1
  51. data/lib/game_machine/write_behind_cache.rb +1 -1
  52. data/spec/actor/actor_spec.rb +5 -5
  53. data/spec/actor/ref_spec.rb +10 -10
  54. data/spec/client_manager_spec.rb +9 -9
  55. data/spec/commands/chat_commands_spec.rb +1 -1
  56. data/spec/commands/datastore_commands_spec.rb +10 -14
  57. data/spec/commands/navigation_commands_spec.rb +3 -3
  58. data/spec/commands/player_commands_spec.rb +1 -1
  59. data/spec/game_systems/agents/controller_spec.rb +6 -6
  60. data/spec/game_systems/chat_manager_spec.rb +1 -1
  61. data/spec/game_systems/chat_spec.rb +15 -17
  62. data/spec/game_systems/region_manager_spec.rb +31 -21
  63. data/spec/game_systems/team_manager_spec.rb +291 -0
  64. data/spec/grid_spec.rb +11 -1
  65. data/spec/handlers/authentication_spec.rb +1 -10
  66. data/spec/handlers/game_spec.rb +2 -2
  67. data/spec/handlers/request_spec.rb +10 -21
  68. data/spec/hashring_spec.rb +11 -11
  69. data/spec/java_grid_spec.rb +1 -1
  70. data/spec/misc_spec.rb +2 -2
  71. data/spec/model_spec.rb +26 -14
  72. data/spec/write_behind_cache_spec.rb +15 -15
  73. metadata +29 -8
  74. data/lib/game_machine/bot/chat.rb +0 -66
  75. data/lib/game_machine/bot/client.rb +0 -54
  76. data/spec/data_stores/mapdb_spec.rb +0 -46
  77. data/spec/data_stores/redis_spec.rb +0 -44
@@ -1,66 +0,0 @@
1
- module GameMachine
2
- module Bot
3
- class Chat < Actor::Base
4
-
5
- CHAT_CHANNELS = ['region','global','help','group1']
6
-
7
- def post_init(*args)
8
- @client = args.first
9
- @ctx = args[1]
10
- @player_id = args[2]
11
- @scheduler = get_context.system.scheduler
12
- @dispatcher = get_context.system.dispatcher
13
- #login
14
- join_chat_groups
15
- #schedule_activities
16
- #echo
17
- end
18
-
19
-
20
- def schedule_activities
21
- sleep(rand(10))
22
- duration = JavaLib::Duration.create(rand(10) + 1, java.util.concurrent.TimeUnit::SECONDS)
23
- @scheduler.schedule(duration, duration, get_self, "send_chat_message", @dispatcher, nil)
24
- end
25
-
26
- def echo
27
- message = GameMachine::Helpers::GameMessage.new(@player_id)
28
- message.echo_test('testing')
29
- send_to_server(message)
30
- end
31
-
32
- def login
33
- message = GameMachine::Helpers::GameMessage.new(@player_id)
34
- end
35
-
36
- def send_to_server(message)
37
- @client.send_to_server(message.client_message.to_byte_array,@ctx)
38
- end
39
-
40
- def join_chat_groups
41
- message = GameMachine::Helpers::GameMessage.new(@player_id)
42
- CHAT_CHANNELS.each do |name|
43
- message.join_chat(name)
44
- end
45
- send_to_server(message)
46
- end
47
-
48
-
49
- def send_chat_message
50
- message = GameMachine::Helpers::GameMessage.new(@player_id)
51
- CHAT_CHANNELS.each do |name|
52
- message.chat_message('group','testing',name)
53
- end
54
- send_to_server(message)
55
- end
56
-
57
- def on_receive(message)
58
- if message == 'send_chat_message'
59
- send_chat_message
60
- else
61
- end
62
- end
63
-
64
- end
65
- end
66
- end
@@ -1,54 +0,0 @@
1
- module GameMachine
2
- module Bot
3
- class Client < Actor::Base
4
-
5
- def self.start_udt_client(name,port)
6
- UdtClient.start(name,'localhost',port)
7
- end
8
-
9
- def self.start(name,port)
10
- Actor::Builder.new(self).with_name(name).start
11
- client = start_udt_client(name,port)
12
- master_ref = self.find(name)
13
- master_ref.tell(client)
14
- ctx = nil
15
- loop do
16
- ctx = master_ref.ask('ctx',10)
17
- break if ctx
18
- end
19
- master_ref.tell('start_players')
20
- end
21
-
22
- def post_init(*args)
23
- @client = nil
24
- @ctx = nil
25
- end
26
-
27
- def start_player
28
- name = "player#{@player_id}"
29
- child = Actor::Builder.new(Bot::Chat,@client,@ctx,name,@player_id).with_parent(context).with_name(name).start
30
- @player = child
31
- end
32
-
33
- def on_receive(message)
34
- if message.is_a?(JavaLib::DefaultChannelHandlerContext)
35
- @ctx = message
36
- elsif message.is_a?(UdtClient)
37
- @client = message
38
- elsif message == 'ctx'
39
- sender.tell(@ctx) if @ctx
40
- elsif message == 'start_players'
41
- GameMachine.logger.info "#{@player_id} started"
42
- #start_player
43
- player_id = rand(10000).to_s
44
- m = GameMachine::Helpers::GameMessage.new(player_id)
45
- m.player_logout
46
- @client.send_to_server(m.to_byte_array,@ctx)
47
- else
48
- client_message = ClientMessage.parse_from(message.bytes)
49
- #@player.tell(client_message,get_self)
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
- module GameMachine
3
- module DataStores
4
- describe Mapdb do
5
-
6
- after(:each) do
7
- #DataStore.instance.shutdown
8
- #DataStore.instance.set_store('memory')
9
- end
10
-
11
- subject do
12
- instance = DataStore.instance
13
- instance.set_store('mapdb')
14
- instance
15
- end
16
-
17
- let(:entity) do
18
- MessageLib::Entity.new.set_id('one')
19
- end
20
-
21
- describe "iteration" do
22
- it "returns all entries" do
23
- subject.set('one','one')
24
- subject.set('two','two')
25
- subject.keys.each do |key|
26
- #puts "KEY= " + subject.get(key)
27
- end
28
- end
29
- end
30
- describe "get_and_set" do
31
- it "get should return the value that was set" do
32
- subject.set('test',entity.to_byte_array)
33
- entity = MessageLib::Entity.parse_from(subject.get('test'))
34
- expect(entity.id).to eq('one')
35
- end
36
- end
37
-
38
- describe "#shutdown" do
39
- it "should return nil" do
40
- #expect(subject.shutdown).to be_nil
41
- end
42
- end
43
- end
44
- end
45
- end
46
-
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
- module GameMachine
3
- module DataStores
4
- describe Redis do
5
-
6
- after(:each) do
7
- DataStore.instance.shutdown
8
- DataStore.instance.set_store('memory')
9
- end
10
-
11
- subject do
12
- instance = DataStore.instance
13
- instance.set_store('redis')
14
- instance
15
- end
16
-
17
- describe "#get" do
18
- it "returns the value" do
19
- subject.set('key','value')
20
- expect(subject.get('key')).to eql('value')
21
- end
22
- end
23
-
24
- describe "#set" do
25
- it "returns true" do
26
- expect(subject.set('key','value')).to be_true
27
- end
28
- end
29
-
30
- describe "#delete" do
31
- it "returns true" do
32
- expect(subject.delete('key')).to be_true
33
- end
34
- end
35
-
36
- describe "#shutdown" do
37
- it "should return nil" do
38
- expect(subject.shutdown).to be_nil
39
- end
40
- end
41
- end
42
- end
43
- end
44
-