game_machine 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
-